Example #1
0
        public ElevatorState2(string screen)
        {
            Info = new ElevatorInfo();

            Info.Floor3.CallEnabled = true;
            Info.Floor3.Screen      = Constants.DOOR_CLOSED;

            Info.Floor2.CallEnabled = false;
            Info.Floor2.Screen      = screen;

            Info.Floor1.CallEnabled = true;
            Info.Floor1.Screen      = Constants.DOOR_CLOSED;
        }
Example #2
0
        public Elevator()
        {
            Info = new ElevatorInfo();

            Info.Floor3.CallEnabled = true;
            Info.Floor3.Screen      = Constants.DOOR_CLOSED;
            Info.Floor2.CallEnabled = true;
            Info.Floor2.Screen      = Constants.DOOR_CLOSED;
            Info.Floor1.CallEnabled = false;
            Info.Floor1.Screen      = Constants.DOOR_OPEN;

            floor = 1;
        }
Example #3
0
        void cmdChatElevatorAdd(BasePlayer player, string command, string[] args)
        {
            if (!hasPermission(player))
            {
                SendReply(player, "You don't have access to this command"); return;
            }
            if (args.Length < 2)
            {
                SendReply(player, "/elevator_add NAME WAYPOINTS");
                return;
            }
            var waypoints = Waypoints.Call("GetWaypointsList", args[1]);

            if (waypoints == null)
            {
                SendReply(player, "No waypoints with this name exist");
                return;
            }
            if (((List <object>)waypoints).Count < 2)
            {
                SendReply(player, "To create an elevator you need at least 2 waypoints");
                return;
            }
            if (!TryGetPlayerView(player, out currentRot))
            {
                return;
            }
            if (!TryGetClosestRayPoint(player.transform.position, currentRot, out closestEnt, out closestHitpoint))
            {
                return;
            }
            Debug.Log(closestEnt.ToString());
            BuildingBlock block = ((Collider)closestEnt).GetComponentInParent <BuildingBlock>();

            if (block == null)
            {
                SendReply(player, "What you are looking at is not a building block");
                return;
            }
            var newelevatorinfo = new ElevatorInfo(block, args[0], args[1]);

            if (elevators[newelevatorinfo.Name] != null)
            {
                storedData.Elevators.Remove(elevators[newelevatorinfo.Name]);
            }
            elevators[newelevatorinfo.Name] = newelevatorinfo;
            storedData.Elevators.Add(elevators[newelevatorinfo.Name]);
            SaveData();
            SendReply(player, "You've successfully created a new elevator");
            NewElevator(elevators[newelevatorinfo.Name]);
        }
Example #4
0
        void NewElevator(ElevatorInfo info)
        {
            var objects = GameObject.FindObjectsOfType(typeof(Elevator));

            if (objects != null)
            {
                foreach (Elevator gameObj in objects)
                {
                    if (gameObj.info.Name == info.Name)
                    {
                        GameObject.Destroy(gameObj);
                    }
                }
            }
            GameObject gameobject = new UnityEngine.GameObject();

            gameobject.AddComponent <Elevator>();
            gameobject.GetComponent <Elevator>().SetInfo(info);
        }
Example #5
0
            public void SetInfo(ElevatorInfo info)
            {
                this.info = info;
                var cwaypoints = Interface.CallHook("GetWaypointsList", this.info.WaypointsName);

                if (cwaypoints == null)
                {
                    Debug.Log(string.Format("{0} was destroyed, informations are invalid. Did you set waypoints? or a PrefabName?", info.Name));
                    GameObject.Destroy(this);
                    return;
                }
                this.waypoints = new List <WaypointInfo>();
                foreach (var cwaypoint in (List <object>)cwaypoints)
                {
                    foreach (KeyValuePair <Vector3, float> pair in (Dictionary <Vector3, float>)cwaypoint)
                    {
                        this.waypoints.Add(new WaypointInfo(pair.Key, pair.Value));
                    }
                }
                if (this.waypoints.Count < 2)
                {
                    Debug.Log(string.Format("{0} waypoints were detected for {1}. Needs at least 2 waypoints. Destroying.", this.waypoints.Count.ToString(), info.Name));
                    GameObject.Destroy(this);
                    return;
                }
                this.rotation = new UnityEngine.Quaternion(Convert.ToSingle(info.rx), Convert.ToSingle(info.ry), Convert.ToSingle(info.rz), Convert.ToSingle(info.rw));
                this.block    = CreateBuildingBlock(this.info.PrefabName, this.waypoints[0].GetPosition(), this.rotation, Convert.ToInt32(this.info.Grade));
                if (this.block == null)
                {
                    Debug.Log(string.Format("Something went wrong, couldn't create the BuildingBlock for {0}", info.Name));
                    GameObject.Destroy(this);
                    return;
                }
                protectedBlock.Add(this.block.GetComponent <BaseCombatEntity>());
                trigger = block.GetComponentInChildren <MeshCollider>().gameObject.AddComponent <TriggerBase>();
                trigger.gameObject.name = "Elevator";
                var newlayermask = new UnityEngine.LayerMask();

                newlayermask.value       = 133120;
                trigger.interestLayers   = newlayermask;
                trigger.gameObject.layer = UnityEngine.LayerMask.NameToLayer("Trigger");
                spawnedElevators.Add(this);
            }
