Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/space-wizards/docs
Browse files Browse the repository at this point in the history
  • Loading branch information
EmoGarbage404 committed Nov 4, 2023
2 parents 639d256 + 821b112 commit 8b63882
Show file tree
Hide file tree
Showing 14 changed files with 786 additions and 11 deletions.
2 changes: 2 additions & 0 deletions book.toml
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ warning-policy = "ignore" # false-positives like hell with absolute links & late
"/en/hosting/SS14-Admin/index.html" = "/en/server-hosting/setting-up-ss14-admin.html"
"/en/hosting/robust-cdn/index.html" = "/en/server-hosting/setting-up-robust-cdn.html"
"/en/hosting/oauth/index.html" = "/en/server-hosting/oauth.html"
"/en/hosting/port-forwarding/index.html" = "/en/server-hosting/port-forwarding.html"
"/en/technical-docs/acronyms-and-nomenclature/index.html" = "/en/general-development/codebase-info/acronyms-and-nomenclature.html"
"/en/getting-started/engine-changes/index.html" = "/en/general-developmnet/codebase-info/prs-with-engine-changes.html"
"/en/getting-started/debugging-tools/index.html" = "/en/general-development/tips/debugging-tools.html"
Expand Down Expand Up @@ -117,3 +118,4 @@ warning-policy = "ignore" # false-positives like hell with absolute links & late
"/en/engine/lighting-fov/index.html" = "/en/robust-toolbox/rendering/lighting-and-fov.html"
"/en/engine/sprites-icons/index.html" = "/en/robust-toolbox/rendering/sprites-and-icons.html"
"/hosting/hub-rules/index.html" = "/en/community/space-wizards-hub-rules.html"
"/en/hosting/hub-rules/index.html" = "/en/community/space-wizards-hub-rules.html"
10 changes: 10 additions & 0 deletions src/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,13 @@ Design Proposals

----------------------

- [Anomaly cores](en/proposals/anomaly-cores.md)
- [PDA messaging](en/proposals/pda-messaging.md)
- [Plant genetics](en/proposals/deltanedas-plant-genetics.md)
- [Security Genpop Rework](en/proposals/genpop_security.md)
- [Game Director](en/proposals/game-director.md)


Server Hosting
==============

Expand All @@ -132,6 +139,8 @@ Server Hosting
- [Setting up SS14.Changelog](en/server-hosting/setting-up-ss14-changelog.md)
- [Setting up SS14.Watchdog](en/server-hosting/setting-up-ss14-watchdog.md)
- [OAuth](en/server-hosting/oauth.md)
- [Maintenance]()
- [Debugging server lockups](en/server-hosting/maintenance/debugging-server-lockups.md)

Other Projects
==============
Expand Down Expand Up @@ -175,6 +184,7 @@ Maintainer Meetings

----------------------
- [2023-09-23](en/maintainer-meetings/maintainer-meeting-2023-09-23.md)
- [2023-09-09](en/maintainer-meetings/maintainer-meeting-2023-09-09.md)
- [2023-09-02](en/maintainer-meetings/maintainer-meeting-2023-09-02.md)
- [2023-08-19](en/maintainer-meetings/maintainer-meeting-2023-08-19.md)
- [2023-07-29](en/maintainer-meetings/maintainer-meeting-2023-07-29.md)
Expand Down
Binary file added src/en/assets/images/hosting/scsi-while-true.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/en/assets/images/hosting/windbg-open.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
12 changes: 6 additions & 6 deletions src/en/general-development/codebase-info/conventions.md
Original file line number Diff line number Diff line change
Expand Up @@ -316,22 +316,22 @@ Transform(uid).Coordinates;
### Public API Method Signature
All public Entity System API Methods that deal with entities and game logic should *always* follow a very specific structure.

All relevant `EntityUid` should come first.
All relevant `Entity<T?>` and `EntityUid` should come first.
The `T?` in `Entity<T?>` stands for the component type you need from the entity.
The question mark `?` must be present at the end to mark the component type as nullable.
Next, any arguments you want should come afterwards.
And finally, all the components you need from the entity or entities should come last.
The component arguments shall be nullable, and default to `null`.

The first thing you should do in your method's body should then be calling `Resolve` for the entity UID and components.

<details>
<summary>Example (click to expand)</summary>

