35 lines
1.3 KiB
C#
35 lines
1.3 KiB
C#
using TinyGoose.Tremble;
|
|
using UnityEngine;
|
|
|
|
namespace Code.Game.OfficeGame.Location
|
|
{
|
|
public class LocationSegmentPreProcessor : MapProcessorBase
|
|
{
|
|
// Seems safe to be inaccurate
|
|
private LocationSegment _locationSegment;
|
|
public override void ProcessWorldSpawnProperties(MapBsp mapBsp, BspEntity entity, GameObject rootGameObject)
|
|
{
|
|
_locationSegment = rootGameObject.GetComponentInChildren<LocationSegment>();
|
|
}
|
|
|
|
public override void ProcessPointEntity(MapBsp mapBsp, BspEntity entity, GameObject point)
|
|
{
|
|
if (entity.GetClassname() != "Utility_LocationTransitionPoint") return;
|
|
|
|
var transitionPoint = point.GetComponent<LocationTransitionPoint>();
|
|
transitionPoint.selfLocationID = _locationSegment.locationID;
|
|
|
|
_locationSegment.transitionPoints.Add(transitionPoint);
|
|
}
|
|
|
|
public override void ProcessBrushEntity(MapBsp mapBsp, BspEntity entity, GameObject brush)
|
|
{
|
|
if (entity.GetClassname() != "func_LocationSegmentTrigger") return;
|
|
|
|
var locationSegmentTrigger = brush.GetComponent<LocationSegmentTrigger>();
|
|
locationSegmentTrigger.segment = _locationSegment;
|
|
|
|
_locationSegment.triggers.Add(locationSegmentTrigger);
|
|
}
|
|
}
|
|
} |