public Assets(string folder, XElement xml) { XML = xml; if (XML.Element("VSwap") != null) { VSwap = VSwap.Load(folder, XML); } if (XML.Element("Maps") != null) { Maps = GameMap.Load(folder, XML); } if (XML.Element("VgaGraph") != null) { VgaGraph = VgaGraph.Load(folder, XML); } Pushwall = (ushort)(uint)XML?.Element("VSwap")?.Element("Objects")?.Element("Pushwall")?.Attribute("Number"); // Creating floor texture uint[] palette = WarpWriterFriendlyPalette(VSwap.Palette); ByteArrayRenderer renderer = new ByteArrayRenderer() { Width = 254, Height = 128, Color = new FlatVoxelColor() { Palette = palette, }, }; renderer.IsoTile(64, 64, palette[ WarpWriterFriendly( (byte)(int)XML.Element("Maps").Attribute("FloorIndex") ) ] ); Godot.Image image = new Image(); image.CreateFromData((int)renderer.Width, (int)renderer.Height, false, Image.Format.Rgba8, renderer.Bytes); Floor = new ImageTexture(); Floor.CreateFromImage(image, 0); FloorTileSet = new TileSet(); FloorTileSet.CreateTile(0); FloorTileSet.TileSetTexture(0, Floor); }