public override bool ConsumeItem(Player player) { int tileX = (int)player.Center.X >> 4; int tileY = (int)player.position.Y >> 4; ISet <(int, int)> _; bool canErect = HouseFramingKitItem.Validate(ref tileX, ref tileY, out _); if (canErect) { if (Main.netMode == NetmodeID.SinglePlayer) { HouseFramingKitItem.MakeHouseFrame(tileX, tileY); } else if (Main.netMode == NetmodeID.MultiplayerClient) { FramingKitProtocol.SendToServer(tileX, tileY); return(true); } else if (Main.netMode == NetmodeID.Server) { LogLibraries.Alert("Server?"); } } else { Main.NewText("Not enough open space.", Color.Yellow); } return(canErect); }
public static void MakeHouseFrame(int midTileX, int floorTileY) { int width = HouseFramingKitItem.FrameWidth; int height = HouseFramingKitItem.FrameHeight; var outerRect = new Rectangle( midTileX - (width / 2), floorTileY - height, width, height ); var innerRect = outerRect; innerRect.X += 1; innerRect.Y += 1; innerRect.Width -= 2; innerRect.Height -= 2; var frameTileDef = new TileDrawDefinition { TileType = TileID.WoodBlock }; // bool isSolidFrame(int x, int y) => HouseFramingKitItem.IsHouseFrameTileSolid(x, y, width, height, outerRect); // TileDrawPrimitivesLibraries.DrawRectangle( filter: TilePattern.NonActive, area: outerRect, hollow: innerRect, place: (x, y) => isSolidFrame(x, y) ? frameTileDef : null ); TileDrawPrimitivesLibraries.DrawRectangle( filter: TilePattern.NonActive, area: outerRect, hollow: null, place: (int x, int y) => HouseFramingKitItem.GetHouseFrameTileDefAt1(x, y, width, height, outerRect) ); TileDrawPrimitivesLibraries.DrawRectangle( filter: TilePattern.NonActive, area: outerRect, hollow: null, place: (int x, int y) => HouseFramingKitItem.GetHouseFrameTileDefAt2(x, y, width, height, outerRect) ); /*int ceiling = floorTileY - height; * * Tile tile1 = Main.tile[ midTileX-3, ceiling+1 ]; * tile1.slope( 1 ); * Tile tile2 = Main.tile[ midTileX+2, ceiling+1 ]; * tile2.slope( 2 );*/ if (Main.netMode == NetmodeID.Server) { //LogLibraries.Log( "!!!MakeHouseFrame "+outerRect.ToString() ); TileRectangleModPacketProtocol.Send(outerRect); } // HouseFramingKitItem.MakeHouseSupports(outerRect, floorTileY); Main.PlaySound(SoundID.Item108, new Vector2(midTileX * 16, floorTileY * 16)); }