Files
crystall-punk-14/Content.Shared/_CP14/Movement/CP14FloorOcclusionSystem.Maps.cs
Ed cc80518d2f World minor changes (#519)
* x2 weather time

* remove alchemy test and battle royale maps, add simple island map

* island map + ocean parallax

* map floor occluder sys

* undercliff test

* update sand and ocean sprite

* Revert "undercliff test"

This reverts commit c484fe630a.

* more experiments

* Revert "more experiments"

This reverts commit a7f30fd608.

* Update default.yml

* Update debug.yml
2024-10-29 11:48:52 +03:00

32 lines
999 B
C#

using Content.Shared.Movement.Components;
namespace Content.Shared.Movement.Systems;
public abstract partial class SharedFloorOcclusionSystem
{
[Dependency] private readonly SharedTransformSystem _transform = default!;
private void CP14InitializeMapOccluder()
{
SubscribeLocalEvent<FloorOcclusionComponent, EntParentChangedMessage>(OnParentChanged);
}
private void OnParentChanged(Entity<FloorOcclusionComponent> ent, ref EntParentChangedMessage args)
{
if (args.OldParent == null || TerminatingOrDeleted(ent))
return;
if (ent.Comp.Colliding.Contains(args.OldParent.Value))
ent.Comp.Colliding.Remove(args.OldParent.Value);
var newParent = _transform.GetParentUid(ent);
if (HasComp<CP14MapFloorOccluderComponent>(newParent))
{
if (!ent.Comp.Colliding.Contains(newParent))
ent.Comp.Colliding.Add(newParent);
}
Dirty(ent);
SetEnabled(ent);
}
}