public void Spawn(bool attackable) { GameObject?.Destroy(); GameObject_proto proto = GameObjectService.GetGameObjectProto(Info.GameObjectId); if (proto == null) { Log.Error("KeepDoor", "No Door Proto"); return; } _logger.Debug($"Spawning Keep Door = {Info.DoorId} Number = {Info.Number} for Keep = {Keep.Info.Name}"); GameObject_spawn spawn = new GameObject_spawn { Guid = (uint)GameObjectService.GenerateGameObjectSpawnGUID(), WorldO = Info.O, WorldY = Info.Y, WorldZ = Info.Z, WorldX = Info.X, ZoneId = Info.ZoneId, DoorId = Info.DoorId, }; spawn.BuildFromProto(proto); GameObject = new KeepGameObject(spawn, this, Keep); Region.AddObject(GameObject, spawn.ZoneId); GameObject.SetAttackable(attackable); Occlusion.SetFixtureVisible(Info.DoorId, true); }
public void Spawn() { GameObject?.Destroy(); GameObject_proto proto = GameObjectService.GetGameObjectProto(Info.GameObjectId); if (proto == null) { Log.Error("KeepDoor", "No Door Proto"); return; } // Log.Info("KeepDoor", "Spawning Keep Door = " + Info.DoorId + " Number = " + Info.Number); GameObject_spawn spawn = new GameObject_spawn { Guid = (uint)GameObjectService.GenerateGameObjectSpawnGUID(), WorldO = Info.O, WorldY = Info.Y, WorldZ = Info.Z, WorldX = Info.X, ZoneId = Info.ZoneId, DoorId = Info.DoorId, }; spawn.BuildFromProto(proto); GameObject = new KeepGameObject(spawn, this, Keep); Region.AddObject(GameObject, spawn.ZoneId); GameObject.SetAttackable(Keep.KeepStatus != KeepStatus.KEEPSTATUS_LOCKED); WarZoneLib.RegionData.HideDoor(false, Info.ZoneId, Info.DoorId); }