Beispiel #1
0
        public void Remove(bool exit = false)
        {
            for (int i = 0; i < Weapons.Length; i++)
            {
                if (Weapons[i] == null)
                {
                    continue;
                }

                if (exit)
                {
                    Weapons[i].GunObject.delete();
                }
                else
                {
                    Weapons[i].Remove();
                }
            }

            if (!exit)
            {
                foreach (NetHandle entity in RackColShape.getAllEntities())
                {
                    Client player;

                    if ((player = API.shared.getPlayerFromHandle(entity)) != null)
                    {
                        player.resetData("RackID");
                        player.triggerEvent("SetRackState", false);
                    }
                }

                Main.GunRacks.Remove(this);
                File.Delete(Main.RackDir + ID + ".json");
            }

            RackObject.delete();
            RackLabel.delete();
            API.shared.deleteColShape(RackColShape);
        }
Beispiel #2
0
        public GunRackEntity(Guid id, string owner, Vector3 coords, float rotation, bool isPrivate, bool firstTime = false)
        {
            ID        = id;
            Owner     = owner;
            Coords    = coords;
            Rotation  = rotation;
            IsPrivate = isPrivate;

            RackObject = API.shared.createObject(API.shared.getHashKey("prop_cs_gunrack"), coords, new Vector3(0f, 0f, rotation));

            RackLabel = API.shared.createTextLabel(string.Format("Gun Rack~n~~n~Owned By: ~b~{0}~n~~w~Locked: ~b~{1}", owner, (isPrivate) ? "Yes" : "No"), coords, 10f, 0.55f, true);
            RackLabel.attachTo(RackObject.handle, null, new Vector3(0f, 0f, 0.75f), new Vector3());

            RackColShape = API.shared.createCylinderColShape(coords, 1f, 1f);
            RackColShape.onEntityEnterColShape += (s, ent) =>
            {
                Client player;
                if ((player = API.shared.getPlayerFromHandle(ent)) != null)
                {
                    player.setData("RackID", ID);
                    player.triggerEvent("SetRackState", true);
                }
            };

            RackColShape.onEntityExitColShape += (s, ent) =>
            {
                Client player;
                if ((player = API.shared.getPlayerFromHandle(ent)) != null)
                {
                    player.resetData("RackID");
                    player.triggerEvent("SetRackState", false);
                }
            };

            if (firstTime)
            {
                Save();
            }
        }