```csharp=
public void SetCount(EntityUid uid, int count, StackComponent? stack = null)
public void SetCount(Entity<StackComponent?> stack, int count)
{
// This call below will set "stack" to the correct instance if it's null.
// This call below will set "Comp" to the correct instance if it's null.
// If all components were resolved to an instance or were non-null, it returns true.
if(!Resolve(uid, ref stack))
if(!Resolve(stack, ref stack.Comp))
return; // If the component wasn't found, this will log an error by default.
// Logic here!
Expand Down
8 changes: 6 additions & 2 deletions src/en/general-development/feature-proposals.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,13 @@ If you are considering adding or reworking some major component of the game it's

## How do I make a proposal?

Just follow [our guide](../meta/guide-to-editing-docs.md) on editing any part of this site and PR your proposal as a page under the "Design Proposals" section found in the sidebar between "Space Station 14" and "Server Hosting".
1. Make a copy of the design proposal template located at `src/en/proposals/proposal-template.md`.

Proposals that get approved by a maintainer will be merged to this site, which is basically the green light for you or someone else to go ahead and implement it.
2. Write your proposal (see [guide to editing docs](../meta/guide-to-editing-docs.md)).

3. When you are ready for your proposal to be reviewed, make a pull request.

4. Your proposal is approved when a maintainer merges it. This is a green light for you or someone else to go ahead and implement it. A maintainer will then link your proposal to the side bar. *Note to maintainers: edit `src/SUMMARY.md`*

``` admonish tip "Unfinished Proposals"
If you don't think that your proposal is ready for maintainer scrutiny, but still want feedback on it you can PR it as a draft. Drafts are less likely to attract people looking to get down to brass tacks, but still let people comment and give advice.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,9 @@ If you're **unfamiliar with Git**, or just don't know how to proceed, follow the

We have an automatic submodule updater so you don't have to worry about running `git submodule update --init --recursive` all the time.

Run `RUN_THIS.py` inside the repo you downloaded with Python. Preferably from a terminal too. This should take a few seconds so if it instantly stops you probably aren't using Python 3.7+ or something. Try checking out the troubleshooting at the bottom of this page.
Run `RUN_THIS.py` inside the repo you downloaded with Python. Preferably from a terminal too. This should take a few seconds so if it instantly stops then check if you are running Python 3.7+ otherwise keep reading.

**If running `RUN_THIS.py` immediately opens and closes a window: do not worry.** This does not mean that it failed. The script closes automatically upon completion, so if you want to verify that it worked properly, check the submodule `/RobustToolbox/` and verify that all the files are there.
**If running `RUN_THIS.py` immediately opens and closes a window: do not worry.** This does not mean that it failed. The script closes automatically upon completion, so if you want to verify that it worked properly, check the submodule `/RobustToolbox/` and verify that all the files are there. If not try checking out the troubleshooting at the bottom of this page.

Note: If you have any issues when getting started with missing files it's recommended you run `git submodule update --init --recursive` by hand once in case something went wrong with python.