Example #6
0
 public void SetInfo(ElevatorInfo info)
 {
     this.info = info;
     var cwaypoints = Interface.CallHook("GetWaypointsList", this.info.WaypointsName);
     if (cwaypoints == null)
     {
         Debug.Log(string.Format("{0} was destroyed, informations are invalid. Did you set waypoints? or a PrefabName?", info.Name));
         GameObject.Destroy(this);
         return;
     }
     this.waypoints = new List<WaypointInfo>();
     foreach (var cwaypoint in (List<object>)cwaypoints)
     {
         foreach (KeyValuePair<Vector3, float> pair in (Dictionary<Vector3,float>)cwaypoint)
         {
             this.waypoints.Add(new WaypointInfo(pair.Key, pair.Value));
         }
     }
     if (this.waypoints.Count < 2)
     {
         Debug.Log(string.Format("{0} waypoints were detected for {1}. Needs at least 2 waypoints. Destroying.", this.waypoints.Count.ToString(), info.Name));
         GameObject.Destroy(this);
         return;
     }
     this.rotation = new UnityEngine.Quaternion(Convert.ToSingle(info.rx), Convert.ToSingle(info.ry), Convert.ToSingle(info.rz), Convert.ToSingle(info.rw));
     this.block = CreateBuildingBlock(this.info.PrefabName, this.waypoints[0].GetPosition(), this.rotation, Convert.ToInt32(this.info.Grade));
     if(this.block == null)
     {
         Debug.Log(string.Format("Something went wrong, couldn't create the BuildingBlock for {0}", info.Name));
         GameObject.Destroy(this);
         return;
     }
     protectedBlock.Add(this.block.GetComponent<BaseCombatEntity>());
     trigger = block.GetComponentInChildren<MeshCollider>().gameObject.AddComponent<TriggerBase>();
     trigger.gameObject.name = "Elevator";
     var newlayermask = new UnityEngine.LayerMask();
     newlayermask.value = 133120;
     trigger.interestLayers = newlayermask;
     trigger.gameObject.layer = UnityEngine.LayerMask.NameToLayer("Trigger");
     spawnedElevators.Add(this);
 }
Example #7
0
 void NewElevator(ElevatorInfo info)
 {
     var objects = GameObject.FindObjectsOfType(typeof(Elevator));
     if (objects != null)
         foreach (Elevator gameObj in objects)
         {
             if(gameObj.info.Name == info.Name)
             {
                 GameObject.Destroy(gameObj);
             }
         }
     GameObject gameobject = new UnityEngine.GameObject();
     gameobject.AddComponent<Elevator>();
     gameobject.GetComponent<Elevator>().SetInfo(info);
 }
Example #8
0
 void cmdChatElevatorAdd(BasePlayer player, string command, string[] args)
 {
     if (!hasPermission(player)) { SendReply(player, "You don't have access to this command"); return; }
     if (args.Length < 2)
     {
         SendReply(player, "/elevator_add NAME WAYPOINTS");
         return;
     }
     var waypoints = Waypoints.Call("GetWaypointsList", args[1]);
     if(waypoints == null)
     {
         SendReply(player, "No waypoints with this name exist");
         return;
     }
     if( ((List<object>)waypoints).Count < 2)
     {
         SendReply(player, "To create an elevator you need at least 2 waypoints");
         return;
     }
     if (!TryGetPlayerView(player, out currentRot)) return;
     if (!TryGetClosestRayPoint(player.transform.position, currentRot, out closestEnt, out closestHitpoint)) return;
     Debug.Log(closestEnt.ToString());
     BuildingBlock block = ((Collider)closestEnt).GetComponentInParent<BuildingBlock>();
     if (block == null)
     {
         SendReply(player, "What you are looking at is not a building block");
         return;
     }
     var newelevatorinfo = new ElevatorInfo(block, args[0], args[1]);
     if (elevators[newelevatorinfo.Name] != null) storedData.Elevators.Remove(elevators[newelevatorinfo.Name]);
     elevators[newelevatorinfo.Name] = newelevatorinfo;
     storedData.Elevators.Add(elevators[newelevatorinfo.Name]);
     SaveData();
     SendReply(player, "You've successfully created a new elevator");
     NewElevator(elevators[newelevatorinfo.Name]);
 }