public double CalculateHeight(int X, int Y) { try { List <RoomItem> items = RoomItems.Values.Where(x => x.X == X && x.Y == Y).OrderByDescending(x => x.Z).ToList(); if (items != null && items.Count > 0) { RoomItem item = items[0]; double height = item.Z; if (item.BaseItem.InteractionCount > 0) { height += item.BaseItem.MultiHeight[item.GetState()]; } else { height += item.BaseItem.Height; } return(height); } } catch { } return(0); }
public override void Write() { WriteInt(8); WriteInt(Item.Id); WriteInt(Item.Rot); WriteInt(Item.GetState()); WriteInt(Item.X); WriteInt(Item.Y); WriteDouble(Item.Z); }
public override void Write() { WriteInt(12); WriteInt(Item.Id); WriteString(Item.BaseItem.FurnidataName); WriteInt(Item.X); WriteInt(Item.Y); WriteDouble(Item.Z); WriteInt(Item.Rot); WriteInt(Item.GetState()); }
public void Trigger(GameClient Client, RoomItem Item) { int State = Item.GetState(); int NewState = State + 1; if (NewState > Item.BaseItem.InteractionCount) { NewState = 0; } Item.ExtraData = NewState.ToString(); if (Client.Room != null) { Client.Room.RoomMapManager.UpdateItemInfo(Item); } }