public class NetPackageOpenTileEntityRebirth : NetPackage { public NetPackageOpenTileEntityRebirth Setup(int _playerId, int _posX, int _posY, int _posZ, string _window, string _windowGroup, string _sound, bool _isAccessed = false, bool _setOpen = false) { //Log.Out("NetPackageOpenVehicleRepairRebirth-Setup"); this.playerId = _playerId; this.posX = _posX; this.posY = _posY; this.posZ = _posZ; this.window = _window; this.windowGroup = _windowGroup; this.sound = _sound; this.isAccessed = _isAccessed; this.setOpen = _setOpen; return this; } public override void read(PooledBinaryReader _br) { //Log.Out("NetPackageOpenVehicleRepairRebirth-read"); this.playerId = _br.ReadInt32(); this.posX = _br.ReadInt32(); this.posY = _br.ReadInt32(); this.posZ = _br.ReadInt32(); this.window = _br.ReadString(); this.windowGroup = _br.ReadString(); this.sound = _br.ReadString(); this.isAccessed = _br.ReadBoolean(); this.setOpen = _br.ReadBoolean(); } public override void write(PooledBinaryWriter _bw) { //Log.Out("NetPackageOpenVehicleRepairRebirth-write"); base.write(_bw); _bw.Write(this.playerId); _bw.Write(this.posX); _bw.Write(this.posY); _bw.Write(this.posZ); _bw.Write(this.window); _bw.Write(this.windowGroup); _bw.Write(this.sound); _bw.Write(this.isAccessed); _bw.Write(this.setOpen); } public override void ProcessPackage(World _world, GameManager _callbacks) { //Log.Out("NetPackageOpenVehicleRepairRebirth-ProcessPackage START"); if (_world == null) { return; } Vector3i location = new Vector3i(); location.x = this.posX; location.y = this.posY; location.z = this.posZ; if (SingletonMonoBehaviour.Instance.IsServer) { //Log.Out("NetPackageOpenVehicleRepairRebirth-ProcessPackage IsServer"); if (!this.setOpen) { //Log.Out("NetPackageOpenVehicleRepairRebirth-ProcessPackage Check if Open"); this.isAccessed = false; foreach (TileEntityOwners tileEntityOwner in RebirthVariables.accessedTileEntities) { if (tileEntityOwner.location == location) { this.isAccessed = true; break; } } //Log.Out("NetPackageOpenVehicleRepairRebirth-ProcessPackage Send to Client, this.isAccessed: " + this.isAccessed); //Log.Out("NetPackageOpenVehicleRepairRebirth-ProcessPackage this.playerId: " + this.playerId); //Log.Out("NetPackageOpenVehicleRepairRebirth-ProcessPackage location: " + location); SingletonMonoBehaviour.Instance.SendPackage(NetPackageManager.GetPackage().Setup(this.playerId, location.x, location.y, location.z, this.window, this.windowGroup, this.sound, this.isAccessed), false, this.playerId, -1, -1, null, 192); } else { //Log.Out("NetPackageOpenVehicleRepairRebirth-ProcessPackage Add Restriction"); TileEntityOwners tileEntityOwner = new TileEntityOwners(); tileEntityOwner.location = location; tileEntityOwner.owner = this.playerId; RebirthVariables.accessedTileEntities.Add(tileEntityOwner); } return; } //Log.Out("NetPackageOpenVehicleRepairRebirth-ProcessPackage IsClient"); EntityPlayerLocal _player = GameManager.Instance.World.GetPrimaryPlayer(); if (_player != null) { LocalPlayerUI uiforPlayer = LocalPlayerUI.GetUIForPlayer((EntityPlayerLocal)_player); GUIWindowManager windowManager = uiforPlayer.windowManager; if (!this.isAccessed) { //Log.Out("NetPackageOpenVehicleRepairRebirth-ProcessPackage Not Accessed"); //Log.Out("NetPackageOpenVehicleRepairRebirth-ProcessPackage this.playerId: " + this.playerId); //Log.Out("NetPackageOpenVehicleRepairRebirth-ProcessPackage location: " + location); Chunk chunk = (Chunk)_world.GetChunkFromWorldPos(location.x, location.z); TileEntity tileEntity = _world.GetTileEntity(chunk.ClrIdx, location) as TileEntity; bool isOpen = RebirthUtilities.OpenTileWindow(_player, tileEntity, windowGroup, window, sound); if (isOpen) { SingletonMonoBehaviour.Instance.SendToServer(NetPackageManager.GetPackage().Setup(uiforPlayer.entityPlayer.entityId, location.x, location.y, location.z, window, windowGroup, sound, true, true), false); } } else { //Log.Out("NetPackageOpenVehicleRepairRebirth-ProcessPackage Is Accessed"); GameManager.ShowTooltip(uiforPlayer.entityPlayer, Localization.Get("ttNoInteractItem"), string.Empty, "ui_denied", null); } } } public override int GetLength() { return 12; } private int playerId = -1; private int posX = 0; private int posY = 0; private int posZ = 0; private string window; private string windowGroup; private string sound; private bool isAccessed = false; private bool setOpen = false; }