Esempio n. 1
0
        public override void OnLoad(ISynapseObject synapseObject, ArraySegment <string> args)
        {
            if (!(synapseObject is SynapseDoorObject door))
            {
                return;
            }
            if (args.Count == 0 || !int.TryParse(args.At(0), out var leftschematicID) || !SchematicHandler.Get.IsIDRegistered(leftschematicID))
            {
                return;
            }

            var leftDoor      = door.GameObject.transform.GetChild(2).GetChild(1).GetChild(0);
            var leftschematic = SchematicHandler.Get.SpawnSchematic(leftschematicID, leftDoor.transform.position);

            leftschematic.GameObject.transform.parent = leftDoor.transform;

            if (door.DoorType != Enum.SpawnableDoorType.EZ)
            {
                if (args.Count < 2 || !int.TryParse(args.At(1), out var righttschematicID) || !SchematicHandler.Get.IsIDRegistered(righttschematicID))
                {
                    return;
                }

                var rightDoor      = door.GameObject.transform.GetChild(2).GetChild(1).GetChild(1);
                var rightschematic = SchematicHandler.Get.SpawnSchematic(righttschematicID, rightDoor.transform.position);
                rightschematic.GameObject.transform.parent = rightDoor.transform;
            }
        }
Esempio n. 2
0
 public override void OnUpdate(ISynapseObject synapseObject)
 {
     foreach (var player in Server.Get.Players)
     {
         if (Vector3.Distance(player.Position, synapseObject.Position) < Distance[synapseObject])
         {
             player.Position = GetTeleportPosition(Args[synapseObject], synapseObject);
         }
     }
 }
Esempio n. 3
0
        public override Vector3 GetTeleportPosition(ArraySegment <string> args, ISynapseObject synapseObject)
        {
            if (args.Count >= 5 && MapPoint.TryParse($"{args.At(1)}:{args.At(2)}:{args.At(3)}:{args.At(4)}", out var point))
            {
                return(point.Position);
            }

            Logger.Get.Warn($"Synapse-Schematic: Teleporter with Invalid Arguments at {synapseObject.Position}. Player will be send to Position 0");
            return(Vector3.zero);
        }
Esempio n. 4
0
 public override void OnLoad(ISynapseObject synapseObject, ArraySegment <string> args)
 {
     Args[synapseObject] = args;
     if (args.Count > 0 && float.TryParse(args.At(0), out var distance))
     {
         Distance[synapseObject] = distance;
     }
     else
     {
         Distance[synapseObject] = 1;
     }
 }
Esempio n. 5
0
        public override Vector3 GetTeleportPosition(ArraySegment <string> args, ISynapseObject synapseObject)
        {
            if (args.Count == 2 && float.TryParse(args.At(1), out var result))
            {
                return(new Vector3(result, result, result));
            }
            if (args.Count >= 4 && float.TryParse(args.At(1), out var x) && float.TryParse(args.At(2), out var y) && float.TryParse(args.At(3), out var z))
            {
                return(new Vector3(x, y, z));
            }

            Logger.Get.Warn($"Synapse-Schematic: Teleporter with Invalid Arguments at {synapseObject.Position}. Player will be send to Position 0");
            return(Vector3.zero);
        }
Esempio n. 6
0
 public abstract Vector3 GetTeleportPosition(ArraySegment <string> args, ISynapseObject synapseObject);
Esempio n. 7
0
 public override void OnDestroy(ISynapseObject synapseObject)
 {
     Args.Remove(synapseObject);
     Distance.Remove(synapseObject);
 }
Esempio n. 8
0
 public void AttachSynapseObject(ISynapseObject so, Vector3 offset)
 {
     so.Rotation = transform.rotation;
     so.Position = transform.TransformPoint(offset);
     so.GameObject.transform.parent = transform;
 }
 internal SOEventArgs(ISynapseObject so) => Object = so;
Esempio n. 10
0
 public virtual void OnUpdate(ISynapseObject synapseObject)
 {
 }
Esempio n. 11
0
 public virtual void OnDestroy(ISynapseObject synapseObject)
 {
 }
Esempio n. 12
0
 public virtual void OnLoad(ISynapseObject synapseObject, System.ArraySegment <string> args)
 {
 }