Expand Down Expand Up @@ -132,3 +132,8 @@ Unhandled exception. Robust.Shared.IoC.Exceptions.ImplementationConstructorExcep
```

Uninstall .NET Core SDK x86. Install .NET Core SDK x64.


## The client and server aren't available in Visual Studio to configure in Multiple startup projects

This may be because you opened the project as a folder rather than a solution. Make sure you open it as a solution and click the space station 14 .sln file.
122 changes: 122 additions & 0 deletions src/en/maintainer-meetings/maintainer-meeting-2023-09-09.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
# Maintainer Meeting (09 Sep 2023)
```admonish info
Any decisions taken in these notes may no longer be applicable.
```

**Time:** 09 Sep 2023 18:00 UTC

**Attendees:**
- ElectroSR
- ShadowCommander
- Sloth
- PJB
- DrSmugleaf
- Notafet
- Julian
- Visne
- faint
- TheQuietOne
- keronshb
- Lank

## Remove component lifestage properties | metalgearsloth
- Remove component lifestage properties (this is a long-term thing but mainly looking at stopping new code adding checks):
- 90% of the time it's a bandaid for other shitty code
- probably needs removing when we go to struct components in the distant future
- Can probably just check the entity lifestage in most bandaid cases instead anyway
- **Fund it**
- **Most component stuff can just check entity instead, not too hard to remove**
- **Removing entity life stage would be much harder**

## Remove Component.Deleted | metalgearsloth
- adds unnecessary overhead to some codepaths like TryGetComponent\<T> / HasComponent\<T>
- It's really only useful in cases where something is queued but not removed yet but even then I'm kinda suss
- we can probably start investigating after arch port is stable
- **Do it**
- **How are we delaying component changes to the end of the tick some day who knows**

## Use the pooled collections instead of List\<T> / HashSet\<T> etc | metalgearsloth
- Uses the ArrayPool to back the arrays
- Should reduce heap allocsTM
- https://github.com/jtmueller/Collections.Pooled
- we may need to import it anyway for arch
- **Yes in engine, to replace ObjectPool**
- **Don't sandbox Shared pools**
- **Pool objects shouldn't be returned by methods**
- **I don't like it because it makes spaghetti out of memory management, and is basically just a bad bandaid after you give up doing it properly™️** - PJB

## Arch and performance | metalgearsloth
- We should get AddComp<TComp1, TComp2> etc to have content start leveraging minimising archetype changes though not sure how we want to handle it.
- any other overloads we could think of
- HasComp, RemoveComp, TryGetComp, EnsureComp
- how do we handle queries i.e. does content cache our existing queries, how do we handle not having .WithAll\<T> / .WithAny\<T> / .WithNone\<T>, do we cache arch queries and just have engine relay them, idk)
- **Use query description in engine**
- **If used from content, validate the types that the query handler asks for as Arch doesn't check (it just crashes)**

## NetEntities and handling unknown entities to the client | metalgearsloth
- NetEntities and handling unknown entities to the client: client may get netentity for something it might not know about yet (due to streaming or whatever else). How do we handle this and what's going to be the best way 3 years from now, e.g. some kind of handle for netentity + entity and entitymanager just updates the field when it comes in?
- Right now client just leaves the entityuid and code just checks for trygetcomp / deleted and it will just suddenly work when the entity comes in but with the entityuids no longer matching (and the entity may not exist yet) this is no longer possible
- Like:
- Do networked comps just store NetEntity? This is kinda ugly and adds dictionary overhead to everything
- Do we somehow put a ref on entitymanager then update it when the gamestate comes in and the entityuid automagically updates?
- **https://discord.com/channels/310555209753690112/900426319433728030/1147795695286362112**

## Refactoring UpdateBoundStateMessage / whatever the fuck UI is doing to compstates | metalgearsloth
- do we just dump all the data on components
- any data not already comps just dump on a dedicated UI component?
- **"You can scroll two points down for the BUI entities topic"**

## Changing TryComp\<T>(out var comp) to TryComp(out T comp) for most usages | metalgearsloth
- We had this discussion a long-ass time ago, like 4 years ago
- the latter is shorter
- I preferred it but we ended up using the former
- I think performance is almost identical
- bottom text
- **If we enforce it, enforce it with an analyzer**

## BUI entities | PJB
- Opening BUI just creates an entity that handles the UI logic. UI data is in that entity's components. We can do composition for various types of behaviors like interaction range. Move it all to content. PVS filter it so only target player has vision over it. One entity per BUI session (player).
- Do we give a shit about optimizing UI states if two players view the same UI? Right now this allows re-using the data but it seems like such a minor thing it's not worth making the system more complex over
- gooey booey looey
- **When you code it, ez clap, we're all in agreement**

## Disallow using Math and MathF | moony
- and make people use the type-specific functions instead that .NET 7 added
- so for example Math.Pow(x, y) would be double.Pow(x, y)
- Math/MathF are only defined for a limited set of types and are overall a bit more "magical" for what types they allow (due to overloading), so being explicit about the type is cleaner and allows that implied API to be extended (MyNumberType.Pow(x, y) would be what you'd expect to exist instead of initially guessing Math.Pow(x, y))
- all the functions on Math/MathF have equivalents on the type being operated on for the C# builtin types
- including the constants, so for example float.Pi exists
- also the divide between MathF and Math is just plain confusing most of the time
- **When you write an analyzer for it, for engine only**

## *"the thrilling case of the missing documentation "* | mirrorcult
- ok can we admit “just ask us for access to edit the dev wiki” is a failed prospect. no one actually knows you can do that and if they do know they dont want to bother with the friction of finding out who to ask and waiting just to submit a fix. as a result the dev wiki is extremely atrophied
- oh my god PLEASE can we move it all to mediawiki or something, i dont care what it is wikijs was a bad idea and i just want something that anyone can edit and add articles to. please
- we really desperately need to do a full audit over the docs, not necessarily like add new stuff rn because i get thats effort but just make sure its up to date information and all useful pages are actually discoverable
- maybe think about mirroring codebase changes to docs site once we get something better like mediawiki. this would probably involve just linking to the docs page in GH and discord as the source of truth
- we REALLY need to make the docfx sites more visible and linked in more places (and docs in general but), discord channels/pins/github/forum/ingame literally everywhere please (and maybe give them better domain names theyre really bad rn) and also
- add a ‘component glossary’ section to docfx which just shows all types that are registered components and what docs/fields they have. like half of the people in <#560845886263918612> ask for something like this and we just have to tell them ‘uhhh look in your IDE’ which is good when they already have the component they're looking for but terrible for when theyre trying to discover potential components they can use for some behavior
- topy was working on this at some point but they are inactive now. if possible just revive their branch we really need this
- **When You Document It**
- **We'll host it for whoever wants to experiment with shit**
- **I saw the search bar on mdbook and I'm convinced**
- **Replace wikijs with mdbook**

## Early Access Roadmap
- **nothing on this roadmap matters except early access trailer.**
- A trailer for Steam
- Also the >>>>**screenshots**<<<< for steam and the website
- holy shit we have **replays** now
- gamemodes/antags
- dynamic [c#16548](https://github.com/space-wizards/space-station-14/pull/16548)
- revolutionaries [c#18477](https://github.com/space-wizards/space-station-14/pull/18477)
- wizard
- The game runs like shit how do people play this
- "IDK but maybe when I fix the watchdog you can figure it out easier" | 09/09/2023


Crashes / Critical bugs: (when are we moving these to GitHub)
=> till next time
like and subscribe
smash that button
~~did you know only 6% of contribs join this meeting?~~ According to YouTube's statistics,
2 changes: 1 addition & 1 deletion src/en/meta/docs-example-page.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ All available admonishment types.

To use an admonishment:
``````
```admonishment {type} "{text you want as title, or leave blank}"
```admonish {type} "{text you want as title, or leave blank}"
description
```
``````
Expand Down
Loading

0 comments on commit 8b63882

Please sign in to comment.