Example #1
0
        public void DoorBehaviour_Use(uint id)
        {
            if (SpawnManager.SpawnedObjects.TryGetValue(id, out var spawnableObjectBehaviour))
            {
                if (Vector3.Distance(FougeritePlayer.Location, spawnableObjectBehaviour.transform.position) <= 4)
                {
                    var door = DoorSettings.GetDoorFromID(id);
                    if (!FougeritePlayer.Inventory.HasItem(door.Item))
                    {
                        FougeritePlayer.Notice("You need to have " + door.Item + " in your inventory!");
                        return;
                    }

                    bool open;
                    if (_doorOpenDictionary.ContainsKey(id))
                    {
                        open = !_doorOpenDictionary[id];
                    }
                    else
                    {
                        open = true;
                    }

                    spawnableObjectBehaviour.transform.FindChild("Lock").gameObject.SetActive(!open);

                    _doorOpenDictionary[id] = open;

                    foreach (var rpcDictionaryValue in WorldEditorServer.RPCDictionary.Values)
                    {
                        rpcDictionaryValue.DoorBehaviour_SetOpen(id, open);
                    }

                    if (!_doorBehaviour_closing)
                    {
                        StartCoroutine(DoorBehaviour_AutoCloseCoroutine(id));
                    }

//                    Debug.Log("Set open to " + open);
                }
                else
                {
                    DoorBehaviour_SetNearDoor(id, false);

//                    Debug.Log("Set NearDoor to false.");
                }
            }
        }
Example #2
0
        public static Door GetDoorFromID(uint id)
        {
            Load();

            var doors = Doors.Doors.Where(t => t.ID == id).ToArray();

            Door door;

            if (doors.Length == 0)
            {
                door = new Door(id, "asdf");

                Doors.Doors.Add(door);
                DoorSettings.Save();
            }
            else
            {
                door = doors[0];
            }

            return(door);
        }