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); }
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(); } }