Skip to content
This repository was archived by the owner on Jun 28, 2026. It is now read-only.

Refactor(?) SpawnNextToOrDrop, allow DropNextTo to take an offset#37

Open
SnappingOpossum wants to merge 4 commits into
Space-Wizards-Federation:masterfrom
sopossumfork:EngineSpawnNextToOrDrop
Open

Refactor(?) SpawnNextToOrDrop, allow DropNextTo to take an offset#37
SnappingOpossum wants to merge 4 commits into
Space-Wizards-Federation:masterfrom
sopossumfork:EngineSpawnNextToOrDrop

Conversation

@SnappingOpossum

Copy link
Copy Markdown

Decided to actually get my stuff set up and start mirroring my stuff.
Mirrored from LegacyRT#6605

Requires Space-Wizards-Federation/space-station-14#97

Made it use Entity<T>, allowed spawns to be offset, had it spawn with the overrides on fail, and made it only run mapinit after putting the entity in place and use a CreateEntityUnitialized like some other spawn methods do.

Initially did this just because I wanted to be able to offset things and use SpawnNextToOrDrop, and felt like I might as well make it Entity<T> and fix the issues caused by its early initialisation while I'm at it. The conversion to Entity<TransformComponent?> does mean some other Entity<T> uses have to be explicitly converted to an EntityUid first, but given how little it's used that was only three files in content

Comment on lines +192 to +194
var uid = CreateEntityUninitialized(protoName, out var meta, overrides);
InitializeAndStartEntity((uid, meta), false);
_xforms.DropNextTo(uid, target, offset);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Better to initialize the entity at its target spot as it will make the spawn 2x faster by skipping all of the transform events for a 2nd time.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That can end up raising container events on it before it's initialised though, an issue that was first raised in LegacyRT#6192(Comment).

@Velken Velken added the enhancement New feature or request label Jun 19, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants