diff --git a/AnimationsFileCreator/Program.cs b/AnimationsFileCreator/Program.cs index 68768cf..45c6a06 100644 --- a/AnimationsFileCreator/Program.cs +++ b/AnimationsFileCreator/Program.cs @@ -22,7 +22,8 @@ namespace AnimationsFileCreator { DialogResult result = Dialog.FileOpen(); - textureName = result.Path.Split('\\').Last(); + var temp = result.Path.Split('\\'); + textureName = temp[temp.Length-2] + "/"+temp[temp.Length - 1]; textureName = textureName.Split('.')[0]; } Console.WriteLine("Введите количество кадров анимации: "); @@ -60,11 +61,11 @@ namespace AnimationsFileCreator container.FrameTime = new System.Collections.Generic.List>(); container.FrameTime.Add(new Tuple(0, interval)); container.StartSpriteRectangle = rectangle; - container.TextureName = textureName; - container.TextureFrameInterval = 1; + container.TextureName = "Textures/AnimationTextures/"+textureName; + container.TextureFrameInterval = 0; container.Id = id; string json = JsonConvert.SerializeObject(container); - StreamWriter writer = new StreamWriter("../../../../ZoFo/Content/animations/"+id); + StreamWriter writer = new StreamWriter("../../../../ZoFo/Content/Textures/Animations/"+id+ ".animation"); writer.WriteLine(json); writer.Close(); } diff --git a/MonogameLibrary/UI/Elements/CheckBox.cs b/MonogameLibrary/UI/Elements/CheckBox.cs index b8eec17..47ac44e 100644 --- a/MonogameLibrary/UI/Elements/CheckBox.cs +++ b/MonogameLibrary/UI/Elements/CheckBox.cs @@ -53,9 +53,9 @@ namespace MonogameLibrary.UI.Elements public override void LoadTexture(ContentManager content) { - texture1 = content.Load("Textures\\GUI\\checkboxs_off"); - texture2 = content.Load("Textures\\GUI\\checkboxs_off-on"); - texture3 = content.Load("Textures\\GUI\\checkboxs_on"); + texture1 = content.Load("Textures/GUI/checkboxs_off"); + texture2 = content.Load("Textures/GUI/checkboxs_off-on"); + texture3 = content.Load("Textures/GUI/checkboxs_on"); base.LoadTexture(content); } public override void Draw(SpriteBatch _spriteBatch) diff --git a/MonogameLibrary/UI/Elements/Slider.cs b/MonogameLibrary/UI/Elements/Slider.cs index fd884d8..0525666 100644 --- a/MonogameLibrary/UI/Elements/Slider.cs +++ b/MonogameLibrary/UI/Elements/Slider.cs @@ -21,6 +21,9 @@ namespace MonogameLibrary.UI.Elements public int indentation = 5; Texture2D texture2; + /// + /// ректенгл ползунка + /// public Rectangle sliderRect = new Rectangle(0, 0, 40, 40); private float sliderValue = 0; private float minValue = 0, maxValue = 1; @@ -56,7 +59,7 @@ namespace MonogameLibrary.UI.Elements public override void LoadTexture(ContentManager content) { - texture2 = content.Load("Textures\\GUI\\switch"); + texture2 = content.Load("Textures/GUI/switch"); base.LoadTexture(content); } diff --git a/ZoFo/Content/Content.mgcb b/ZoFo/Content/Content.mgcb index cdcfaeb..ea0d2f4 100644 --- a/ZoFo/Content/Content.mgcb +++ b/ZoFo/Content/Content.mgcb @@ -34,6 +34,15 @@ /processorParam:TextureFormat=Compressed /build:Fonts/Font3.spritefont +#begin MapData/TileMaps/main.tmj +/copy:MapData/TileMaps/main.tmj + +#begin MapData/TileMaps/main.tmx +/copy:MapData/TileMaps/main.tmx + +#begin MapData/TileSets/TileSet 1.tsj +/copy:MapData/TileSets/TileSet 1.tsj + #begin sounds/Loot.wav /importer:WavImporter /processor:SoundEffectProcessor @@ -82,7 +91,89 @@ /processorParam:Quality=Best /build:sounds/Zombi stoit.wav -#begin Textures/GUI/checkboxs_off.png +#begin Textures/AnimationTextures/Character/hr-level1_idle_gun.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/AnimationTextures/Character/hr-level1_idle_gun.png + +#begin Textures/AnimationTextures/Character/hr-level1_idle.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/AnimationTextures/Character/hr-level1_idle.png + +#begin Textures/AnimationTextures/Character/hr-level1_mining_tool-1.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/AnimationTextures/Character/hr-level1_mining_tool-1.png + +#begin Textures/AnimationTextures/Character/hr-level1_mining_tool-2.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/AnimationTextures/Character/hr-level1_mining_tool-2.png + +#begin Textures/AnimationTextures/Character/hr-level1_running_gun.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/AnimationTextures/Character/hr-level1_running_gun.png + +#begin Textures/AnimationTextures/Character/hr-level1_running.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/AnimationTextures/Character/hr-level1_running.png + +#begin Textures/AnimationTextures/unicorn.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/AnimationTextures/unicorn.png #begin Textures/GUI/background/base.png /importer:TextureImporter @@ -96,6 +187,18 @@ /processorParam:TextureFormat=Color /build:Textures/GUI/background/base.png +#begin Textures/GUI/background/endGame.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/GUI/background/endGame.png + #begin Textures/GUI/background/join.png /importer:TextureImporter /processor:TextureProcessor @@ -108,6 +211,30 @@ /processorParam:TextureFormat=Color /build:Textures/GUI/background/join.png +#begin Textures/GUI/background/mainMenu.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/GUI/background/mainMenu.png + +#begin Textures/GUI/background/options.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/GUI/background/options.png + #begin Textures/GUI/background/selectMode.png /importer:TextureImporter /processor:TextureProcessor @@ -132,7 +259,7 @@ /processorParam:TextureFormat=Color /build:Textures/GUI/background/waiting.png -#begin Textures/GUI/checkboxs_off-on.png +#begin Textures/GUI/checkboxs_off.png /importer:TextureImporter /processor:TextureProcessor /processorParam:ColorKeyColor=255,0,255,255 @@ -216,3 +343,15 @@ /processorParam:TextureFormat=Color /build:Textures/GUI/Switch_backgrownd.png +#begin Textures/TileSetImages/TilesetFloor.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/TileSetImages/TilesetFloor.png + diff --git a/ZoFo/Content/MapData/MapSession.tiled-project b/ZoFo/Content/MapData/MapSession.tiled-project new file mode 100644 index 0000000..d0eb592 --- /dev/null +++ b/ZoFo/Content/MapData/MapSession.tiled-project @@ -0,0 +1,14 @@ +{ + "automappingRulesFile": "", + "commands": [ + ], + "compatibilityVersion": 1100, + "extensionsPath": "extensions", + "folders": [ + "." + ], + "properties": [ + ], + "propertyTypes": [ + ] +} diff --git a/ZoFo/Content/MapData/MapSession.tiled-session b/ZoFo/Content/MapData/MapSession.tiled-session index f0d6bf6..b075b59 100644 --- a/ZoFo/Content/MapData/MapSession.tiled-session +++ b/ZoFo/Content/MapData/MapSession.tiled-session @@ -1,4 +1,14 @@ { + "Map/SizeTest": { + "height": 4300, + "width": 2 + }, + "activeFile": "TileSets/TileSet 1.tsj", + "expandedProjectPaths": [ + "TileMaps", + ".", + "TileSets" + ], "fileStates": { "TileMaps/TileSets/TileSet 1.tsj": { "scaleInDock": 1 diff --git a/ZoFo/Content/MapData/TileMaps/main.tmj b/ZoFo/Content/MapData/TileMaps/main.tmj new file mode 100644 index 0000000..fa928f7 --- /dev/null +++ b/ZoFo/Content/MapData/TileMaps/main.tmj @@ -0,0 +1,1093 @@ +{ "compressionlevel":-1, + "height":20, + "infinite":true, + "layers":[ + { + "chunks":[ + { + "data":[24, 50, 51, 24, 24, 24, 28, 29, 24, 24, 28, 46, 29, 24, 24, 50, + 24, 28, 46, 46, 29, 24, 50, 51, 24, 90, 25, 111, 23, 28, 29, 89, + 29, 50, 2, 2, 51, 24, 24, 28, 29, 28, 10, 3, 23, 25, 23, 89, + 23, 90, 24, 24, 24, 24, 24, 25, 23, 50, 32, 10, 32, 47, 23, 89, + 51, 24, 24, 24, 28, 29, 24, 50, 51, 24, 50, 51, 50, 2, 51, 24, + 28, 46, 29, 24, 50, 51, 24, 24, 24, 24, 28, 46, 46, 46, 29, 89, + 50, 2, 51, 24, 24, 24, 24, 28, 29, 24, 50, 2, 2, 2, 51, 89, + 24, 24, 28, 29, 24, 89, 24, 50, 32, 29, 24, 90, 24, 24, 24, 24, + 24, 89, 25, 23, 24, 90, 24, 24, 50, 51, 24, 24, 24, 24, 24, 24, + 89, 24, 25, 23, 24, 24, 24, 24, 24, 24, 24, 24, 28, 46, 29, 24, + 24, 24, 25, 23, 24, 28, 46, 29, 24, 89, 28, 29, 25, 111, 45, 29, + 24, 24, 50, 51, 89, 50, 3, 45, 29, 24, 50, 51, 50, 2, 3, 45, + 24, 90, 24, 24, 24, 24, 50, 2, 32, 29, 24, 24, 24, 24, 25, 1, + 24, 89, 24, 24, 24, 24, 89, 24, 50, 51, 24, 24, 24, 24, 50, 32, + 29, 90, 90, 24, 24, 89, 24, 24, 24, 24, 24, 24, 28, 29, 24, 50, + 32, 29, 24, 24, 90, 24, 24, 24, 24, 24, 24, 24, 25, 45, 29, 24], + "height":16, + "width":16, + "x":0, + "y":0 + }, + { + "data":[51, 28, 46, 29, 24, 24, 24, 24, 24, 50, 2, 51, 24, 24, 24, 24, + 24, 50, 2, 51, 28, 29, 24, 24, 24, 28, 29, 89, 24, 28, 46, 29, + 89, 24, 90, 24, 50, 32, 29, 24, 28, 10, 51, 24, 24, 25, 1, 51, + 90, 24, 24, 24, 28, 10, 51, 90, 25, 45, 46, 29, 24, 25, 23, 89, + 24, 28, 29, 28, 10, 32, 29, 28, 10, 2, 2, 51, 24, 50, 51, 24, + 24, 50, 32, 10, 51, 50, 51, 25, 45, 46, 29, 24, 24, 90, 24, 24, + 24, 24, 50, 32, 46, 29, 24, 50, 2, 2, 32, 29, 24, 24, 24, 24, + 24, 24, 24, 50, 2, 32, 29, 24, 24, 24, 50, 51, 24, 24, 24, 24, + 24, 24, 24, 24, 24, 25, 23, 90, 24, 89, 24, 28, 29, 24, 24, 28, + 28, 46, 29, 24, 24, 50, 51, 24, 24, 24, 24, 50, 32, 29, 24, 25, + 50, 2, 51, 28, 29, 28, 46, 29, 24, 24, 89, 24, 25, 45, 46, 10, + 29, 24, 24, 50, 32, 10, 2, 51, 24, 24, 24, 24, 50, 2, 2, 51, + 51, 24, 28, 29, 50, 51, 28, 46, 29, 24, 24, 24, 24, 24, 90, 28, + 29, 24, 25, 23, 24, 24, 50, 2, 32, 29, 24, 24, 89, 24, 89, 50, + 51, 24, 50, 51, 24, 24, 24, 24, 50, 32, 29, 89, 90, 24, 24, 24, + 24, 24, 24, 24, 24, 28, 29, 24, 24, 25, 23, 24, 24, 28, 46, 29], + "height":16, + "width":16, + "x":16, + "y":0 + }, + { + "data":[24, 24, 50, 51, 24, 50, 2, 51, 24, 28, 47, 1, 51, 25, 111, 45, + 24, 24, 28, 29, 24, 24, 24, 28, 29, 25, 111, 23, 24, 50, 2, 2, + 28, 46, 10, 51, 28, 29, 24, 25, 23, 50, 2, 51, 24, 24, 28, 29, + 50, 2, 51, 90, 50, 32, 29, 50, 32, 46, 29, 24, 24, 24, 25, 23, + 89, 24, 24, 24, 90, 50, 51, 24, 25, 114, 23, 24, 90, 24, 25, 23, + 24, 28, 29, 24, 24, 28, 29, 89, 50, 2, 51, 24, 24, 24, 25, 23, + 24, 50, 51, 28, 46, 10, 51, 24, 24, 24, 90, 24, 24, 24, 50, 32, + 24, 24, 90, 50, 2, 32, 29, 28, 46, 29, 28, 46, 29, 24, 90, 50, + 46, 29, 24, 90, 24, 25, 45, 47, 1, 51, 50, 2, 32, 46, 29, 89, + 115, 45, 29, 24, 24, 50, 2, 2, 32, 29, 24, 24, 50, 3, 23, 24, + 2, 2, 51, 24, 24, 24, 24, 24, 50, 32, 46, 29, 24, 50, 51, 24, + 89, 24, 28, 29, 89, 24, 24, 24, 24, 25, 111, 23, 24, 28, 29, 24, + 46, 29, 25, 23, 89, 28, 46, 29, 24, 25, 115, 23, 24, 25, 23, 24, + 2, 32, 47, 45, 46, 10, 2, 32, 46, 10, 2, 51, 24, 25, 23, 89, + 24, 50, 2, 3, 1, 32, 46, 10, 2, 51, 89, 24, 89, 50, 51, 24, + 90, 28, 46, 47, 23, 50, 3, 23, 24, 24, 90, 24, 28, 46, 46, 29], + "height":16, + "width":16, + "x":32, + "y":0 + }, + { + "data":[47, 23, 24, 28, 29, 24, 24, 28, 29, 50, 51, 24, 50, 32, 46, 46, + 3, 23, 28, 47, 23, 24, 89, 50, 32, 29, 24, 24, 24, 25, 115, 1, + 50, 32, 10, 2, 51, 24, 89, 24, 25, 23, 24, 90, 24, 25, 1, 32, + 24, 25, 45, 46, 46, 29, 28, 29, 25, 23, 24, 90, 24, 50, 51, 50, + 24, 25, 115, 111, 1, 32, 10, 51, 25, 23, 28, 46, 46, 46, 29, 24, + 28, 10, 2, 2, 51, 50, 51, 24, 25, 23, 25, 1, 2, 2, 32, 46, + 47, 45, 46, 29, 24, 24, 24, 28, 10, 51, 50, 32, 46, 46, 10, 3, + 2, 3, 111, 23, 24, 24, 24, 25, 23, 24, 89, 50, 2, 2, 51, 50, + 90, 25, 1, 32, 29, 90, 24, 25, 45, 29, 24, 89, 90, 28, 29, 24, + 24, 25, 23, 50, 51, 24, 24, 50, 3, 23, 24, 24, 24, 25, 23, 24, + 24, 25, 45, 29, 24, 24, 24, 24, 25, 23, 28, 46, 29, 50, 51, 24, + 28, 10, 3, 23, 24, 24, 89, 24, 25, 23, 25, 111, 45, 29, 24, 24, + 25, 23, 50, 51, 24, 24, 24, 24, 50, 32, 10, 2, 2, 32, 29, 28, + 50, 51, 28, 46, 46, 29, 24, 24, 24, 25, 23, 24, 24, 50, 51, 25, + 24, 24, 50, 3, 113, 23, 24, 24, 24, 50, 51, 24, 24, 24, 24, 50, + 24, 24, 90, 50, 2, 51, 24, 24, 24, 24, 90, 24, 90, 24, 24, 24], + "height":16, + "width":16, + "x":48, + "y":0 + }, + { + "data":[10, 51, 24, 50, 2, 51, 24, 50, 51, 24, 24, 24, 89, 24, 90, 24, + 51, 90, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 28, 46, 46, + 29, 24, 89, 24, 24, 28, 29, 24, 24, 28, 29, 24, 28, 10, 3, 1, + 51, 24, 24, 89, 24, 50, 51, 28, 46, 10, 51, 24, 25, 45, 10, 32, + 24, 24, 24, 24, 24, 24, 24, 25, 1, 51, 24, 24, 50, 2, 32, 10, + 46, 29, 90, 24, 24, 24, 90, 50, 51, 24, 24, 24, 24, 24, 50, 51, + 114, 23, 24, 24, 24, 24, 90, 24, 28, 29, 28, 29, 24, 24, 28, 29, + 2, 51, 24, 24, 24, 24, 24, 24, 25, 23, 25, 23, 24, 24, 25, 23, + 90, 24, 24, 28, 29, 24, 24, 24, 50, 51, 25, 23, 24, 24, 50, 32, + 24, 24, 89, 25, 23, 24, 24, 24, 24, 24, 50, 32, 46, 46, 29, 25, + 24, 28, 46, 10, 32, 29, 24, 24, 24, 28, 29, 50, 2, 3, 23, 25, + 24, 50, 2, 51, 25, 45, 29, 89, 24, 50, 51, 24, 24, 50, 51, 50, + 46, 29, 24, 24, 50, 3, 23, 24, 24, 24, 24, 24, 90, 90, 89, 24, + 1, 32, 29, 89, 28, 10, 51, 24, 24, 28, 46, 29, 90, 24, 24, 90, + 32, 10, 51, 90, 50, 32, 46, 46, 29, 50, 2, 32, 46, 46, 46, 29, + 50, 51, 28, 46, 29, 25, 1, 3, 23, 24, 24, 25, 1, 2, 2, 32], + "height":16, + "width":16, + "x":64, + "y":0 + }, + { + "data":[50, 51, 24, 25, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 28, 46, + 46, 29, 24, 50, 51, 89, 24, 28, 29, 24, 90, 24, 24, 24, 50, 2, + 2, 51, 89, 28, 46, 29, 24, 50, 51, 24, 24, 24, 90, 24, 24, 28, + 29, 24, 24, 50, 3, 23, 24, 24, 24, 24, 24, 90, 24, 24, 24, 50, + 51, 28, 46, 46, 10, 32, 46, 29, 24, 24, 24, 24, 24, 24, 24, 24, + 24, 50, 2, 3, 23, 50, 2, 51, 24, 24, 24, 24, 24, 90, 28, 29, + 24, 24, 24, 25, 23, 24, 24, 24, 24, 24, 24, 89, 90, 24, 25, 23, + 24, 24, 24, 50, 51, 24, 28, 46, 29, 24, 24, 28, 29, 28, 10, 51, + 29, 24, 24, 24, 28, 29, 25, 111, 23, 90, 24, 50, 51, 25, 23, 24, + 23, 90, 89, 24, 50, 32, 10, 2, 32, 29, 24, 90, 89, 25, 45, 46, + 23, 24, 24, 24, 24, 25, 23, 24, 25, 23, 24, 24, 24, 25, 111, 1, + 51, 24, 24, 24, 24, 50, 51, 89, 50, 32, 29, 28, 46, 10, 2, 51, + 24, 24, 24, 24, 24, 24, 24, 24, 24, 50, 32, 10, 2, 32, 29, 90, + 24, 24, 24, 24, 24, 28, 29, 89, 28, 29, 50, 32, 29, 25, 23, 24, + 24, 28, 29, 24, 24, 50, 51, 24, 25, 45, 29, 50, 32, 47, 23, 24, + 29, 25, 45, 29, 24, 90, 24, 90, 50, 3, 23, 24, 50, 2, 32, 46], + "height":16, + "width":16, + "x":80, + "y":0 + }, + { + "data":[29, 24, 28, 29, 28, 10, 32, 47, 23, 24, 90, 24, 24, 24, 24, 28, + 51, 24, 50, 51, 25, 23, 25, 115, 23, 24, 28, 29, 24, 24, 24, 50, + 29, 24, 24, 24, 50, 51, 50, 2, 51, 24, 25, 23, 90, 24, 28, 29, + 51, 24, 28, 29, 28, 29, 24, 24, 24, 24, 50, 32, 29, 28, 10, 32, + 24, 24, 50, 32, 10, 51, 90, 24, 24, 24, 24, 25, 45, 10, 51, 25, + 24, 28, 29, 25, 23, 24, 24, 28, 29, 24, 24, 50, 3, 23, 24, 50, + 24, 50, 32, 10, 32, 29, 24, 50, 51, 24, 24, 90, 50, 51, 90, 24, + 24, 90, 25, 23, 25, 23, 28, 29, 24, 24, 89, 24, 24, 90, 24, 24, + 24, 24, 50, 32, 10, 51, 50, 51, 24, 24, 24, 90, 24, 24, 24, 24, + 46, 46, 46, 47, 23, 24, 24, 24, 24, 90, 90, 24, 28, 29, 24, 24, + 2, 2, 3, 1, 51, 24, 89, 24, 28, 46, 29, 24, 50, 32, 29, 24, + 24, 89, 25, 23, 24, 24, 24, 89, 50, 2, 51, 24, 90, 50, 32, 46, + 24, 90, 50, 51, 28, 46, 29, 24, 24, 24, 89, 89, 24, 28, 10, 2, + 24, 24, 89, 28, 47, 1, 51, 24, 24, 24, 28, 29, 24, 25, 23, 90, + 24, 89, 24, 50, 2, 32, 46, 29, 24, 24, 25, 23, 24, 25, 45, 46, + 29, 28, 46, 29, 90, 25, 111, 23, 24, 24, 25, 23, 24, 50, 3, 1], + "height":16, + "width":16, + "x":96, + "y":0 + }, + { + "data":[46, 46, 46, 29, 24, 28, 47, 23, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 51, 24, 25, 111, 23, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 24, 24, 89, 24, 25, 111, 45, 0, 0, 0, 0, 0, 0, 0, 0, + 29, 24, 24, 24, 28, 10, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 23, 24, 28, 46, 10, 51, 24, 50, 0, 0, 0, 0, 0, 0, 0, 0, + 51, 24, 50, 2, 32, 29, 24, 24, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 28, 46, 46, 47, 45, 46, 29, 0, 0, 0, 0, 0, 0, 0, 0, + 90, 50, 3, 1, 2, 2, 2, 51, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 89, 25, 23, 24, 24, 90, 24, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 24, 25, 23, 90, 24, 28, 46, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 24, 25, 23, 24, 24, 25, 1, 0, 0, 0, 0, 0, 0, 0, 0, + 29, 24, 25, 45, 46, 46, 47, 45, 0, 0, 0, 0, 0, 0, 0, 0, + 32, 29, 50, 2, 3, 115, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 25, 45, 29, 28, 10, 2, 32, 29, 0, 0, 0, 0, 0, 0, 0, 0, + 10, 2, 32, 10, 51, 24, 25, 23, 0, 0, 0, 0, 0, 0, 0, 0, + 51, 24, 25, 23, 24, 24, 25, 23, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":112, + "y":0 + }, + { + "data":[50, 51, 24, 24, 24, 24, 28, 46, 29, 24, 89, 28, 10, 2, 51, 28, + 24, 24, 28, 29, 28, 29, 25, 111, 23, 90, 24, 25, 23, 24, 24, 25, + 46, 46, 10, 51, 25, 23, 25, 115, 23, 90, 89, 50, 51, 24, 28, 47, + 2, 2, 51, 24, 25, 23, 25, 111, 23, 24, 24, 24, 24, 24, 50, 2, + 24, 24, 24, 24, 25, 23, 25, 111, 23, 89, 24, 28, 46, 29, 24, 90, + 24, 24, 24, 24, 50, 51, 25, 114, 23, 24, 89, 50, 2, 51, 28, 29, + 24, 24, 24, 28, 46, 46, 10, 3, 23, 24, 24, 24, 24, 24, 50, 32, + 29, 28, 29, 25, 1, 2, 51, 50, 51, 24, 90, 89, 28, 29, 24, 25, + 51, 50, 51, 25, 23, 90, 24, 24, 89, 24, 24, 24, 25, 23, 24, 50, + 29, 24, 24, 50, 32, 29, 24, 24, 24, 89, 24, 24, 25, 23, 24, 24, + 51, 24, 24, 24, 25, 23, 28, 29, 24, 90, 24, 24, 25, 23, 24, 24, + 28, 29, 24, 90, 50, 51, 50, 51, 28, 46, 46, 46, 10, 32, 46, 46, + 10, 51, 24, 24, 24, 24, 24, 24, 25, 114, 111, 115, 23, 50, 2, 2, + 23, 24, 24, 24, 24, 24, 24, 24, 50, 2, 2, 2, 51, 24, 24, 89, + 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 28, 46, 46, 29, 24, 24, + 32, 29, 24, 90, 24, 28, 29, 24, 24, 90, 25, 111, 113, 23, 90, 28], + "height":16, + "width":16, + "x":0, + "y":16 + }, + { + "data":[29, 24, 24, 24, 24, 50, 51, 24, 24, 25, 45, 29, 24, 50, 2, 32, + 23, 24, 28, 46, 46, 46, 46, 29, 28, 47, 1, 51, 90, 24, 24, 50, + 23, 89, 50, 2, 3, 115, 1, 51, 50, 2, 51, 89, 24, 24, 24, 28, + 51, 28, 29, 24, 50, 2, 51, 24, 28, 29, 90, 24, 28, 29, 28, 47, + 24, 50, 51, 24, 24, 24, 24, 24, 25, 45, 46, 46, 10, 32, 10, 3, + 24, 24, 24, 24, 24, 24, 24, 24, 50, 3, 111, 1, 32, 10, 51, 25, + 29, 24, 24, 28, 29, 24, 24, 28, 29, 50, 2, 51, 25, 45, 29, 25, + 45, 46, 29, 50, 32, 29, 24, 25, 23, 24, 24, 28, 10, 2, 32, 10, + 2, 2, 51, 89, 25, 23, 24, 50, 32, 46, 46, 10, 32, 29, 50, 51, + 89, 24, 24, 90, 50, 32, 46, 29, 50, 2, 3, 23, 50, 32, 29, 24, + 24, 24, 28, 46, 46, 10, 2, 51, 90, 90, 50, 51, 24, 50, 51, 89, + 29, 24, 50, 3, 1, 51, 24, 24, 24, 24, 28, 29, 89, 90, 89, 24, + 51, 24, 24, 25, 45, 29, 24, 24, 89, 24, 50, 51, 24, 90, 89, 28, + 89, 24, 24, 50, 2, 32, 29, 24, 90, 89, 24, 24, 24, 24, 24, 50, + 24, 24, 24, 24, 24, 25, 45, 46, 46, 46, 29, 24, 24, 24, 24, 24, + 29, 24, 89, 24, 24, 25, 1, 2, 3, 1, 51, 24, 24, 24, 24, 24], + "height":16, + "width":16, + "x":16, + "y":16 + }, + { + "data":[46, 47, 115, 115, 23, 24, 25, 23, 24, 24, 24, 24, 50, 2, 3, 23, + 2, 2, 3, 114, 23, 24, 25, 23, 24, 24, 24, 28, 29, 24, 50, 51, + 29, 24, 50, 3, 23, 24, 50, 51, 89, 89, 24, 50, 51, 89, 24, 24, + 23, 24, 24, 50, 32, 46, 29, 24, 24, 24, 90, 24, 24, 24, 24, 24, + 23, 24, 24, 24, 50, 2, 32, 46, 29, 28, 46, 46, 29, 24, 24, 24, + 23, 24, 28, 46, 46, 29, 25, 1, 32, 10, 2, 2, 32, 46, 29, 24, + 45, 46, 10, 2, 2, 51, 25, 23, 25, 23, 24, 24, 50, 2, 32, 29, + 2, 2, 32, 46, 29, 89, 50, 32, 47, 23, 24, 28, 46, 29, 50, 51, + 24, 24, 25, 1, 51, 24, 89, 50, 3, 23, 28, 10, 3, 23, 24, 89, + 24, 24, 50, 51, 24, 24, 24, 24, 50, 51, 50, 51, 50, 32, 46, 46, + 24, 24, 24, 24, 90, 89, 24, 28, 29, 24, 24, 24, 28, 10, 3, 115, + 24, 89, 28, 29, 24, 24, 24, 50, 51, 89, 24, 24, 50, 51, 25, 1, + 46, 46, 10, 51, 90, 89, 89, 24, 24, 90, 24, 24, 24, 24, 25, 23, + 2, 2, 51, 24, 24, 90, 24, 24, 24, 24, 24, 24, 24, 24, 50, 32, + 89, 24, 24, 24, 28, 29, 24, 24, 24, 24, 24, 24, 24, 24, 24, 50, + 24, 89, 24, 24, 50, 51, 89, 24, 24, 24, 24, 90, 24, 24, 24, 28], + "height":16, + "width":16, + "x":32, + "y":16 + }, + { + "data":[24, 24, 90, 89, 24, 24, 28, 29, 24, 90, 24, 24, 24, 89, 24, 24, + 24, 24, 28, 29, 24, 24, 50, 32, 29, 24, 24, 24, 24, 24, 24, 24, + 24, 89, 50, 51, 28, 29, 24, 25, 23, 89, 24, 24, 24, 24, 89, 24, + 90, 24, 24, 24, 25, 23, 24, 50, 51, 24, 24, 28, 46, 29, 89, 24, + 24, 24, 24, 24, 50, 51, 89, 24, 90, 24, 24, 25, 1, 32, 29, 89, + 28, 46, 46, 46, 46, 29, 89, 24, 24, 24, 24, 25, 45, 47, 23, 24, + 50, 2, 2, 2, 2, 32, 29, 24, 24, 24, 90, 50, 2, 2, 51, 24, + 24, 24, 24, 24, 24, 50, 32, 46, 29, 24, 24, 24, 90, 90, 24, 24, + 24, 28, 29, 24, 24, 24, 50, 2, 51, 24, 24, 28, 46, 46, 29, 24, + 29, 50, 51, 90, 24, 24, 24, 24, 24, 28, 29, 50, 3, 114, 23, 24, + 23, 24, 24, 90, 24, 90, 28, 29, 24, 25, 23, 24, 25, 115, 45, 46, + 51, 24, 28, 29, 24, 24, 50, 51, 89, 25, 23, 24, 25, 111, 115, 114, + 24, 24, 50, 32, 46, 29, 90, 24, 24, 50, 51, 24, 25, 111, 1, 2, + 29, 24, 24, 50, 2, 32, 29, 24, 24, 90, 24, 24, 25, 1, 51, 90, + 51, 24, 24, 24, 24, 25, 23, 24, 24, 24, 24, 24, 50, 51, 24, 89, + 29, 90, 24, 24, 28, 10, 32, 29, 90, 90, 90, 24, 24, 24, 89, 24], + "height":16, + "width":16, + "x":48, + "y":16 + }, + { + "data":[90, 24, 50, 3, 23, 50, 32, 10, 51, 24, 24, 25, 45, 29, 24, 50, + 28, 29, 24, 50, 51, 28, 10, 51, 90, 24, 24, 50, 2, 32, 29, 24, + 50, 51, 24, 90, 28, 47, 45, 46, 29, 24, 24, 28, 29, 50, 32, 29, + 28, 29, 89, 24, 50, 2, 2, 3, 23, 24, 24, 25, 23, 24, 50, 51, + 25, 23, 24, 28, 29, 24, 89, 50, 51, 24, 24, 50, 51, 89, 24, 24, + 25, 23, 24, 50, 51, 28, 29, 90, 24, 24, 90, 24, 24, 24, 24, 24, + 25, 45, 29, 24, 24, 50, 51, 24, 90, 24, 24, 24, 89, 24, 24, 24, + 50, 2, 32, 29, 24, 24, 24, 89, 90, 89, 24, 24, 28, 29, 24, 28, + 24, 89, 25, 45, 46, 46, 29, 24, 24, 24, 24, 24, 25, 23, 24, 25, + 24, 24, 50, 2, 2, 2, 51, 24, 24, 24, 24, 89, 25, 23, 24, 50, + 29, 24, 24, 24, 24, 89, 24, 90, 24, 28, 29, 24, 25, 23, 24, 24, + 45, 29, 28, 46, 46, 46, 29, 24, 89, 25, 45, 46, 10, 32, 29, 24, + 2, 32, 10, 3, 114, 115, 45, 29, 24, 50, 2, 2, 51, 50, 51, 24, + 24, 50, 32, 10, 3, 114, 1, 32, 29, 24, 24, 89, 24, 90, 24, 24, + 24, 24, 50, 32, 10, 2, 51, 50, 32, 29, 24, 24, 24, 24, 28, 29, + 24, 89, 24, 50, 32, 29, 24, 28, 47, 23, 24, 28, 29, 24, 50, 51], + "height":16, + "width":16, + "x":64, + "y":16 + }, + { + "data":[51, 50, 2, 51, 24, 24, 24, 24, 24, 25, 23, 24, 24, 24, 50, 2, + 24, 24, 28, 29, 24, 24, 24, 90, 28, 47, 23, 89, 24, 24, 90, 28, + 24, 28, 10, 51, 24, 24, 24, 24, 25, 114, 23, 24, 24, 24, 24, 25, + 24, 50, 51, 24, 24, 24, 89, 24, 25, 114, 45, 29, 24, 89, 24, 50, + 24, 24, 24, 24, 89, 24, 24, 24, 25, 114, 115, 23, 24, 24, 24, 24, + 28, 29, 90, 24, 89, 24, 24, 28, 47, 114, 111, 23, 24, 24, 24, 24, + 50, 51, 24, 24, 24, 24, 24, 50, 2, 2, 2, 51, 28, 29, 90, 28, + 29, 24, 89, 90, 28, 46, 29, 28, 29, 24, 24, 24, 50, 51, 24, 50, + 45, 46, 29, 24, 50, 2, 51, 50, 32, 29, 24, 24, 90, 24, 24, 24, + 2, 2, 32, 29, 24, 24, 24, 24, 25, 23, 24, 90, 24, 24, 24, 90, + 90, 24, 25, 23, 89, 24, 89, 24, 50, 51, 90, 24, 24, 24, 24, 24, + 24, 24, 50, 51, 24, 24, 90, 24, 28, 29, 24, 24, 24, 24, 24, 24, + 24, 90, 89, 90, 24, 24, 90, 24, 50, 51, 90, 90, 24, 24, 24, 24, + 24, 24, 24, 89, 90, 90, 24, 24, 24, 28, 46, 46, 46, 46, 46, 29, + 24, 24, 24, 24, 24, 28, 46, 29, 24, 50, 2, 2, 2, 2, 2, 51, + 24, 90, 24, 28, 29, 50, 3, 23, 24, 89, 90, 28, 29, 24, 24, 24], + "height":16, + "width":16, + "x":80, + "y":16 + }, + { + "data":[51, 50, 3, 23, 24, 50, 2, 51, 24, 28, 47, 23, 24, 24, 25, 23, + 29, 24, 25, 23, 24, 89, 90, 90, 89, 25, 115, 23, 24, 24, 50, 51, + 23, 24, 25, 23, 90, 24, 24, 28, 29, 50, 2, 32, 29, 89, 24, 24, + 51, 24, 50, 51, 24, 24, 24, 25, 45, 29, 90, 50, 51, 24, 24, 24, + 24, 24, 89, 24, 24, 28, 46, 10, 2, 32, 29, 24, 24, 89, 28, 46, + 24, 24, 24, 28, 29, 25, 115, 45, 46, 10, 51, 24, 24, 24, 50, 2, + 29, 24, 24, 25, 23, 50, 2, 2, 2, 32, 46, 29, 28, 29, 24, 24, + 32, 29, 24, 50, 51, 90, 90, 24, 24, 25, 1, 32, 47, 23, 24, 24, + 50, 51, 24, 24, 24, 24, 89, 24, 24, 50, 32, 10, 3, 23, 89, 24, + 24, 24, 24, 90, 24, 24, 24, 28, 46, 46, 10, 51, 25, 45, 29, 90, + 28, 29, 28, 29, 24, 24, 24, 50, 3, 114, 45, 46, 10, 2, 32, 46, + 50, 51, 50, 51, 24, 90, 24, 24, 25, 111, 111, 112, 45, 46, 10, 2, + 24, 24, 90, 24, 28, 46, 46, 29, 50, 2, 2, 2, 3, 1, 51, 24, + 24, 24, 24, 28, 10, 2, 2, 32, 29, 90, 24, 24, 25, 23, 24, 24, + 24, 28, 29, 50, 32, 46, 29, 50, 51, 24, 90, 24, 50, 51, 28, 29, + 28, 10, 51, 24, 25, 1, 32, 29, 24, 24, 90, 24, 24, 24, 50, 51], + "height":16, + "width":16, + "x":96, + "y":16 + }, + { + "data":[24, 89, 25, 23, 24, 28, 47, 23, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 24, 50, 32, 29, 50, 2, 32, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 28, 29, 50, 51, 24, 24, 50, 0, 0, 0, 0, 0, 0, 0, 0, + 28, 10, 51, 24, 24, 24, 24, 24, 0, 0, 0, 0, 0, 0, 0, 0, + 10, 51, 24, 90, 24, 24, 24, 24, 0, 0, 0, 0, 0, 0, 0, 0, + 51, 24, 24, 24, 28, 46, 46, 29, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 24, 24, 28, 47, 1, 2, 51, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 24, 24, 50, 2, 51, 24, 24, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 24, 24, 24, 24, 24, 24, 28, 0, 0, 0, 0, 0, 0, 0, 0, + 28, 29, 28, 29, 28, 29, 24, 50, 0, 0, 0, 0, 0, 0, 0, 0, + 10, 32, 10, 51, 25, 23, 28, 29, 0, 0, 0, 0, 0, 0, 0, 0, + 32, 10, 51, 24, 25, 23, 25, 23, 0, 0, 0, 0, 0, 0, 0, 0, + 25, 45, 29, 24, 25, 23, 25, 23, 0, 0, 0, 0, 0, 0, 0, 0, + 50, 2, 51, 24, 25, 23, 25, 23, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 89, 24, 24, 50, 51, 50, 51, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 24, 24, 24, 89, 24, 89, 24, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":112, + "y":16 + }, + + { + "data":[10, 32, 29, 28, 46, 10, 32, 29, 24, 24, 25, 111, 1, 51, 24, 25, + 23, 25, 23, 50, 2, 51, 50, 32, 46, 29, 50, 3, 23, 24, 24, 25, + 32, 10, 32, 29, 24, 24, 24, 50, 3, 23, 28, 10, 32, 29, 24, 50, + 10, 51, 50, 51, 24, 28, 46, 29, 25, 23, 25, 23, 50, 51, 24, 24, + 51, 24, 24, 24, 89, 25, 111, 23, 25, 23, 50, 32, 29, 24, 24, 24, + 24, 90, 24, 24, 24, 25, 111, 23, 50, 32, 46, 10, 51, 90, 89, 24, + 24, 24, 28, 29, 24, 50, 2, 51, 24, 50, 2, 32, 29, 24, 24, 28, + 24, 24, 50, 51, 24, 89, 89, 24, 24, 24, 24, 25, 23, 89, 28, 10, + 24, 28, 29, 24, 24, 90, 24, 24, 90, 28, 29, 50, 32, 29, 25, 23, + 24, 25, 23, 24, 89, 90, 24, 24, 24, 50, 51, 28, 10, 51, 50, 51, + 24, 50, 32, 46, 29, 90, 28, 29, 24, 24, 24, 25, 23, 24, 24, 90, + 24, 90, 50, 2, 32, 29, 50, 32, 29, 24, 24, 50, 51, 28, 46, 29, + 24, 24, 28, 46, 10, 51, 24, 25, 23, 24, 24, 24, 24, 50, 2, 51, + 24, 24, 25, 1, 51, 24, 89, 50, 32, 29, 24, 24, 24, 24, 24, 90, + 46, 46, 47, 23, 89, 24, 24, 90, 50, 51, 24, 24, 24, 89, 24, 24, + 115, 111, 1, 51, 24, 24, 24, 90, 24, 28, 29, 24, 90, 24, 24, 24], + "height":16, + "width":16, + "x":0, + "y":32 + }, + { + "data":[23, 24, 90, 28, 46, 10, 51, 24, 25, 23, 24, 24, 24, 28, 46, 46, + 23, 24, 24, 25, 115, 23, 24, 90, 25, 23, 28, 46, 46, 10, 2, 2, + 51, 24, 89, 50, 2, 51, 24, 89, 50, 32, 10, 2, 2, 32, 29, 24, + 28, 46, 29, 24, 24, 24, 24, 24, 24, 50, 51, 24, 28, 10, 32, 46, + 25, 1, 51, 24, 24, 24, 89, 24, 24, 24, 24, 24, 25, 23, 25, 114, + 50, 32, 29, 28, 46, 46, 29, 24, 24, 24, 24, 24, 50, 32, 10, 2, + 46, 47, 23, 25, 1, 2, 51, 24, 24, 24, 28, 29, 24, 25, 45, 46, + 2, 2, 51, 50, 51, 24, 24, 24, 24, 24, 50, 51, 28, 10, 2, 2, + 24, 24, 24, 24, 24, 24, 24, 90, 24, 24, 28, 46, 10, 51, 24, 24, + 89, 24, 24, 24, 28, 46, 29, 24, 24, 24, 50, 2, 51, 24, 28, 29, + 90, 24, 24, 90, 25, 1, 51, 24, 24, 89, 28, 29, 90, 24, 25, 23, + 89, 28, 29, 24, 25, 23, 24, 24, 24, 28, 10, 32, 29, 24, 25, 23, + 24, 25, 23, 24, 25, 23, 24, 90, 24, 50, 32, 47, 23, 24, 50, 32, + 24, 50, 32, 46, 47, 23, 24, 24, 90, 24, 25, 1, 51, 24, 28, 10, + 24, 28, 10, 2, 3, 23, 90, 28, 29, 24, 50, 51, 28, 46, 10, 51, + 24, 50, 51, 24, 50, 32, 29, 50, 51, 28, 29, 24, 25, 114, 23, 89], + "height":16, + "width":16, + "x":16, + "y":32 + }, + { + "data":[46, 29, 24, 24, 89, 90, 24, 24, 24, 28, 29, 89, 24, 24, 24, 50, + 2, 32, 46, 29, 24, 24, 24, 24, 24, 50, 32, 29, 24, 89, 24, 24, + 24, 50, 2, 51, 24, 24, 24, 89, 24, 90, 25, 23, 24, 90, 24, 24, + 29, 24, 24, 24, 24, 24, 24, 90, 24, 24, 25, 23, 90, 24, 89, 24, + 23, 24, 24, 24, 24, 89, 89, 24, 24, 24, 50, 32, 29, 24, 24, 24, + 32, 29, 24, 90, 24, 24, 89, 24, 28, 29, 89, 50, 32, 29, 24, 24, + 47, 23, 89, 24, 24, 24, 24, 24, 50, 32, 46, 29, 50, 32, 29, 24, + 2, 51, 24, 89, 24, 24, 24, 24, 24, 25, 1, 51, 24, 25, 23, 24, + 89, 24, 24, 24, 24, 90, 24, 28, 46, 10, 51, 24, 24, 25, 23, 24, + 24, 24, 28, 29, 24, 24, 24, 50, 2, 51, 24, 24, 24, 50, 51, 89, + 24, 24, 25, 23, 24, 89, 24, 24, 24, 89, 89, 24, 24, 24, 24, 24, + 90, 28, 47, 23, 89, 24, 24, 24, 28, 46, 29, 89, 24, 24, 24, 89, + 29, 50, 2, 51, 24, 24, 24, 24, 50, 2, 51, 24, 24, 24, 24, 24, + 32, 46, 29, 24, 28, 29, 24, 24, 28, 29, 24, 24, 24, 24, 89, 24, + 50, 2, 51, 89, 25, 45, 46, 46, 10, 51, 24, 24, 24, 24, 24, 28, + 24, 24, 24, 24, 50, 2, 3, 1, 51, 90, 24, 90, 24, 89, 28, 10], + "height":16, + "width":16, + "x":32, + "y":32 + }, + { + "data":[32, 29, 24, 24, 25, 23, 50, 51, 24, 89, 24, 24, 28, 46, 29, 24, + 50, 51, 24, 24, 50, 51, 90, 24, 24, 24, 24, 24, 50, 2, 32, 29, + 24, 24, 24, 24, 24, 89, 24, 24, 89, 24, 24, 24, 24, 24, 50, 51, + 24, 24, 24, 28, 29, 28, 29, 90, 24, 24, 24, 24, 90, 24, 89, 24, + 24, 28, 29, 50, 32, 10, 32, 46, 29, 24, 24, 89, 24, 24, 24, 24, + 24, 50, 51, 24, 50, 51, 50, 2, 51, 89, 24, 24, 24, 24, 24, 24, + 28, 29, 24, 89, 24, 24, 24, 24, 24, 24, 24, 24, 24, 89, 24, 24, + 50, 32, 46, 46, 46, 29, 28, 29, 24, 24, 24, 24, 28, 29, 24, 28, + 24, 50, 2, 2, 2, 51, 50, 51, 24, 24, 28, 46, 10, 51, 24, 50, + 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 25, 114, 23, 89, 90, 89, + 24, 24, 24, 24, 28, 46, 29, 24, 24, 24, 25, 1, 51, 28, 29, 24, + 24, 24, 28, 29, 25, 111, 23, 24, 24, 90, 50, 51, 24, 25, 23, 24, + 24, 89, 25, 23, 25, 111, 23, 24, 24, 24, 28, 29, 89, 25, 23, 24, + 24, 90, 50, 51, 50, 3, 45, 29, 24, 89, 50, 32, 29, 25, 23, 28, + 29, 24, 90, 24, 24, 50, 3, 45, 29, 24, 90, 50, 51, 50, 51, 50, + 32, 29, 24, 24, 28, 46, 10, 3, 23, 24, 24, 24, 24, 24, 24, 24], + "height":16, + "width":16, + "x":48, + "y":32 + }, + { + "data":[24, 24, 90, 24, 50, 51, 24, 50, 2, 32, 29, 50, 51, 24, 28, 46, + 24, 24, 24, 28, 46, 29, 90, 89, 24, 50, 32, 29, 24, 24, 25, 1, + 24, 24, 89, 50, 3, 23, 24, 24, 24, 24, 25, 23, 28, 29, 50, 51, + 24, 28, 46, 29, 50, 51, 24, 24, 24, 24, 50, 51, 25, 23, 24, 24, + 28, 10, 2, 32, 29, 24, 24, 90, 24, 24, 24, 24, 25, 23, 28, 29, + 25, 23, 90, 50, 51, 90, 24, 24, 24, 89, 28, 46, 47, 23, 50, 32, + 25, 23, 24, 24, 24, 24, 24, 24, 24, 24, 25, 111, 114, 45, 29, 25, + 10, 51, 24, 90, 24, 24, 24, 28, 46, 29, 50, 3, 1, 2, 51, 50, + 51, 24, 24, 24, 90, 24, 24, 50, 3, 23, 24, 50, 51, 24, 24, 24, + 89, 24, 24, 24, 24, 28, 29, 24, 50, 51, 28, 29, 24, 24, 24, 24, + 24, 24, 24, 28, 29, 50, 51, 24, 24, 24, 50, 32, 29, 24, 24, 24, + 90, 24, 24, 50, 51, 24, 24, 24, 24, 90, 24, 25, 23, 24, 24, 24, + 24, 24, 89, 24, 89, 24, 24, 24, 24, 24, 28, 10, 51, 24, 28, 29, + 29, 24, 24, 24, 24, 24, 28, 29, 24, 24, 25, 45, 46, 29, 50, 32, + 32, 29, 24, 28, 46, 29, 50, 51, 28, 29, 50, 2, 2, 51, 24, 25, + 50, 32, 29, 25, 1, 32, 29, 24, 25, 23, 28, 29, 28, 29, 24, 50], + "height":16, + "width":16, + "x":64, + "y":32 + }, + { + "data":[29, 24, 89, 25, 45, 29, 25, 23, 24, 24, 24, 25, 23, 24, 24, 24, + 32, 29, 24, 25, 111, 23, 50, 51, 89, 24, 89, 50, 51, 24, 28, 29, + 50, 32, 46, 10, 2, 51, 89, 90, 24, 24, 24, 24, 24, 24, 50, 51, + 90, 50, 2, 51, 24, 24, 24, 24, 24, 24, 24, 89, 24, 28, 46, 46, + 24, 24, 24, 24, 89, 24, 24, 90, 24, 28, 29, 28, 29, 25, 111, 115, + 29, 24, 90, 24, 24, 24, 90, 89, 24, 50, 32, 10, 51, 25, 1, 2, + 23, 24, 24, 24, 24, 24, 24, 24, 24, 28, 10, 32, 46, 10, 51, 24, + 51, 24, 28, 29, 89, 24, 24, 24, 90, 25, 23, 50, 2, 51, 24, 24, + 24, 24, 50, 32, 29, 24, 24, 24, 24, 25, 45, 29, 28, 29, 90, 24, + 24, 24, 24, 25, 23, 24, 28, 46, 46, 47, 1, 51, 50, 51, 24, 89, + 24, 24, 89, 25, 45, 29, 25, 115, 115, 115, 23, 28, 46, 29, 24, 24, + 24, 24, 24, 25, 1, 51, 50, 2, 2, 2, 32, 10, 2, 32, 46, 46, + 28, 46, 29, 25, 23, 24, 28, 46, 29, 24, 25, 45, 29, 50, 2, 3, + 10, 2, 51, 50, 51, 24, 50, 2, 32, 46, 47, 111, 23, 24, 89, 25, + 23, 24, 89, 24, 24, 24, 24, 24, 50, 2, 3, 114, 23, 24, 89, 25, + 51, 24, 24, 24, 28, 29, 24, 28, 29, 24, 50, 2, 51, 24, 90, 50], + "height":16, + "width":16, + "x":80, + "y":32 + }, + { + "data":[25, 23, 24, 24, 50, 51, 50, 51, 24, 24, 24, 89, 24, 24, 24, 24, + 25, 45, 29, 24, 24, 24, 24, 24, 89, 24, 24, 24, 24, 24, 24, 24, + 50, 3, 23, 24, 24, 24, 28, 29, 28, 46, 29, 90, 24, 24, 24, 24, + 29, 25, 23, 24, 24, 24, 50, 51, 50, 2, 51, 24, 24, 24, 24, 90, + 23, 50, 32, 46, 29, 24, 24, 28, 29, 24, 24, 24, 24, 24, 24, 24, + 51, 24, 50, 3, 23, 24, 24, 25, 23, 28, 29, 24, 24, 24, 24, 89, + 28, 29, 28, 10, 51, 24, 24, 50, 51, 50, 51, 24, 24, 24, 24, 24, + 50, 32, 47, 45, 29, 24, 24, 24, 24, 28, 29, 24, 28, 29, 89, 24, + 24, 50, 2, 3, 23, 24, 90, 90, 24, 25, 23, 24, 50, 51, 24, 24, + 24, 24, 24, 50, 51, 24, 24, 24, 24, 50, 51, 24, 28, 29, 24, 24, + 24, 24, 24, 24, 89, 24, 24, 24, 28, 46, 29, 89, 50, 51, 24, 24, + 46, 46, 46, 29, 28, 29, 24, 24, 50, 2, 32, 29, 90, 28, 46, 29, + 1, 2, 2, 32, 10, 32, 29, 89, 89, 24, 50, 51, 24, 25, 115, 23, + 23, 24, 24, 50, 51, 25, 23, 28, 46, 29, 24, 24, 24, 50, 2, 32, + 45, 29, 24, 24, 24, 50, 32, 10, 2, 51, 24, 24, 24, 24, 28, 47, + 2, 51, 24, 28, 46, 46, 47, 45, 46, 29, 24, 24, 28, 46, 10, 2], + "height":16, + "width":16, + "x":96, + "y":32 + }, + { + "data":[24, 90, 24, 89, 24, 28, 29, 28, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 24, 24, 24, 24, 25, 23, 25, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 24, 24, 24, 89, 25, 23, 25, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 24, 24, 24, 24, 25, 23, 25, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 24, 89, 24, 24, 25, 23, 25, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 24, 28, 46, 29, 50, 51, 25, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 24, 50, 2, 51, 90, 89, 50, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 24, 28, 29, 28, 29, 28, 29, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 24, 25, 23, 50, 32, 47, 23, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 24, 25, 23, 24, 50, 2, 51, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 24, 25, 23, 28, 29, 90, 24, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 24, 50, 32, 47, 23, 90, 24, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 24, 28, 10, 2, 51, 24, 24, 0, 0, 0, 0, 0, 0, 0, 0, + 29, 24, 50, 32, 29, 24, 24, 28, 0, 0, 0, 0, 0, 0, 0, 0, + 23, 28, 29, 50, 51, 24, 28, 10, 0, 0, 0, 0, 0, 0, 0, 0, + 51, 50, 51, 24, 24, 24, 50, 51, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":112, + "y":32 + }, + { + "data":[3, 114, 23, 24, 28, 29, 24, 90, 24, 50, 51, 24, 24, 24, 24, 24, + 50, 2, 32, 29, 25, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, + 24, 24, 50, 32, 10, 32, 29, 24, 89, 90, 24, 89, 28, 46, 29, 24, + 46, 29, 89, 50, 51, 50, 51, 24, 24, 28, 46, 46, 10, 2, 32, 29, + 2, 32, 29, 24, 24, 24, 90, 28, 46, 47, 1, 3, 23, 24, 50, 32, + 24, 50, 51, 24, 24, 24, 24, 25, 111, 111, 23, 25, 23, 24, 28, 10, + 24, 24, 28, 29, 89, 24, 24, 25, 1, 3, 23, 25, 45, 29, 50, 51, + 24, 28, 10, 51, 24, 24, 24, 50, 32, 10, 51, 25, 111, 23, 24, 24, + 24, 25, 23, 24, 24, 24, 24, 24, 50, 51, 24, 50, 2, 32, 46, 29, + 29, 25, 23, 24, 24, 24, 28, 29, 28, 29, 24, 24, 24, 50, 2, 32, + 23, 50, 32, 29, 24, 24, 50, 51, 25, 23, 24, 24, 24, 24, 28, 10, + 23, 24, 50, 32, 46, 29, 24, 24, 50, 51, 24, 28, 46, 29, 25, 23, + 32, 46, 46, 10, 2, 51, 24, 24, 28, 46, 29, 50, 3, 45, 47, 45, + 50, 2, 2, 32, 46, 29, 24, 89, 25, 111, 23, 24, 50, 2, 2, 2, + 24, 24, 24, 50, 2, 51, 90, 28, 47, 114, 23, 24, 24, 24, 24, 24, + 24, 89, 24, 24, 89, 28, 29, 50, 2, 2, 32, 29, 24, 24, 24, 24], + "height":16, + "width":16, + "x":0, + "y":48 + }, + { + "data":[24, 28, 46, 29, 24, 25, 23, 24, 90, 25, 23, 24, 50, 2, 51, 24, + 24, 25, 111, 23, 28, 47, 23, 24, 24, 25, 45, 29, 24, 24, 28, 46, + 90, 25, 111, 23, 25, 1, 51, 24, 90, 50, 2, 51, 90, 24, 50, 2, + 90, 25, 114, 23, 25, 23, 24, 28, 46, 29, 24, 89, 24, 24, 28, 46, + 46, 10, 2, 51, 25, 23, 28, 10, 2, 51, 89, 24, 24, 24, 25, 111, + 2, 32, 29, 24, 25, 23, 25, 23, 28, 29, 24, 24, 24, 24, 25, 115, + 24, 50, 51, 24, 50, 51, 25, 23, 25, 23, 24, 24, 24, 89, 25, 1, + 24, 28, 46, 29, 24, 24, 50, 51, 25, 23, 89, 28, 46, 46, 47, 23, + 24, 50, 2, 51, 24, 24, 24, 24, 50, 51, 89, 50, 3, 115, 111, 23, + 29, 24, 24, 24, 24, 90, 24, 24, 24, 89, 24, 24, 25, 1, 2, 51, + 32, 46, 46, 46, 46, 29, 24, 24, 24, 24, 24, 24, 50, 51, 89, 89, + 50, 2, 2, 2, 2, 51, 24, 90, 24, 24, 24, 24, 24, 28, 46, 46, + 46, 46, 29, 24, 24, 28, 29, 24, 24, 24, 24, 24, 24, 50, 2, 2, + 2, 2, 51, 24, 24, 25, 23, 89, 24, 24, 24, 24, 28, 29, 24, 28, + 24, 24, 24, 28, 46, 10, 51, 24, 24, 89, 90, 24, 50, 32, 46, 10, + 24, 24, 24, 50, 2, 51, 24, 24, 24, 24, 24, 90, 24, 25, 1, 51], + "height":16, + "width":16, + "x":16, + "y":48 + }, + { + "data":[90, 24, 24, 24, 90, 24, 50, 51, 24, 24, 24, 24, 24, 90, 50, 51, + 46, 29, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 90, 24, + 2, 51, 24, 24, 24, 24, 90, 24, 28, 29, 24, 24, 24, 24, 24, 24, + 29, 24, 28, 29, 90, 24, 24, 24, 25, 23, 24, 24, 24, 90, 24, 90, + 23, 24, 50, 32, 46, 29, 24, 28, 10, 51, 24, 24, 24, 89, 24, 24, + 23, 28, 29, 50, 3, 23, 24, 50, 32, 29, 90, 89, 24, 90, 24, 24, + 32, 10, 51, 90, 50, 32, 46, 46, 10, 51, 24, 24, 24, 90, 24, 24, + 25, 23, 24, 24, 24, 50, 2, 3, 23, 89, 24, 24, 24, 24, 24, 24, + 50, 32, 29, 24, 24, 24, 24, 50, 51, 90, 24, 24, 24, 24, 24, 24, + 24, 50, 32, 46, 29, 24, 89, 24, 24, 24, 24, 24, 24, 89, 24, 28, + 28, 29, 25, 1, 32, 29, 24, 28, 29, 24, 24, 28, 29, 24, 24, 50, + 10, 51, 50, 32, 47, 45, 29, 25, 45, 29, 24, 25, 23, 24, 24, 24, + 51, 24, 24, 50, 2, 2, 51, 50, 2, 32, 46, 10, 51, 24, 24, 24, + 46, 46, 46, 46, 46, 29, 90, 24, 28, 10, 3, 45, 29, 24, 89, 24, + 3, 115, 114, 111, 1, 51, 24, 24, 25, 23, 25, 1, 32, 29, 90, 24, + 25, 1, 2, 2, 32, 29, 24, 24, 50, 51, 50, 32, 10, 51, 24, 90], + "height":16, + "width":16, + "x":32, + "y":48 + }, + { + "data":[25, 23, 89, 24, 50, 2, 51, 50, 32, 29, 24, 89, 24, 90, 24, 90, + 50, 32, 29, 24, 24, 24, 24, 24, 50, 51, 24, 90, 89, 24, 24, 28, + 24, 25, 23, 24, 90, 28, 46, 46, 46, 46, 29, 24, 24, 24, 24, 50, + 28, 10, 51, 24, 24, 25, 1, 3, 1, 2, 51, 24, 24, 24, 24, 28, + 50, 51, 90, 90, 90, 50, 51, 25, 45, 29, 24, 24, 24, 24, 28, 10, + 24, 28, 29, 24, 24, 24, 24, 25, 1, 51, 24, 24, 24, 24, 50, 51, + 24, 50, 51, 24, 24, 24, 24, 50, 32, 29, 24, 24, 28, 29, 24, 24, + 24, 24, 24, 24, 24, 90, 24, 24, 25, 23, 24, 89, 50, 51, 24, 90, + 90, 24, 28, 46, 46, 29, 24, 24, 50, 51, 28, 29, 24, 24, 24, 24, + 29, 90, 50, 3, 114, 45, 29, 24, 24, 24, 50, 32, 29, 24, 24, 24, + 51, 24, 24, 50, 3, 114, 23, 24, 24, 24, 24, 25, 23, 24, 28, 46, + 24, 24, 24, 24, 50, 2, 32, 29, 24, 24, 24, 50, 32, 46, 10, 2, + 24, 24, 24, 24, 24, 24, 25, 23, 24, 24, 24, 90, 50, 2, 51, 24, + 24, 24, 24, 24, 24, 24, 50, 51, 89, 24, 24, 24, 89, 24, 24, 24, + 24, 24, 24, 24, 28, 46, 29, 24, 24, 28, 29, 24, 24, 24, 24, 24, + 24, 89, 24, 24, 50, 2, 51, 24, 89, 25, 23, 24, 24, 24, 24, 89], + "height":16, + "width":16, + "x":48, + "y":48 + }, + { + "data":[28, 47, 23, 25, 23, 50, 32, 29, 50, 32, 10, 51, 50, 51, 24, 24, + 47, 111, 23, 50, 51, 24, 25, 45, 46, 10, 32, 29, 24, 24, 24, 24, + 2, 2, 51, 24, 24, 24, 50, 2, 2, 32, 10, 51, 24, 90, 24, 24, + 29, 89, 24, 24, 24, 24, 24, 24, 89, 50, 51, 24, 24, 24, 24, 24, + 32, 46, 29, 24, 24, 24, 24, 24, 24, 24, 90, 24, 24, 28, 29, 24, + 50, 3, 45, 29, 24, 24, 24, 90, 89, 24, 28, 46, 46, 10, 32, 29, + 24, 25, 114, 23, 24, 24, 89, 24, 24, 24, 50, 2, 2, 51, 50, 51, + 24, 50, 2, 51, 24, 24, 28, 29, 24, 24, 28, 46, 29, 90, 24, 24, + 28, 29, 24, 24, 24, 90, 50, 51, 24, 24, 25, 1, 32, 29, 90, 24, + 50, 32, 46, 46, 29, 24, 24, 28, 29, 24, 50, 51, 25, 23, 24, 28, + 46, 47, 1, 2, 51, 24, 24, 50, 51, 28, 46, 29, 25, 45, 29, 50, + 3, 1, 51, 28, 29, 24, 24, 24, 24, 25, 114, 23, 50, 3, 45, 29, + 50, 51, 89, 25, 45, 29, 28, 29, 28, 10, 2, 32, 46, 10, 2, 51, + 24, 24, 24, 50, 2, 51, 50, 51, 25, 45, 29, 50, 2, 32, 29, 89, + 24, 24, 28, 29, 24, 24, 24, 24, 25, 111, 23, 24, 24, 50, 51, 24, + 24, 24, 50, 51, 24, 24, 24, 24, 50, 2, 51, 90, 24, 24, 24, 89], + "height":16, + "width":16, + "x":64, + "y":48 + }, + { + "data":[24, 24, 24, 24, 50, 32, 29, 50, 32, 29, 24, 90, 24, 24, 24, 24, + 24, 24, 24, 24, 28, 10, 32, 46, 47, 23, 89, 24, 24, 24, 24, 24, + 24, 24, 28, 46, 10, 51, 50, 2, 2, 51, 24, 89, 90, 24, 24, 24, + 24, 89, 50, 3, 45, 29, 24, 28, 46, 29, 24, 24, 24, 24, 24, 24, + 24, 24, 24, 50, 2, 51, 24, 50, 2, 51, 24, 24, 24, 24, 24, 24, + 28, 46, 46, 29, 24, 24, 28, 29, 24, 24, 24, 24, 28, 29, 24, 24, + 25, 115, 1, 51, 24, 24, 50, 32, 29, 24, 24, 24, 50, 51, 90, 90, + 25, 114, 23, 90, 24, 24, 24, 50, 51, 28, 46, 46, 46, 29, 24, 24, + 50, 2, 51, 24, 24, 28, 29, 24, 24, 50, 3, 114, 111, 45, 29, 24, + 29, 24, 24, 24, 24, 50, 32, 46, 29, 24, 50, 2, 2, 2, 51, 24, + 51, 24, 28, 29, 24, 24, 50, 2, 51, 89, 24, 24, 89, 28, 46, 29, + 24, 89, 50, 32, 29, 89, 28, 29, 24, 28, 29, 90, 24, 25, 111, 23, + 24, 24, 24, 50, 51, 24, 50, 51, 28, 10, 32, 29, 24, 50, 2, 32, + 24, 28, 29, 24, 24, 28, 29, 24, 25, 23, 50, 51, 24, 90, 24, 50, + 89, 50, 51, 24, 24, 25, 23, 24, 25, 45, 29, 24, 28, 46, 29, 89, + 24, 24, 24, 24, 28, 47, 23, 89, 25, 1, 51, 90, 25, 1, 32, 29], + "height":16, + "width":16, + "x":80, + "y":48 + }, + { + "data":[90, 24, 28, 10, 2, 2, 2, 3, 114, 23, 28, 29, 50, 2, 51, 24, + 89, 24, 50, 32, 29, 24, 24, 50, 2, 51, 50, 51, 24, 24, 24, 24, + 24, 24, 24, 50, 51, 24, 24, 28, 29, 24, 24, 24, 28, 29, 24, 24, + 24, 24, 24, 24, 90, 24, 24, 50, 51, 24, 90, 24, 50, 51, 28, 46, + 89, 89, 24, 24, 24, 24, 24, 89, 24, 24, 24, 24, 24, 24, 50, 3, + 90, 24, 24, 24, 89, 24, 89, 28, 46, 46, 46, 29, 24, 24, 90, 50, + 24, 24, 90, 24, 24, 24, 24, 50, 2, 2, 3, 45, 29, 24, 24, 24, + 24, 89, 24, 24, 90, 90, 24, 24, 24, 24, 50, 2, 51, 24, 24, 24, + 24, 28, 46, 29, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, + 24, 50, 2, 32, 29, 24, 24, 90, 24, 90, 24, 28, 46, 29, 24, 24, + 24, 24, 24, 50, 51, 24, 24, 24, 24, 24, 24, 50, 2, 51, 24, 28, + 24, 24, 24, 24, 24, 24, 24, 89, 90, 24, 28, 46, 46, 29, 90, 50, + 29, 90, 24, 24, 24, 28, 29, 24, 24, 24, 25, 1, 2, 32, 46, 46, + 51, 24, 24, 89, 24, 50, 32, 29, 24, 24, 50, 32, 46, 10, 2, 2, + 28, 46, 46, 29, 24, 24, 50, 32, 46, 46, 29, 25, 114, 23, 28, 29, + 50, 2, 2, 51, 28, 46, 46, 47, 111, 1, 32, 10, 3, 23, 50, 32], + "height":16, + "width":16, + "x":96, + "y":48 + }, + { + "data":[24, 24, 28, 29, 24, 24, 24, 24, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 24, 25, 23, 24, 24, 28, 29, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 24, 25, 23, 28, 46, 10, 51, 0, 0, 0, 0, 0, 0, 0, 0, + 29, 28, 10, 51, 50, 2, 51, 24, 0, 0, 0, 0, 0, 0, 0, 0, + 23, 50, 51, 24, 90, 24, 24, 24, 0, 0, 0, 0, 0, 0, 0, 0, + 51, 24, 24, 24, 24, 90, 89, 24, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 28, 29, 24, 24, 24, 89, 89, 0, 0, 0, 0, 0, 0, 0, 0, + 28, 10, 32, 46, 29, 24, 24, 89, 0, 0, 0, 0, 0, 0, 0, 0, + 25, 23, 50, 3, 45, 46, 29, 24, 0, 0, 0, 0, 0, 0, 0, 0, + 25, 45, 46, 10, 3, 114, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, + 10, 2, 2, 51, 50, 2, 51, 89, 0, 0, 0, 0, 0, 0, 0, 0, + 32, 29, 89, 24, 28, 46, 46, 29, 0, 0, 0, 0, 0, 0, 0, 0, + 10, 32, 46, 29, 50, 2, 2, 51, 0, 0, 0, 0, 0, 0, 0, 0, + 51, 50, 2, 32, 29, 24, 90, 28, 0, 0, 0, 0, 0, 0, 0, 0, + 28, 29, 24, 50, 32, 46, 29, 25, 0, 0, 0, 0, 0, 0, 0, 0, + 10, 32, 46, 46, 10, 2, 32, 10, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":112, + "y":48 + }, + + { + "data":[24, 24, 24, 24, 24, 50, 51, 24, 24, 24, 50, 32, 46, 29, 24, 24, + 24, 24, 24, 24, 24, 24, 24, 90, 24, 24, 24, 25, 111, 23, 90, 24, + 24, 89, 24, 89, 28, 46, 46, 46, 29, 28, 46, 10, 3, 45, 29, 90, + 24, 24, 24, 90, 50, 2, 2, 3, 45, 47, 1, 51, 50, 2, 51, 24, + 24, 89, 28, 29, 24, 24, 90, 50, 2, 2, 51, 28, 46, 29, 24, 90, + 24, 24, 25, 23, 24, 90, 24, 24, 28, 29, 24, 25, 111, 23, 24, 24, + 24, 90, 25, 23, 89, 24, 24, 24, 50, 51, 24, 25, 111, 45, 29, 24, + 28, 29, 25, 23, 89, 28, 46, 46, 46, 46, 29, 50, 2, 2, 32, 29, + 10, 51, 50, 51, 24, 50, 2, 2, 2, 3, 23, 24, 28, 29, 50, 51, + 23, 24, 24, 24, 24, 28, 29, 24, 24, 50, 32, 46, 47, 23, 24, 90, + 51, 28, 29, 24, 24, 50, 32, 46, 46, 46, 10, 3, 114, 23, 90, 89, + 24, 25, 23, 24, 24, 24, 25, 1, 2, 3, 23, 25, 1, 32, 46, 46, + 24, 25, 45, 29, 24, 24, 25, 45, 29, 50, 51, 25, 23, 50, 3, 1, + 24, 50, 2, 51, 24, 24, 25, 1, 51, 28, 29, 50, 51, 28, 47, 23, + 24, 24, 24, 24, 89, 89, 25, 23, 28, 10, 51, 28, 29, 50, 3, 45, + 29, 24, 89, 24, 24, 28, 47, 23, 25, 23, 24, 50, 32, 29, 50, 3], + "height":16, + "width":16, + "x":0, + "y":64 + }, + { + "data":[24, 28, 29, 24, 24, 24, 24, 24, 24, 24, 24, 24, 89, 50, 51, 89, + 24, 50, 32, 46, 46, 29, 28, 29, 24, 24, 24, 89, 24, 24, 24, 24, + 24, 24, 25, 111, 111, 45, 10, 32, 29, 28, 29, 24, 24, 24, 24, 24, + 24, 24, 50, 2, 2, 2, 32, 10, 32, 10, 32, 46, 29, 89, 90, 24, + 24, 24, 24, 24, 24, 24, 25, 23, 50, 32, 10, 2, 51, 24, 24, 24, + 24, 24, 24, 90, 24, 24, 25, 23, 24, 25, 45, 46, 46, 46, 46, 29, + 24, 24, 24, 24, 24, 24, 50, 51, 28, 10, 2, 2, 3, 111, 1, 32, + 90, 24, 24, 89, 24, 24, 90, 24, 50, 51, 24, 24, 50, 3, 23, 25, + 28, 29, 24, 24, 24, 24, 24, 24, 24, 24, 28, 46, 29, 50, 32, 47, + 50, 51, 24, 24, 28, 29, 24, 24, 24, 24, 25, 1, 32, 29, 25, 115, + 24, 24, 24, 24, 50, 51, 24, 24, 24, 24, 25, 45, 10, 32, 10, 2, + 29, 24, 24, 24, 89, 28, 29, 24, 24, 24, 50, 3, 23, 25, 23, 24, + 51, 24, 24, 24, 28, 47, 23, 24, 24, 24, 24, 50, 51, 25, 23, 24, + 28, 29, 89, 24, 50, 2, 51, 24, 24, 24, 28, 46, 29, 50, 32, 29, + 47, 23, 89, 28, 29, 90, 89, 24, 89, 24, 50, 3, 23, 24, 25, 23, + 114, 23, 24, 50, 32, 29, 90, 24, 24, 24, 24, 50, 51, 28, 10, 51], + "height":16, + "width":16, + "x":16, + "y":64 + }, + { + "data":[25, 45, 29, 24, 50, 51, 24, 24, 24, 24, 24, 50, 51, 24, 24, 28, + 50, 2, 51, 24, 28, 46, 46, 29, 28, 46, 46, 29, 24, 89, 24, 50, + 89, 24, 24, 24, 25, 111, 112, 23, 25, 1, 2, 51, 24, 24, 24, 24, + 24, 24, 89, 28, 10, 2, 2, 32, 10, 32, 46, 29, 24, 89, 24, 24, + 24, 89, 24, 25, 23, 90, 89, 50, 32, 47, 114, 23, 89, 89, 24, 89, + 24, 90, 24, 50, 51, 24, 24, 24, 50, 2, 2, 32, 29, 89, 90, 28, + 29, 28, 46, 46, 29, 24, 24, 24, 28, 29, 90, 50, 32, 46, 46, 47, + 45, 10, 3, 114, 23, 89, 24, 24, 25, 23, 24, 24, 25, 115, 1, 2, + 114, 23, 50, 2, 32, 29, 24, 24, 50, 32, 29, 28, 47, 1, 51, 24, + 1, 51, 24, 24, 25, 23, 24, 24, 24, 25, 23, 50, 2, 51, 28, 29, + 32, 46, 29, 24, 25, 23, 24, 24, 28, 47, 45, 29, 24, 28, 47, 23, + 50, 2, 51, 24, 25, 23, 28, 29, 50, 2, 2, 32, 29, 50, 3, 23, + 24, 24, 24, 28, 10, 51, 25, 23, 24, 24, 90, 50, 51, 24, 50, 51, + 28, 29, 24, 50, 32, 29, 25, 23, 24, 90, 24, 24, 24, 28, 29, 89, + 50, 51, 24, 24, 50, 51, 50, 51, 24, 24, 24, 24, 28, 47, 23, 24, + 24, 24, 24, 89, 24, 24, 89, 90, 24, 28, 29, 24, 50, 3, 23, 24], + "height":16, + "width":16, + "x":32, + "y":64 + }, + { + "data":[29, 24, 90, 24, 89, 90, 24, 24, 90, 50, 51, 24, 24, 24, 90, 24, + 32, 29, 24, 24, 28, 29, 24, 28, 46, 46, 46, 29, 89, 24, 24, 24, + 50, 51, 28, 29, 25, 23, 24, 50, 3, 111, 1, 51, 24, 24, 24, 24, + 90, 24, 50, 51, 50, 51, 24, 24, 50, 2, 51, 24, 24, 90, 24, 24, + 24, 90, 24, 89, 28, 29, 24, 24, 24, 28, 46, 29, 28, 29, 89, 24, + 46, 46, 46, 29, 50, 51, 24, 89, 24, 25, 111, 45, 10, 51, 24, 24, + 111, 1, 2, 32, 46, 46, 29, 24, 24, 50, 2, 2, 32, 29, 24, 24, + 2, 51, 24, 25, 111, 114, 45, 29, 89, 24, 28, 46, 10, 51, 24, 24, + 24, 24, 24, 25, 111, 1, 2, 51, 28, 46, 10, 2, 32, 46, 29, 24, + 24, 24, 24, 50, 2, 51, 24, 24, 50, 2, 32, 29, 50, 3, 23, 24, + 24, 90, 24, 89, 24, 24, 90, 24, 24, 24, 50, 51, 24, 25, 23, 24, + 24, 24, 28, 46, 29, 24, 90, 24, 24, 24, 24, 90, 24, 50, 32, 29, + 24, 28, 10, 3, 45, 29, 24, 24, 89, 24, 24, 24, 24, 28, 10, 32, + 90, 50, 51, 25, 111, 23, 24, 90, 24, 24, 24, 24, 28, 10, 51, 50, + 24, 24, 24, 25, 115, 23, 24, 24, 24, 24, 24, 24, 25, 23, 89, 24, + 24, 89, 28, 10, 2, 51, 24, 24, 24, 89, 24, 24, 25, 23, 24, 24], + "height":16, + "width":16, + "x":48, + "y":64 + }, + { + "data":[24, 24, 24, 24, 24, 24, 28, 46, 29, 24, 28, 46, 46, 46, 29, 24, + 24, 24, 24, 24, 28, 46, 10, 2, 51, 90, 50, 2, 2, 2, 51, 24, + 24, 24, 24, 24, 50, 2, 32, 29, 24, 24, 28, 29, 24, 24, 24, 24, + 90, 24, 24, 24, 90, 90, 50, 32, 29, 28, 10, 51, 24, 24, 24, 90, + 90, 24, 28, 46, 29, 24, 24, 50, 32, 10, 32, 29, 28, 46, 29, 24, + 24, 28, 47, 1, 51, 24, 24, 24, 50, 51, 25, 23, 25, 1, 51, 89, + 24, 50, 2, 51, 28, 29, 90, 24, 28, 29, 50, 32, 47, 23, 89, 28, + 24, 24, 24, 28, 47, 23, 24, 90, 50, 32, 29, 50, 2, 51, 24, 50, + 24, 24, 24, 25, 111, 23, 24, 90, 24, 50, 32, 29, 24, 24, 24, 24, + 28, 46, 29, 25, 1, 51, 24, 24, 28, 29, 50, 32, 46, 46, 29, 24, + 25, 115, 23, 50, 32, 46, 46, 46, 10, 32, 46, 10, 2, 2, 32, 46, + 25, 111, 23, 24, 25, 1, 2, 3, 45, 10, 2, 32, 29, 28, 10, 2, + 10, 2, 51, 90, 25, 23, 28, 10, 2, 32, 29, 25, 23, 50, 32, 46, + 32, 29, 24, 24, 25, 23, 25, 45, 29, 25, 23, 50, 32, 46, 10, 2, + 50, 51, 24, 24, 50, 51, 25, 1, 51, 50, 51, 90, 25, 1, 51, 24, + 24, 24, 24, 24, 24, 24, 50, 51, 24, 24, 24, 90, 50, 32, 46, 29], + "height":16, + "width":16, + "x":64, + "y":64 + }, + { + "data":[24, 89, 24, 24, 50, 2, 32, 29, 50, 32, 29, 90, 25, 23, 50, 32, + 24, 24, 24, 89, 24, 28, 47, 23, 24, 25, 23, 24, 50, 51, 24, 25, + 28, 46, 29, 24, 24, 50, 3, 23, 24, 50, 32, 29, 24, 24, 90, 50, + 25, 1, 51, 24, 24, 24, 50, 32, 29, 24, 25, 23, 24, 24, 24, 24, + 50, 51, 24, 90, 89, 24, 24, 25, 23, 24, 50, 51, 24, 24, 24, 24, + 24, 28, 29, 24, 89, 24, 24, 25, 45, 46, 29, 24, 24, 89, 24, 24, + 46, 10, 51, 24, 90, 24, 24, 50, 2, 2, 32, 46, 29, 24, 24, 89, + 3, 23, 24, 90, 24, 24, 24, 24, 90, 24, 50, 2, 32, 46, 29, 90, + 25, 45, 29, 28, 29, 28, 46, 29, 24, 89, 24, 90, 50, 2, 51, 24, + 50, 2, 32, 47, 45, 47, 1, 51, 24, 24, 89, 24, 89, 24, 24, 24, + 46, 29, 25, 1, 2, 2, 51, 28, 29, 24, 24, 24, 28, 29, 24, 24, + 2, 51, 50, 51, 24, 28, 29, 50, 51, 90, 24, 24, 50, 51, 24, 24, + 46, 29, 24, 24, 24, 50, 32, 29, 24, 24, 24, 28, 29, 24, 24, 90, + 2, 32, 46, 46, 46, 46, 10, 51, 24, 24, 24, 25, 45, 29, 24, 89, + 24, 25, 1, 2, 2, 2, 51, 24, 24, 24, 24, 25, 111, 23, 28, 29, + 28, 47, 23, 24, 28, 29, 24, 28, 46, 46, 46, 10, 2, 51, 25, 45], + "height":16, + "width":16, + "x":80, + "y":64 + }, + { + "data":[29, 24, 24, 24, 50, 2, 2, 2, 2, 51, 25, 23, 50, 51, 24, 50, + 23, 24, 24, 89, 24, 24, 24, 24, 28, 29, 50, 32, 46, 46, 46, 29, + 32, 29, 24, 24, 24, 24, 28, 29, 25, 23, 24, 25, 112, 1, 2, 51, + 50, 51, 24, 24, 24, 24, 50, 51, 50, 51, 24, 50, 3, 23, 28, 29, + 24, 24, 24, 24, 28, 29, 90, 24, 24, 24, 24, 24, 25, 45, 10, 51, + 90, 24, 24, 24, 50, 51, 24, 24, 24, 24, 24, 90, 25, 115, 23, 28, + 89, 24, 24, 28, 29, 24, 24, 24, 24, 24, 24, 24, 50, 2, 51, 25, + 24, 24, 24, 50, 32, 46, 29, 24, 24, 24, 24, 24, 24, 90, 90, 50, + 24, 24, 24, 24, 50, 3, 23, 24, 28, 29, 24, 24, 24, 28, 29, 24, + 90, 24, 90, 24, 24, 25, 23, 89, 50, 51, 24, 24, 28, 10, 51, 24, + 24, 24, 28, 29, 90, 50, 51, 24, 24, 24, 24, 24, 50, 32, 29, 28, + 24, 28, 10, 51, 24, 90, 89, 24, 24, 24, 24, 24, 24, 25, 23, 25, + 24, 50, 51, 89, 28, 29, 24, 28, 29, 89, 24, 24, 90, 50, 51, 50, + 24, 24, 89, 24, 50, 32, 46, 10, 32, 46, 46, 29, 24, 24, 90, 24, + 24, 24, 24, 24, 24, 50, 2, 51, 25, 1, 2, 32, 46, 46, 29, 89, + 29, 28, 29, 24, 24, 24, 89, 89, 50, 51, 24, 50, 3, 1, 32, 46], + "height":16, + "width":16, + "x":96, + "y":64 + }, + { + "data":[32, 10, 2, 2, 51, 24, 50, 51, 0, 0, 0, 0, 0, 0, 0, 0, + 25, 45, 46, 29, 90, 90, 90, 24, 0, 0, 0, 0, 0, 0, 0, 0, + 50, 2, 2, 51, 28, 29, 24, 24, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 24, 24, 24, 25, 23, 24, 24, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 24, 24, 28, 47, 23, 24, 24, 0, 0, 0, 0, 0, 0, 0, 0, + 46, 29, 24, 50, 3, 23, 24, 28, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 32, 29, 24, 25, 23, 24, 50, 0, 0, 0, 0, 0, 0, 0, 0, + 51, 50, 51, 24, 50, 32, 29, 28, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 24, 24, 24, 24, 25, 23, 25, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 90, 24, 24, 90, 50, 51, 50, 0, 0, 0, 0, 0, 0, 0, 0, + 29, 90, 24, 24, 24, 24, 28, 46, 0, 0, 0, 0, 0, 0, 0, 0, + 23, 24, 24, 24, 24, 24, 50, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 32, 46, 29, 24, 24, 24, 24, 24, 0, 0, 0, 0, 0, 0, 0, 0, + 50, 2, 51, 24, 24, 24, 24, 24, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 24, 90, 24, 28, 29, 89, 28, 0, 0, 0, 0, 0, 0, 0, 0, + 29, 24, 24, 89, 25, 23, 28, 10, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":112, + "y":64 + }, + { + "data":[51, 24, 24, 24, 24, 50, 2, 32, 10, 32, 29, 24, 50, 32, 29, 25, + 24, 24, 24, 89, 89, 24, 24, 50, 51, 25, 23, 24, 24, 25, 23, 50, + 24, 24, 28, 29, 89, 24, 24, 24, 24, 25, 23, 89, 24, 50, 32, 46, + 29, 24, 50, 32, 46, 46, 29, 89, 90, 50, 32, 29, 90, 24, 25, 1, + 23, 28, 29, 25, 115, 114, 23, 24, 24, 24, 25, 23, 24, 24, 25, 23, + 32, 47, 45, 10, 2, 3, 23, 89, 24, 24, 50, 32, 29, 24, 50, 32, + 25, 115, 1, 51, 24, 25, 23, 24, 24, 24, 24, 50, 32, 46, 46, 10, + 10, 2, 32, 29, 24, 50, 51, 24, 24, 28, 29, 24, 50, 2, 2, 51, + 32, 46, 10, 51, 24, 24, 24, 24, 24, 50, 51, 24, 24, 24, 24, 24, + 50, 3, 23, 89, 89, 89, 24, 24, 90, 24, 24, 28, 46, 29, 28, 46, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":0, + "y":80 + }, + { + "data":[111, 23, 28, 29, 25, 23, 24, 28, 46, 46, 46, 29, 24, 50, 32, 29, + 2, 51, 50, 51, 50, 51, 24, 25, 111, 1, 3, 23, 28, 46, 10, 51, + 29, 28, 29, 24, 24, 24, 24, 25, 1, 51, 25, 23, 50, 3, 23, 90, + 51, 50, 51, 24, 28, 46, 29, 50, 51, 89, 50, 32, 46, 47, 23, 28, + 24, 24, 24, 89, 50, 2, 32, 46, 29, 24, 28, 10, 2, 2, 32, 10, + 29, 24, 24, 24, 24, 24, 50, 2, 51, 28, 10, 51, 24, 24, 50, 51, + 51, 24, 24, 24, 89, 24, 24, 89, 24, 50, 51, 24, 24, 24, 28, 46, + 28, 29, 89, 24, 24, 24, 24, 24, 28, 46, 29, 24, 24, 28, 10, 2, + 25, 23, 90, 24, 28, 29, 24, 24, 50, 2, 32, 29, 24, 50, 51, 24, + 47, 23, 24, 24, 50, 51, 24, 24, 24, 24, 25, 23, 90, 24, 89, 24, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":16, + "y":80 + }, + { + "data":[28, 46, 29, 24, 28, 29, 24, 24, 24, 25, 23, 24, 24, 25, 23, 89, + 50, 3, 23, 24, 50, 32, 29, 90, 24, 50, 51, 24, 24, 25, 23, 28, + 24, 50, 32, 46, 29, 50, 51, 24, 24, 89, 24, 24, 28, 10, 51, 25, + 29, 89, 25, 111, 23, 24, 28, 29, 28, 46, 29, 24, 25, 23, 24, 50, + 32, 29, 25, 111, 45, 46, 47, 23, 50, 2, 51, 24, 25, 23, 89, 24, + 50, 51, 25, 111, 111, 1, 2, 51, 24, 90, 24, 24, 50, 51, 24, 28, + 29, 24, 50, 2, 2, 32, 29, 24, 24, 24, 24, 24, 90, 28, 46, 10, + 51, 24, 24, 28, 29, 50, 51, 89, 28, 46, 29, 24, 24, 25, 1, 51, + 24, 24, 24, 50, 51, 24, 24, 24, 25, 114, 23, 89, 90, 50, 32, 29, + 24, 24, 24, 24, 24, 28, 46, 29, 50, 3, 23, 24, 24, 28, 10, 32, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":32, + "y":80 + }, + { + "data":[24, 24, 50, 51, 90, 28, 29, 24, 24, 24, 24, 28, 10, 51, 24, 89, + 29, 24, 90, 90, 28, 10, 32, 29, 24, 24, 24, 25, 23, 24, 24, 24, + 23, 24, 90, 24, 25, 23, 25, 23, 24, 24, 24, 50, 51, 24, 89, 24, + 32, 29, 24, 24, 50, 51, 50, 32, 46, 46, 29, 24, 24, 24, 24, 24, + 25, 23, 24, 28, 29, 24, 24, 50, 2, 2, 51, 24, 24, 24, 28, 29, + 47, 23, 24, 50, 32, 29, 24, 24, 24, 24, 90, 24, 90, 24, 50, 32, + 3, 45, 29, 28, 10, 32, 29, 24, 90, 24, 24, 24, 28, 29, 90, 25, + 25, 114, 23, 50, 51, 50, 51, 89, 28, 29, 24, 24, 50, 51, 24, 25, + 50, 2, 32, 29, 24, 24, 24, 28, 47, 45, 29, 24, 24, 24, 28, 10, + 29, 89, 50, 51, 24, 24, 24, 50, 3, 115, 45, 29, 28, 29, 25, 45, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":48, + "y":80 + }, + { + "data":[24, 24, 24, 24, 24, 24, 24, 24, 89, 24, 24, 24, 28, 10, 3, 23, + 24, 24, 24, 24, 24, 24, 24, 24, 89, 24, 24, 89, 50, 32, 10, 51, + 24, 24, 24, 24, 24, 28, 29, 24, 24, 28, 46, 29, 24, 25, 23, 24, + 28, 29, 24, 24, 24, 50, 51, 24, 24, 50, 3, 23, 24, 25, 23, 24, + 50, 51, 90, 24, 24, 90, 24, 24, 90, 24, 50, 32, 29, 50, 51, 24, + 29, 24, 28, 46, 29, 24, 24, 89, 24, 28, 29, 25, 23, 24, 28, 29, + 23, 24, 25, 1, 51, 24, 24, 24, 24, 50, 51, 50, 32, 46, 10, 51, + 23, 24, 25, 23, 24, 24, 24, 24, 24, 24, 90, 28, 10, 2, 51, 24, + 51, 28, 10, 51, 24, 28, 29, 24, 24, 28, 46, 10, 51, 24, 24, 24, + 46, 10, 51, 90, 24, 50, 32, 46, 29, 50, 2, 51, 24, 24, 24, 90, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":64, + "y":80 + }, + { + "data":[25, 1, 51, 24, 50, 32, 29, 50, 2, 3, 114, 45, 29, 24, 25, 114, + 25, 23, 28, 46, 29, 25, 23, 24, 24, 25, 1, 2, 32, 29, 25, 111, + 50, 32, 47, 111, 23, 50, 32, 29, 24, 50, 51, 89, 50, 32, 10, 3, + 24, 50, 2, 2, 32, 29, 50, 32, 46, 29, 24, 24, 24, 50, 51, 50, + 28, 29, 89, 28, 10, 51, 24, 25, 111, 23, 89, 28, 46, 29, 24, 24, + 50, 32, 46, 10, 32, 46, 29, 50, 3, 23, 89, 50, 3, 23, 24, 24, + 24, 50, 2, 51, 50, 3, 45, 46, 10, 51, 28, 29, 50, 32, 46, 29, + 24, 28, 46, 46, 29, 50, 2, 2, 32, 29, 25, 23, 28, 47, 1, 32, + 24, 25, 114, 115, 23, 24, 24, 24, 25, 23, 50, 51, 50, 2, 32, 10, + 24, 50, 2, 2, 51, 24, 28, 29, 50, 32, 29, 24, 24, 24, 50, 32, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":80, + "y":80 + }, + { + "data":[23, 50, 32, 46, 29, 24, 24, 24, 24, 24, 24, 24, 50, 51, 25, 1, + 23, 24, 25, 111, 23, 28, 29, 24, 90, 24, 24, 89, 24, 90, 50, 32, + 45, 29, 50, 2, 32, 10, 51, 24, 24, 90, 89, 24, 24, 24, 24, 50, + 2, 32, 29, 90, 25, 45, 46, 46, 29, 24, 28, 29, 28, 29, 90, 24, + 24, 25, 23, 24, 50, 2, 2, 2, 51, 24, 25, 45, 10, 32, 29, 24, + 28, 10, 51, 24, 24, 89, 24, 89, 89, 24, 25, 111, 23, 50, 51, 24, + 25, 23, 24, 24, 24, 24, 24, 24, 90, 24, 25, 111, 23, 28, 29, 90, + 10, 32, 29, 24, 89, 24, 24, 24, 24, 24, 50, 2, 51, 50, 32, 29, + 51, 50, 51, 24, 28, 46, 46, 46, 29, 24, 24, 24, 24, 28, 10, 51, + 29, 24, 24, 24, 50, 2, 2, 2, 51, 24, 89, 24, 24, 50, 32, 29, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":96, + "y":80 + }, + { + "data":[32, 29, 24, 90, 50, 51, 50, 51, 0, 0, 0, 0, 0, 0, 0, 0, + 10, 32, 29, 24, 24, 28, 46, 29, 0, 0, 0, 0, 0, 0, 0, 0, + 32, 10, 51, 28, 29, 25, 115, 23, 0, 0, 0, 0, 0, 0, 0, 0, + 25, 23, 24, 50, 32, 10, 3, 23, 0, 0, 0, 0, 0, 0, 0, 0, + 50, 32, 46, 29, 50, 51, 25, 45, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 25, 114, 45, 29, 24, 50, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 50, 2, 2, 51, 90, 24, 24, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 89, 24, 28, 46, 29, 24, 24, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 24, 24, 50, 2, 51, 28, 29, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 24, 89, 89, 24, 28, 10, 51, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":112, + "y":80 + }], + "class":"Tile", + "height":96, + "id":1, + "name":"\u0421\u043b\u043e\u0439 \u0442\u0430\u0439\u043b\u043e\u0432 1", + "opacity":1, + "startx":0, + "starty":0, + "type":"tilelayer", + "visible":true, + "width":128, + "x":0, + "y":0 + }], + "nextlayerid":2, + "nextobjectid":1, + "orientation":"orthogonal", + "renderorder":"right-down", + "tiledversion":"1.10.2", + "tileheight":32, + "tilesets":[ + { + "firstgid":1, + "source":"..\/TileSets\/TileSet 1.tsj" + }], + "tilewidth":32, + "type":"map", + "version":"1.10", + "width":30 +} \ No newline at end of file diff --git a/ZoFo/GameCore/GameManagers/MapManager/TileMaps/main.tmx b/ZoFo/Content/MapData/TileMaps/main.tmx similarity index 100% rename from ZoFo/GameCore/GameManagers/MapManager/TileMaps/main.tmx rename to ZoFo/Content/MapData/TileMaps/main.tmx diff --git a/ZoFo/GameCore/GameManagers/MapManager/TileSets/TileSet 1.tsj b/ZoFo/Content/MapData/TileSets/TileSet 1.tsj similarity index 95% rename from ZoFo/GameCore/GameManagers/MapManager/TileSets/TileSet 1.tsj rename to ZoFo/Content/MapData/TileSets/TileSet 1.tsj index 3388a9e..d681881 100644 --- a/ZoFo/GameCore/GameManagers/MapManager/TileSets/TileSet 1.tsj +++ b/ZoFo/Content/MapData/TileSets/TileSet 1.tsj @@ -1,20 +1,22 @@ { "class":"Tile", "columns":22, + "fillmode":"preserve-aspect-fit", "grid": { "height":24, "orientation":"orthogonal", "width":24 }, - "image":"..\/..\/..\/..\/Content\/Textures\/Background\/TilesetFloor.png", - "imageheight":417, - "imagewidth":352, + "image":"..\/..\/Textures\/TileSet\/TilesetFloor.png", + "imageheight":832, + "imagewidth":704, "margin":0, "name":"TileSet 1", + "objectalignment":"topleft", "spacing":0, "tilecount":572, "tiledversion":"1.10.2", - "tileheight":16, + "tileheight":32, "tiles":[ { "id":27, @@ -52,7 +54,7 @@ "id":112, "probability":0.100000001490116 }], - "tilewidth":16, + "tilewidth":32, "type":"tileset", "version":"1.10", "wangsets":[ diff --git a/ZoFo/Content/MapData/TileSets/WallSet.tsj b/ZoFo/Content/MapData/TileSets/WallSet.tsj new file mode 100644 index 0000000..4cf3f82 --- /dev/null +++ b/ZoFo/Content/MapData/TileSets/WallSet.tsj @@ -0,0 +1,21 @@ +{ "class":"StopObject", + "columns":5, + "grid": + { + "height":16, + "orientation":"orthogonal", + "width":16 + }, + "image":"..\/..\/Textures\/StopObjects\/Tilelist2.png", + "imageheight":1302, + "imagewidth":652, + "margin":2, + "name":"WallSet", + "spacing":2, + "tilecount":3240, + "tiledversion":"1.10.2", + "tileheight":128, + "tilewidth":128, + "type":"tileset", + "version":"1.10" +} \ No newline at end of file diff --git a/ZoFo/Content/MapData/TileSets/WallSet.tsx b/ZoFo/Content/MapData/TileSets/WallSet.tsx new file mode 100644 index 0000000..35564d4 --- /dev/null +++ b/ZoFo/Content/MapData/TileSets/WallSet.tsx @@ -0,0 +1,5 @@ + + + + + diff --git a/ZoFo/Content/Textures/AnimationTextures/Character/hr-level1_idle.png b/ZoFo/Content/Textures/AnimationTextures/Character/hr-level1_idle.png new file mode 100644 index 0000000..85413ee Binary files /dev/null and b/ZoFo/Content/Textures/AnimationTextures/Character/hr-level1_idle.png differ diff --git a/ZoFo/Content/Textures/AnimationTextures/Character/hr-level1_idle_gun.png b/ZoFo/Content/Textures/AnimationTextures/Character/hr-level1_idle_gun.png new file mode 100644 index 0000000..4cb9b20 Binary files /dev/null and b/ZoFo/Content/Textures/AnimationTextures/Character/hr-level1_idle_gun.png differ diff --git a/ZoFo/Content/Textures/AnimationTextures/Character/hr-level1_mining_tool-1.png b/ZoFo/Content/Textures/AnimationTextures/Character/hr-level1_mining_tool-1.png new file mode 100644 index 0000000..8d194a4 Binary files /dev/null and b/ZoFo/Content/Textures/AnimationTextures/Character/hr-level1_mining_tool-1.png differ diff --git a/ZoFo/Content/Textures/AnimationTextures/Character/hr-level1_mining_tool-2.png b/ZoFo/Content/Textures/AnimationTextures/Character/hr-level1_mining_tool-2.png new file mode 100644 index 0000000..c3e4071 Binary files /dev/null and b/ZoFo/Content/Textures/AnimationTextures/Character/hr-level1_mining_tool-2.png differ diff --git a/ZoFo/Content/Textures/AnimationTextures/Character/hr-level1_running.png b/ZoFo/Content/Textures/AnimationTextures/Character/hr-level1_running.png new file mode 100644 index 0000000..5ceabee Binary files /dev/null and b/ZoFo/Content/Textures/AnimationTextures/Character/hr-level1_running.png differ diff --git a/ZoFo/Content/Textures/AnimationTextures/Character/hr-level1_running_gun.png b/ZoFo/Content/Textures/AnimationTextures/Character/hr-level1_running_gun.png new file mode 100644 index 0000000..488b866 Binary files /dev/null and b/ZoFo/Content/Textures/AnimationTextures/Character/hr-level1_running_gun.png differ diff --git a/ZoFo/Content/Textures/AnimationTextures/unicorn.png b/ZoFo/Content/Textures/AnimationTextures/unicorn.png new file mode 100644 index 0000000..3306190 Binary files /dev/null and b/ZoFo/Content/Textures/AnimationTextures/unicorn.png differ diff --git a/ZoFo/Content/Textures/Animations/player_idle_top-right_noweapon.animation b/ZoFo/Content/Textures/Animations/player_idle_top-right_noweapon.animation new file mode 100644 index 0000000..e97cfa8 --- /dev/null +++ b/ZoFo/Content/Textures/Animations/player_idle_top-right_noweapon.animation @@ -0,0 +1,20 @@ +{ + "id": "player_idle_top-right_noweapon", + "textureName": "Textures/AnimationTextures/Character/hr-level1_idle", + "startSpriteRectangle": { + "X": 0, + "Y": 116, + "Width": 92, + "Height": 116 + }, + "frameSecond": [ + { + "Item1": 0, + "Item2": 5 + } + ], + "textureFrameInterval": 0, + "framesCount": 22, + "isCycle": true, + "offset": "0, 0" +} diff --git a/ZoFo/Content/Textures/Animations/player_idle_top_noweapon.animation b/ZoFo/Content/Textures/Animations/player_idle_top_noweapon.animation new file mode 100644 index 0000000..4e72f22 --- /dev/null +++ b/ZoFo/Content/Textures/Animations/player_idle_top_noweapon.animation @@ -0,0 +1,20 @@ +{ + "id": "player_idle_top_noweapon", + "textureName": "Textures/AnimationTextures/Character/hr-level1_idle", + "startSpriteRectangle": { + "X": 0, + "Y": 0, + "Width": 92, + "Height": 116 + }, + "frameSecond": [ + { + "Item1": 0, + "Item2": 5 + } + ], + "textureFrameInterval": 0, + "framesCount": 22, + "isCycle": true, + "offset": "0, 0" +} diff --git a/ZoFo/Content/Textures/Animations/running_top.animation b/ZoFo/Content/Textures/Animations/running_top.animation new file mode 100644 index 0000000..5f2991c --- /dev/null +++ b/ZoFo/Content/Textures/Animations/running_top.animation @@ -0,0 +1,20 @@ +{ + "id": "running_top", + "textureName": "unicorn", + "startSpriteRectangle": { + "X": 0, + "Y": 30, + "Width": 30, + "Height": 60 + }, + "frameSecond": [ + { + "Item1": 0, + "Item2": 2 + } + ], + "textureFrameInterval": 1, + "framesCount": 22, + "isCycle": true, + "offset": "0, 0" +} diff --git a/ZoFo/Content/Textures/Animations/testAnimationExample.animation b/ZoFo/Content/Textures/Animations/testAnimationExample.animation new file mode 100644 index 0000000..de970c1 --- /dev/null +++ b/ZoFo/Content/Textures/Animations/testAnimationExample.animation @@ -0,0 +1 @@ +{"id":"testAnimationExample","textureName":"Textures/AnimationTextures/unicorn","startSpriteRectangle":{"X":0,"Y":0,"Width":400,"Height":400},"frameSecond":[{"Item1":0,"Item2":1}],"textureFrameInterval":1,"framesCount":1,"isCycle":true,"offset":"0, 0"} diff --git a/ZoFo/Content/Textures/Background/TilesetFloor.png b/ZoFo/Content/Textures/Background/TilesetFloor.png deleted file mode 100644 index abba7bf..0000000 Binary files a/ZoFo/Content/Textures/Background/TilesetFloor.png and /dev/null differ diff --git a/ZoFo/Content/Textures/GUI/background/endGame.png b/ZoFo/Content/Textures/GUI/background/endGame.png new file mode 100644 index 0000000..2d9926c Binary files /dev/null and b/ZoFo/Content/Textures/GUI/background/endGame.png differ diff --git a/ZoFo/Content/Textures/GUI/background/join.png b/ZoFo/Content/Textures/GUI/background/join.png index 59d539a..6d45273 100644 Binary files a/ZoFo/Content/Textures/GUI/background/join.png and b/ZoFo/Content/Textures/GUI/background/join.png differ diff --git a/ZoFo/Content/Textures/GUI/background/mainMenu.png b/ZoFo/Content/Textures/GUI/background/mainMenu.png new file mode 100644 index 0000000..a0778fb Binary files /dev/null and b/ZoFo/Content/Textures/GUI/background/mainMenu.png differ diff --git a/ZoFo/Content/Textures/GUI/background/options.png b/ZoFo/Content/Textures/GUI/background/options.png new file mode 100644 index 0000000..ef917ce Binary files /dev/null and b/ZoFo/Content/Textures/GUI/background/options.png differ diff --git a/ZoFo/Content/Textures/GUI/background/selectMode.png b/ZoFo/Content/Textures/GUI/background/selectMode.png index 256ae2c..25bc33b 100644 Binary files a/ZoFo/Content/Textures/GUI/background/selectMode.png and b/ZoFo/Content/Textures/GUI/background/selectMode.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/Shadows/shadows_house_0000_Layer-1.png b/ZoFo/Content/Textures/StopObjects/Environment/Shadows/shadows_house_0000_Layer-1.png new file mode 100644 index 0000000..880cd49 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/Shadows/shadows_house_0000_Layer-1.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/Shadows/shadows_house_0001_Layer-2.png b/ZoFo/Content/Textures/StopObjects/Environment/Shadows/shadows_house_0001_Layer-2.png new file mode 100644 index 0000000..ad2fc2b Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/Shadows/shadows_house_0001_Layer-2.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/Shadows/shadows_house_0002_Layer-3.png b/ZoFo/Content/Textures/StopObjects/Environment/Shadows/shadows_house_0002_Layer-3.png new file mode 100644 index 0000000..3d95308 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/Shadows/shadows_house_0002_Layer-3.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/Shadows/shadows_house_0003_Layer-4.png b/ZoFo/Content/Textures/StopObjects/Environment/Shadows/shadows_house_0003_Layer-4.png new file mode 100644 index 0000000..3c9368c Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/Shadows/shadows_house_0003_Layer-4.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/Shadows/shadows_house_0004_Layer-5.png b/ZoFo/Content/Textures/StopObjects/Environment/Shadows/shadows_house_0004_Layer-5.png new file mode 100644 index 0000000..d31fb47 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/Shadows/shadows_house_0004_Layer-5.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/Shadows/shadows_house_0005_Layer-6.png b/ZoFo/Content/Textures/StopObjects/Environment/Shadows/shadows_house_0005_Layer-6.png new file mode 100644 index 0000000..fc721e5 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/Shadows/shadows_house_0005_Layer-6.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/Shadows/shadows_house_0006_Layer-7.png b/ZoFo/Content/Textures/StopObjects/Environment/Shadows/shadows_house_0006_Layer-7.png new file mode 100644 index 0000000..fc1f3d1 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/Shadows/shadows_house_0006_Layer-7.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/Shadows/shadows_house_0007_Layer-8.png b/ZoFo/Content/Textures/StopObjects/Environment/Shadows/shadows_house_0007_Layer-8.png new file mode 100644 index 0000000..af254f2 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/Shadows/shadows_house_0007_Layer-8.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/Shadows/shadows_house_0008_Layer-9.png b/ZoFo/Content/Textures/StopObjects/Environment/Shadows/shadows_house_0008_Layer-9.png new file mode 100644 index 0000000..0879664 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/Shadows/shadows_house_0008_Layer-9.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/Shadows/shadows_house_0009_Layer-10.png b/ZoFo/Content/Textures/StopObjects/Environment/Shadows/shadows_house_0009_Layer-10.png new file mode 100644 index 0000000..8fda383 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/Shadows/shadows_house_0009_Layer-10.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/Shadows/shadows_house_0010_Layer-11.png b/ZoFo/Content/Textures/StopObjects/Environment/Shadows/shadows_house_0010_Layer-11.png new file mode 100644 index 0000000..6f2a493 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/Shadows/shadows_house_0010_Layer-11.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/Shadows/shadows_house_0011_Layer-12.png b/ZoFo/Content/Textures/StopObjects/Environment/Shadows/shadows_house_0011_Layer-12.png new file mode 100644 index 0000000..4e7ab49 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/Shadows/shadows_house_0011_Layer-12.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/Shadows/shadows_house_0012_Layer-13.png b/ZoFo/Content/Textures/StopObjects/Environment/Shadows/shadows_house_0012_Layer-13.png new file mode 100644 index 0000000..d654f41 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/Shadows/shadows_house_0012_Layer-13.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/Shadows/shadows_house_0013_Layer-14.png b/ZoFo/Content/Textures/StopObjects/Environment/Shadows/shadows_house_0013_Layer-14.png new file mode 100644 index 0000000..2eeb752 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/Shadows/shadows_house_0013_Layer-14.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/Shadows/shadows_house_0014_Layer-15.png b/ZoFo/Content/Textures/StopObjects/Environment/Shadows/shadows_house_0014_Layer-15.png new file mode 100644 index 0000000..cf2f09d Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/Shadows/shadows_house_0014_Layer-15.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/Shadows/shadows_house_0015_Layer-16.png b/ZoFo/Content/Textures/StopObjects/Environment/Shadows/shadows_house_0015_Layer-16.png new file mode 100644 index 0000000..c13af22 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/Shadows/shadows_house_0015_Layer-16.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/Shadows/shadows_house_0016_Layer-0.png b/ZoFo/Content/Textures/StopObjects/Environment/Shadows/shadows_house_0016_Layer-0.png new file mode 100644 index 0000000..44a6ab4 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/Shadows/shadows_house_0016_Layer-0.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0000_Layer-1.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0000_Layer-1.png new file mode 100644 index 0000000..4655585 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0000_Layer-1.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0001_Layer-2.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0001_Layer-2.png new file mode 100644 index 0000000..3823f71 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0001_Layer-2.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0002_Layer-3.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0002_Layer-3.png new file mode 100644 index 0000000..05ef220 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0002_Layer-3.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0003_Layer-4.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0003_Layer-4.png new file mode 100644 index 0000000..87f4ecf Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0003_Layer-4.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0004_Layer-5.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0004_Layer-5.png new file mode 100644 index 0000000..62b95fc Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0004_Layer-5.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0005_Layer-6.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0005_Layer-6.png new file mode 100644 index 0000000..0bf58ea Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0005_Layer-6.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0006_Layer-7.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0006_Layer-7.png new file mode 100644 index 0000000..a5efeaf Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0006_Layer-7.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0007_Layer-8.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0007_Layer-8.png new file mode 100644 index 0000000..da72a26 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0007_Layer-8.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0008_Layer-9.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0008_Layer-9.png new file mode 100644 index 0000000..19e371c Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0008_Layer-9.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0009_Layer-10.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0009_Layer-10.png new file mode 100644 index 0000000..121ebe2 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0009_Layer-10.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0010_Layer-11.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0010_Layer-11.png new file mode 100644 index 0000000..634a7cd Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0010_Layer-11.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0011_Layer-12.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0011_Layer-12.png new file mode 100644 index 0000000..e3715af Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0011_Layer-12.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0012_Layer-13.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0012_Layer-13.png new file mode 100644 index 0000000..d53022c Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0012_Layer-13.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0013_Layer-14.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0013_Layer-14.png new file mode 100644 index 0000000..bacb44a Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0013_Layer-14.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0014_Layer-15.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0014_Layer-15.png new file mode 100644 index 0000000..8b7d74f Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0014_Layer-15.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0015_Layer-16.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0015_Layer-16.png new file mode 100644 index 0000000..baa78b8 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0015_Layer-16.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0016_Layer-17.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0016_Layer-17.png new file mode 100644 index 0000000..ba73b4b Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0016_Layer-17.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0017_Layer-18.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0017_Layer-18.png new file mode 100644 index 0000000..705506a Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0017_Layer-18.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0018_Layer-19.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0018_Layer-19.png new file mode 100644 index 0000000..f9acadc Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0018_Layer-19.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0019_Layer-20.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0019_Layer-20.png new file mode 100644 index 0000000..5630bf3 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0019_Layer-20.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0020_Layer-21.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0020_Layer-21.png new file mode 100644 index 0000000..c56674c Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0020_Layer-21.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0021_Layer-22.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0021_Layer-22.png new file mode 100644 index 0000000..394c48b Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0021_Layer-22.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0022_Layer-23.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0022_Layer-23.png new file mode 100644 index 0000000..8edeed6 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0022_Layer-23.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0023_Layer-24.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0023_Layer-24.png new file mode 100644 index 0000000..043499e Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0023_Layer-24.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0024_Layer-25.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0024_Layer-25.png new file mode 100644 index 0000000..0cf74a0 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0024_Layer-25.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0025_Layer-26.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0025_Layer-26.png new file mode 100644 index 0000000..ed9dc8d Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0025_Layer-26.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0026_Layer-27.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0026_Layer-27.png new file mode 100644 index 0000000..f531421 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0026_Layer-27.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0027_Layer-28.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0027_Layer-28.png new file mode 100644 index 0000000..6f4ecca Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0027_Layer-28.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0028_Layer-29.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0028_Layer-29.png new file mode 100644 index 0000000..f3a2131 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0028_Layer-29.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0029_Layer-30.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0029_Layer-30.png new file mode 100644 index 0000000..75eea87 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0029_Layer-30.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0030_Layer-31.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0030_Layer-31.png new file mode 100644 index 0000000..8c4eaa1 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0030_Layer-31.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0031_Layer-32.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0031_Layer-32.png new file mode 100644 index 0000000..dc64505 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0031_Layer-32.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0032_Layer-33.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0032_Layer-33.png new file mode 100644 index 0000000..f5a7b8f Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0032_Layer-33.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0033_Layer-34.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0033_Layer-34.png new file mode 100644 index 0000000..50b8e5b Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0033_Layer-34.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0034_Layer-35.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0034_Layer-35.png new file mode 100644 index 0000000..963376a Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0034_Layer-35.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0035_Layer-36.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0035_Layer-36.png new file mode 100644 index 0000000..986dd9a Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0035_Layer-36.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0036_Layer-37.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0036_Layer-37.png new file mode 100644 index 0000000..c28721b Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0036_Layer-37.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0037_Layer-38.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0037_Layer-38.png new file mode 100644 index 0000000..0a479fd Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0037_Layer-38.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0038_Layer-39.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0038_Layer-39.png new file mode 100644 index 0000000..b2c273a Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0038_Layer-39.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0039_Layer-40.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0039_Layer-40.png new file mode 100644 index 0000000..5d3d948 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0039_Layer-40.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0040_Layer-41.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0040_Layer-41.png new file mode 100644 index 0000000..71068e6 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0040_Layer-41.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0041_Layer-42.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0041_Layer-42.png new file mode 100644 index 0000000..85624be Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0041_Layer-42.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0042_Layer-43.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0042_Layer-43.png new file mode 100644 index 0000000..c411dfb Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0042_Layer-43.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0043_Layer-44.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0043_Layer-44.png new file mode 100644 index 0000000..58d2288 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0043_Layer-44.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0044_Layer-45.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0044_Layer-45.png new file mode 100644 index 0000000..079b5cc Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0044_Layer-45.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0045_Layer-46.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0045_Layer-46.png new file mode 100644 index 0000000..65234d0 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0045_Layer-46.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0046_Layer-47.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0046_Layer-47.png new file mode 100644 index 0000000..b5898ca Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0046_Layer-47.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0047_Layer-48.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0047_Layer-48.png new file mode 100644 index 0000000..417ecb3 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0047_Layer-48.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0048_Layer-49.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0048_Layer-49.png new file mode 100644 index 0000000..3e04981 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0048_Layer-49.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0049_Layer-50.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0049_Layer-50.png new file mode 100644 index 0000000..1972504 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0049_Layer-50.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0050_Layer-51.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0050_Layer-51.png new file mode 100644 index 0000000..cd8dc23 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0050_Layer-51.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0051_Layer-52.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0051_Layer-52.png new file mode 100644 index 0000000..a1470c1 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0051_Layer-52.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0052_Layer-53.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0052_Layer-53.png new file mode 100644 index 0000000..7b5711c Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0052_Layer-53.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0053_Layer-54.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0053_Layer-54.png new file mode 100644 index 0000000..0047c8c Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0053_Layer-54.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0054_Layer-55.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0054_Layer-55.png new file mode 100644 index 0000000..e8930bb Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0054_Layer-55.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0055_Layer-56.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0055_Layer-56.png new file mode 100644 index 0000000..d0e820d Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0055_Layer-56.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0056_Layer-57.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0056_Layer-57.png new file mode 100644 index 0000000..2f09fa8 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0056_Layer-57.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0057_Layer-58.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0057_Layer-58.png new file mode 100644 index 0000000..0facdc6 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0057_Layer-58.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0058_Layer-59.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0058_Layer-59.png new file mode 100644 index 0000000..8bcd07b Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0058_Layer-59.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0059_Layer-60.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0059_Layer-60.png new file mode 100644 index 0000000..4ad861b Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0059_Layer-60.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0060_Layer-0.png b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0060_Layer-0.png new file mode 100644 index 0000000..d5acd84 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Environment/objects_house_0060_Layer-0.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Roof/roof_0000_Layer-1.png b/ZoFo/Content/Textures/StopObjects/Roof/roof_0000_Layer-1.png new file mode 100644 index 0000000..fe36619 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Roof/roof_0000_Layer-1.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Roof/roof_0001_Layer-2.png b/ZoFo/Content/Textures/StopObjects/Roof/roof_0001_Layer-2.png new file mode 100644 index 0000000..e5b9f39 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Roof/roof_0001_Layer-2.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Roof/roof_0002_Layer-3.png b/ZoFo/Content/Textures/StopObjects/Roof/roof_0002_Layer-3.png new file mode 100644 index 0000000..e31b605 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Roof/roof_0002_Layer-3.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Roof/roof_0003_Layer-4.png b/ZoFo/Content/Textures/StopObjects/Roof/roof_0003_Layer-4.png new file mode 100644 index 0000000..09ab958 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Roof/roof_0003_Layer-4.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Roof/roof_0004_Layer-5.png b/ZoFo/Content/Textures/StopObjects/Roof/roof_0004_Layer-5.png new file mode 100644 index 0000000..0c520e5 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Roof/roof_0004_Layer-5.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Roof/roof_0005_Layer-6.png b/ZoFo/Content/Textures/StopObjects/Roof/roof_0005_Layer-6.png new file mode 100644 index 0000000..13c0408 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Roof/roof_0005_Layer-6.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Roof/roof_0006_Layer-7.png b/ZoFo/Content/Textures/StopObjects/Roof/roof_0006_Layer-7.png new file mode 100644 index 0000000..36bf1ba Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Roof/roof_0006_Layer-7.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Roof/roof_0007_Layer-8.png b/ZoFo/Content/Textures/StopObjects/Roof/roof_0007_Layer-8.png new file mode 100644 index 0000000..d39616c Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Roof/roof_0007_Layer-8.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Roof/roof_0008_Layer-9.png b/ZoFo/Content/Textures/StopObjects/Roof/roof_0008_Layer-9.png new file mode 100644 index 0000000..48ad4d7 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Roof/roof_0008_Layer-9.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Roof/roof_0009_Layer-10.png b/ZoFo/Content/Textures/StopObjects/Roof/roof_0009_Layer-10.png new file mode 100644 index 0000000..5d1f2ca Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Roof/roof_0009_Layer-10.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Roof/roof_0010_Layer-11.png b/ZoFo/Content/Textures/StopObjects/Roof/roof_0010_Layer-11.png new file mode 100644 index 0000000..ab4c856 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Roof/roof_0010_Layer-11.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Roof/roof_0011_Layer-12.png b/ZoFo/Content/Textures/StopObjects/Roof/roof_0011_Layer-12.png new file mode 100644 index 0000000..4b8f0d0 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Roof/roof_0011_Layer-12.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Roof/roof_0012_Layer-13.png b/ZoFo/Content/Textures/StopObjects/Roof/roof_0012_Layer-13.png new file mode 100644 index 0000000..9e25f96 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Roof/roof_0012_Layer-13.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Roof/roof_0013_Layer-14.png b/ZoFo/Content/Textures/StopObjects/Roof/roof_0013_Layer-14.png new file mode 100644 index 0000000..3319e48 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Roof/roof_0013_Layer-14.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Roof/roof_0014_Layer-15.png b/ZoFo/Content/Textures/StopObjects/Roof/roof_0014_Layer-15.png new file mode 100644 index 0000000..24f5bba Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Roof/roof_0014_Layer-15.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Roof/roof_0015_Layer-16.png b/ZoFo/Content/Textures/StopObjects/Roof/roof_0015_Layer-16.png new file mode 100644 index 0000000..31f7a36 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Roof/roof_0015_Layer-16.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Roof/roof_0016_Layer-17.png b/ZoFo/Content/Textures/StopObjects/Roof/roof_0016_Layer-17.png new file mode 100644 index 0000000..224400a Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Roof/roof_0016_Layer-17.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Roof/roof_0017_Layer-18.png b/ZoFo/Content/Textures/StopObjects/Roof/roof_0017_Layer-18.png new file mode 100644 index 0000000..1facb1f Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Roof/roof_0017_Layer-18.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Roof/roof_0018_Layer-19.png b/ZoFo/Content/Textures/StopObjects/Roof/roof_0018_Layer-19.png new file mode 100644 index 0000000..1d20c2f Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Roof/roof_0018_Layer-19.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Roof/roof_0019_Layer-20.png b/ZoFo/Content/Textures/StopObjects/Roof/roof_0019_Layer-20.png new file mode 100644 index 0000000..30abbfb Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Roof/roof_0019_Layer-20.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Roof/roof_0020_Layer-21.png b/ZoFo/Content/Textures/StopObjects/Roof/roof_0020_Layer-21.png new file mode 100644 index 0000000..cd32dda Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Roof/roof_0020_Layer-21.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Roof/roof_0021_Layer-22.png b/ZoFo/Content/Textures/StopObjects/Roof/roof_0021_Layer-22.png new file mode 100644 index 0000000..2414a5d Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Roof/roof_0021_Layer-22.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Roof/roof_0022_Layer-23.png b/ZoFo/Content/Textures/StopObjects/Roof/roof_0022_Layer-23.png new file mode 100644 index 0000000..46cebba Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Roof/roof_0022_Layer-23.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Roof/roof_0023_Layer-24.png b/ZoFo/Content/Textures/StopObjects/Roof/roof_0023_Layer-24.png new file mode 100644 index 0000000..95e467f Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Roof/roof_0023_Layer-24.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Roof/roof_0024_Layer-25.png b/ZoFo/Content/Textures/StopObjects/Roof/roof_0024_Layer-25.png new file mode 100644 index 0000000..1f81a4c Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Roof/roof_0024_Layer-25.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Roof/roof_0025_Layer-26.png b/ZoFo/Content/Textures/StopObjects/Roof/roof_0025_Layer-26.png new file mode 100644 index 0000000..4f13a41 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Roof/roof_0025_Layer-26.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Roof/roof_0026_Layer-27.png b/ZoFo/Content/Textures/StopObjects/Roof/roof_0026_Layer-27.png new file mode 100644 index 0000000..827f729 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Roof/roof_0026_Layer-27.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Roof/roof_0027_Layer-28.png b/ZoFo/Content/Textures/StopObjects/Roof/roof_0027_Layer-28.png new file mode 100644 index 0000000..56ab75e Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Roof/roof_0027_Layer-28.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Roof/roof_0028_Layer-29.png b/ZoFo/Content/Textures/StopObjects/Roof/roof_0028_Layer-29.png new file mode 100644 index 0000000..6caeaeb Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Roof/roof_0028_Layer-29.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Roof/roof_0029_Layer-30.png b/ZoFo/Content/Textures/StopObjects/Roof/roof_0029_Layer-30.png new file mode 100644 index 0000000..dc6eab7 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Roof/roof_0029_Layer-30.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Roof/roof_0030_Layer-31.png b/ZoFo/Content/Textures/StopObjects/Roof/roof_0030_Layer-31.png new file mode 100644 index 0000000..663615f Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Roof/roof_0030_Layer-31.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Roof/roof_0031_Layer-32.png b/ZoFo/Content/Textures/StopObjects/Roof/roof_0031_Layer-32.png new file mode 100644 index 0000000..95cd3ca Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Roof/roof_0031_Layer-32.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Roof/roof_0032_Layer-33.png b/ZoFo/Content/Textures/StopObjects/Roof/roof_0032_Layer-33.png new file mode 100644 index 0000000..1861b3e Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Roof/roof_0032_Layer-33.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Roof/roof_0033_Layer-34.png b/ZoFo/Content/Textures/StopObjects/Roof/roof_0033_Layer-34.png new file mode 100644 index 0000000..3ef79e1 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Roof/roof_0033_Layer-34.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Roof/roof_0034_Layer-35.png b/ZoFo/Content/Textures/StopObjects/Roof/roof_0034_Layer-35.png new file mode 100644 index 0000000..8186f19 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Roof/roof_0034_Layer-35.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Roof/roof_0035_Layer-36.png b/ZoFo/Content/Textures/StopObjects/Roof/roof_0035_Layer-36.png new file mode 100644 index 0000000..eb5194d Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Roof/roof_0035_Layer-36.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Roof/roof_0036_Layer-0.png b/ZoFo/Content/Textures/StopObjects/Roof/roof_0036_Layer-0.png new file mode 100644 index 0000000..e94a995 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Roof/roof_0036_Layer-0.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Tilelist1.png b/ZoFo/Content/Textures/StopObjects/Tilelist1.png new file mode 100644 index 0000000..5252c86 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Tilelist1.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Tilelist2.png b/ZoFo/Content/Textures/StopObjects/Tilelist2.png new file mode 100644 index 0000000..3ce1921 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Tilelist2.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Tilelist3.png b/ZoFo/Content/Textures/StopObjects/Tilelist3.png new file mode 100644 index 0000000..861af90 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Tilelist3.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Tilelist4.png b/ZoFo/Content/Textures/StopObjects/Tilelist4.png new file mode 100644 index 0000000..14a4566 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Tilelist4.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Walls/walls_0000_Layer-1.png b/ZoFo/Content/Textures/StopObjects/Walls/walls_0000_Layer-1.png new file mode 100644 index 0000000..c6e23e7 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Walls/walls_0000_Layer-1.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Walls/walls_0001_Layer-2.png b/ZoFo/Content/Textures/StopObjects/Walls/walls_0001_Layer-2.png new file mode 100644 index 0000000..1c8205c Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Walls/walls_0001_Layer-2.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Walls/walls_0002_Layer-3.png b/ZoFo/Content/Textures/StopObjects/Walls/walls_0002_Layer-3.png new file mode 100644 index 0000000..adeab17 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Walls/walls_0002_Layer-3.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Walls/walls_0003_Layer-4.png b/ZoFo/Content/Textures/StopObjects/Walls/walls_0003_Layer-4.png new file mode 100644 index 0000000..fcd01a8 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Walls/walls_0003_Layer-4.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Walls/walls_0004_Layer-5.png b/ZoFo/Content/Textures/StopObjects/Walls/walls_0004_Layer-5.png new file mode 100644 index 0000000..a715cf5 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Walls/walls_0004_Layer-5.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Walls/walls_0005_Layer-6.png b/ZoFo/Content/Textures/StopObjects/Walls/walls_0005_Layer-6.png new file mode 100644 index 0000000..443b2d7 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Walls/walls_0005_Layer-6.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Walls/walls_0006_Layer-7.png b/ZoFo/Content/Textures/StopObjects/Walls/walls_0006_Layer-7.png new file mode 100644 index 0000000..375a15f Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Walls/walls_0006_Layer-7.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Walls/walls_0007_Layer-8.png b/ZoFo/Content/Textures/StopObjects/Walls/walls_0007_Layer-8.png new file mode 100644 index 0000000..66d1f0e Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Walls/walls_0007_Layer-8.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Walls/walls_0008_Layer-9.png b/ZoFo/Content/Textures/StopObjects/Walls/walls_0008_Layer-9.png new file mode 100644 index 0000000..183c938 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Walls/walls_0008_Layer-9.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Walls/walls_0009_Layer-10.png b/ZoFo/Content/Textures/StopObjects/Walls/walls_0009_Layer-10.png new file mode 100644 index 0000000..0082f7c Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Walls/walls_0009_Layer-10.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Walls/walls_0010_Layer-11.png b/ZoFo/Content/Textures/StopObjects/Walls/walls_0010_Layer-11.png new file mode 100644 index 0000000..c02a29b Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Walls/walls_0010_Layer-11.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Walls/walls_0011_Layer-12.png b/ZoFo/Content/Textures/StopObjects/Walls/walls_0011_Layer-12.png new file mode 100644 index 0000000..9ec94d7 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Walls/walls_0011_Layer-12.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Walls/walls_0012_Layer-13.png b/ZoFo/Content/Textures/StopObjects/Walls/walls_0012_Layer-13.png new file mode 100644 index 0000000..50c376f Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Walls/walls_0012_Layer-13.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Walls/walls_0013_Layer-14.png b/ZoFo/Content/Textures/StopObjects/Walls/walls_0013_Layer-14.png new file mode 100644 index 0000000..099baa7 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Walls/walls_0013_Layer-14.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Walls/walls_0014_Layer-15.png b/ZoFo/Content/Textures/StopObjects/Walls/walls_0014_Layer-15.png new file mode 100644 index 0000000..51b7d43 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Walls/walls_0014_Layer-15.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Walls/walls_0015_Layer-16.png b/ZoFo/Content/Textures/StopObjects/Walls/walls_0015_Layer-16.png new file mode 100644 index 0000000..99b0f10 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Walls/walls_0015_Layer-16.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Walls/walls_0016_Layer-17.png b/ZoFo/Content/Textures/StopObjects/Walls/walls_0016_Layer-17.png new file mode 100644 index 0000000..a9f1329 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Walls/walls_0016_Layer-17.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Walls/walls_0017_Layer-18.png b/ZoFo/Content/Textures/StopObjects/Walls/walls_0017_Layer-18.png new file mode 100644 index 0000000..38f9c00 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Walls/walls_0017_Layer-18.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Walls/walls_0018_Layer-19.png b/ZoFo/Content/Textures/StopObjects/Walls/walls_0018_Layer-19.png new file mode 100644 index 0000000..a8367dd Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Walls/walls_0018_Layer-19.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Walls/walls_0019_Layer-20.png b/ZoFo/Content/Textures/StopObjects/Walls/walls_0019_Layer-20.png new file mode 100644 index 0000000..c1b2805 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Walls/walls_0019_Layer-20.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Walls/walls_0020_Layer-21.png b/ZoFo/Content/Textures/StopObjects/Walls/walls_0020_Layer-21.png new file mode 100644 index 0000000..bc18b15 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Walls/walls_0020_Layer-21.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Walls/walls_0021_Layer-22.png b/ZoFo/Content/Textures/StopObjects/Walls/walls_0021_Layer-22.png new file mode 100644 index 0000000..d8599d6 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Walls/walls_0021_Layer-22.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Walls/walls_0022_Layer-23.png b/ZoFo/Content/Textures/StopObjects/Walls/walls_0022_Layer-23.png new file mode 100644 index 0000000..4e3336e Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Walls/walls_0022_Layer-23.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Walls/walls_0023_Layer-24.png b/ZoFo/Content/Textures/StopObjects/Walls/walls_0023_Layer-24.png new file mode 100644 index 0000000..95b8964 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Walls/walls_0023_Layer-24.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Walls/walls_0024_Layer-25.png b/ZoFo/Content/Textures/StopObjects/Walls/walls_0024_Layer-25.png new file mode 100644 index 0000000..7b8e21a Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Walls/walls_0024_Layer-25.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Walls/walls_0025_Layer-26.png b/ZoFo/Content/Textures/StopObjects/Walls/walls_0025_Layer-26.png new file mode 100644 index 0000000..ad088f8 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Walls/walls_0025_Layer-26.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Walls/walls_0026_Layer-27.png b/ZoFo/Content/Textures/StopObjects/Walls/walls_0026_Layer-27.png new file mode 100644 index 0000000..dbc20bb Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Walls/walls_0026_Layer-27.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Walls/walls_0027_Layer-28.png b/ZoFo/Content/Textures/StopObjects/Walls/walls_0027_Layer-28.png new file mode 100644 index 0000000..220d937 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Walls/walls_0027_Layer-28.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Walls/walls_0028_Layer-29.png b/ZoFo/Content/Textures/StopObjects/Walls/walls_0028_Layer-29.png new file mode 100644 index 0000000..d990509 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Walls/walls_0028_Layer-29.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Walls/walls_0029_Layer-30.png b/ZoFo/Content/Textures/StopObjects/Walls/walls_0029_Layer-30.png new file mode 100644 index 0000000..4bbe70a Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Walls/walls_0029_Layer-30.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Walls/walls_0030_Layer-31.png b/ZoFo/Content/Textures/StopObjects/Walls/walls_0030_Layer-31.png new file mode 100644 index 0000000..3185cce Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Walls/walls_0030_Layer-31.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Walls/walls_0031_Layer-32.png b/ZoFo/Content/Textures/StopObjects/Walls/walls_0031_Layer-32.png new file mode 100644 index 0000000..01cf9d8 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Walls/walls_0031_Layer-32.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Walls/walls_0032_Layer-33.png b/ZoFo/Content/Textures/StopObjects/Walls/walls_0032_Layer-33.png new file mode 100644 index 0000000..80cfa34 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Walls/walls_0032_Layer-33.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Walls/walls_0033_Layer-34.png b/ZoFo/Content/Textures/StopObjects/Walls/walls_0033_Layer-34.png new file mode 100644 index 0000000..8472016 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Walls/walls_0033_Layer-34.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Walls/walls_0034_Layer-35.png b/ZoFo/Content/Textures/StopObjects/Walls/walls_0034_Layer-35.png new file mode 100644 index 0000000..742552f Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Walls/walls_0034_Layer-35.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Walls/walls_0035_Layer-36.png b/ZoFo/Content/Textures/StopObjects/Walls/walls_0035_Layer-36.png new file mode 100644 index 0000000..328595e Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Walls/walls_0035_Layer-36.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Walls/walls_0036_Layer-37.png b/ZoFo/Content/Textures/StopObjects/Walls/walls_0036_Layer-37.png new file mode 100644 index 0000000..ec80148 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Walls/walls_0036_Layer-37.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Walls/walls_0037_Layer-38.png b/ZoFo/Content/Textures/StopObjects/Walls/walls_0037_Layer-38.png new file mode 100644 index 0000000..e7e7a39 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Walls/walls_0037_Layer-38.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Walls/walls_0038_Layer-39.png b/ZoFo/Content/Textures/StopObjects/Walls/walls_0038_Layer-39.png new file mode 100644 index 0000000..c03fabe Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Walls/walls_0038_Layer-39.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Walls/walls_0039_Layer-40.png b/ZoFo/Content/Textures/StopObjects/Walls/walls_0039_Layer-40.png new file mode 100644 index 0000000..c281b0d Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Walls/walls_0039_Layer-40.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Walls/walls_0040_Layer-41.png b/ZoFo/Content/Textures/StopObjects/Walls/walls_0040_Layer-41.png new file mode 100644 index 0000000..3325002 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Walls/walls_0040_Layer-41.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Walls/walls_0041_Layer-42.png b/ZoFo/Content/Textures/StopObjects/Walls/walls_0041_Layer-42.png new file mode 100644 index 0000000..1ecbd46 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Walls/walls_0041_Layer-42.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Walls/walls_0042_Layer-43.png b/ZoFo/Content/Textures/StopObjects/Walls/walls_0042_Layer-43.png new file mode 100644 index 0000000..bcdb8d1 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Walls/walls_0042_Layer-43.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Walls/walls_0043_Layer-44.png b/ZoFo/Content/Textures/StopObjects/Walls/walls_0043_Layer-44.png new file mode 100644 index 0000000..d411060 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Walls/walls_0043_Layer-44.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Walls/walls_0044_Layer-45.png b/ZoFo/Content/Textures/StopObjects/Walls/walls_0044_Layer-45.png new file mode 100644 index 0000000..0d9981c Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Walls/walls_0044_Layer-45.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Walls/walls_0045_Layer-46.png b/ZoFo/Content/Textures/StopObjects/Walls/walls_0045_Layer-46.png new file mode 100644 index 0000000..395d4b7 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Walls/walls_0045_Layer-46.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Walls/walls_0046_Layer-47.png b/ZoFo/Content/Textures/StopObjects/Walls/walls_0046_Layer-47.png new file mode 100644 index 0000000..9df9a3e Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Walls/walls_0046_Layer-47.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Walls/walls_0047_Layer-48.png b/ZoFo/Content/Textures/StopObjects/Walls/walls_0047_Layer-48.png new file mode 100644 index 0000000..32a5283 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Walls/walls_0047_Layer-48.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Walls/walls_0048_Layer-49.png b/ZoFo/Content/Textures/StopObjects/Walls/walls_0048_Layer-49.png new file mode 100644 index 0000000..ae9b2ef Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Walls/walls_0048_Layer-49.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Walls/walls_0049_Layer-50.png b/ZoFo/Content/Textures/StopObjects/Walls/walls_0049_Layer-50.png new file mode 100644 index 0000000..b28e5b7 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Walls/walls_0049_Layer-50.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Walls/walls_0050_Layer-51.png b/ZoFo/Content/Textures/StopObjects/Walls/walls_0050_Layer-51.png new file mode 100644 index 0000000..702d9d9 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Walls/walls_0050_Layer-51.png differ diff --git a/ZoFo/Content/Textures/StopObjects/Walls/walls_0051_Layer-0.png b/ZoFo/Content/Textures/StopObjects/Walls/walls_0051_Layer-0.png new file mode 100644 index 0000000..b984c11 Binary files /dev/null and b/ZoFo/Content/Textures/StopObjects/Walls/walls_0051_Layer-0.png differ diff --git a/ZoFo/Content/Textures/TileSetImages/TilesetFloor.png b/ZoFo/Content/Textures/TileSetImages/TilesetFloor.png new file mode 100644 index 0000000..b959118 Binary files /dev/null and b/ZoFo/Content/Textures/TileSetImages/TilesetFloor.png differ diff --git a/ZoFo/Content/Textures/icons/12.png b/ZoFo/Content/Textures/icons/12.png new file mode 100644 index 0000000..1cf2c6d Binary files /dev/null and b/ZoFo/Content/Textures/icons/12.png differ diff --git a/ZoFo/Content/Textures/icons/13.png b/ZoFo/Content/Textures/icons/13.png new file mode 100644 index 0000000..272b96b Binary files /dev/null and b/ZoFo/Content/Textures/icons/13.png differ diff --git a/ZoFo/Content/Textures/icons/14.png b/ZoFo/Content/Textures/icons/14.png new file mode 100644 index 0000000..7109297 Binary files /dev/null and b/ZoFo/Content/Textures/icons/14.png differ diff --git a/ZoFo/Content/Textures/icons/21.png b/ZoFo/Content/Textures/icons/21.png new file mode 100644 index 0000000..df49f00 Binary files /dev/null and b/ZoFo/Content/Textures/icons/21.png differ diff --git a/ZoFo/Content/Textures/icons/22.png b/ZoFo/Content/Textures/icons/22.png new file mode 100644 index 0000000..09e506e Binary files /dev/null and b/ZoFo/Content/Textures/icons/22.png differ diff --git a/ZoFo/Content/Textures/icons/5.png b/ZoFo/Content/Textures/icons/5.png new file mode 100644 index 0000000..872f5e1 Binary files /dev/null and b/ZoFo/Content/Textures/icons/5.png differ diff --git a/ZoFo/Content/Textures/icons/6.png b/ZoFo/Content/Textures/icons/6.png new file mode 100644 index 0000000..a4f234a Binary files /dev/null and b/ZoFo/Content/Textures/icons/6.png differ diff --git a/ZoFo/Content/Textures/icons/7.png b/ZoFo/Content/Textures/icons/7.png new file mode 100644 index 0000000..d2b9271 Binary files /dev/null and b/ZoFo/Content/Textures/icons/7.png differ diff --git a/ZoFo/Content/Textures/icons/8.png b/ZoFo/Content/Textures/icons/8.png new file mode 100644 index 0000000..da1855e Binary files /dev/null and b/ZoFo/Content/Textures/icons/8.png differ diff --git a/ZoFo/Content/Textures/icons/9.png b/ZoFo/Content/Textures/icons/9.png new file mode 100644 index 0000000..ef3190d Binary files /dev/null and b/ZoFo/Content/Textures/icons/9.png differ diff --git a/ZoFo/GameCore/Client.cs b/ZoFo/GameCore/Client.cs index bb33c14..4bc324e 100644 --- a/ZoFo/GameCore/Client.cs +++ b/ZoFo/GameCore/Client.cs @@ -9,6 +9,11 @@ using Microsoft.Xna.Framework.Graphics; using System; using ZoFo.GameCore.GameObjects; using ZoFo.GameCore.GameObjects.MapObjects; +using ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient; +using ZoFo.GameCore.GameObjects.MapObjects.Tiles; +using System.Drawing; +using System.Reflection; +using ZoFo.GameCore.GameObjects.Entities; namespace ZoFo.GameCore { @@ -25,17 +30,11 @@ namespace ZoFo.GameCore public void OnDataSend(string data) { - List updateDatas = JsonSerializer.Deserialize>(data); + List updateDatas = JsonSerializer.Deserialize>(data); // тут будет switch foreach (var item in updateDatas) { - /* switch (item.UpdateType) Здесь нужно отлавливать и регистрировать - { - case "Tile": - MapObject map = new MapObject(); - - break; - }*/ + GotData(item); } } @@ -45,11 +44,61 @@ namespace ZoFo.GameCore networkManager.JoinRoom(ip); } public void JoinYourself() { networkManager.JoinYourself(); } + + + List mapObjects = new List(); + List gameObjects = new List(); + /// + /// Клиент должен обнговлять игру анимаций + /// + /// internal void Update(GameTime gameTime) { + for (int i = 0; i < gameObjects.Count; i++) + { + gameObjects[i].UpdateAnimations(); + } } internal void Draw(SpriteBatch spriteBatch) { + for (int i = 0; i < mapObjects.Count; i++) + { + mapObjects[i].Draw(spriteBatch); + } + for (int i = 0; i < gameObjects.Count; i++) + { + gameObjects[i].Draw(spriteBatch); + } + } + + internal void GotData(UpdateData update) + { + if (update is UpdateTileCreated) + { + mapObjects.Add( + new MapObject( + (update as UpdateTileCreated).Position, + (update as UpdateTileCreated).Size.ToVector2(), + (update as UpdateTileCreated).sourceRectangle, + (update as UpdateTileCreated).tileSetName + )); + } + else if (update is UpdateGameObjectCreated) + { + var a = Assembly.GetAssembly(typeof(GameObject)); + if ((update as UpdateGameObjectCreated).GameObjectType == "EntittyForAnimationTests") + { + + gameObjects.Add( + new EntittyForAnimationTests(new Vector2(100,100)) + ); + } + //gameObjects.Add( TODO reflection + //Activator.CreateInstance(Type.GetType("ZoFo.GameCore.GameObjects.Entities.EntittyForAnimationTests") + ///*(update as UpdateGameObjectCreated).GameObjectType*/, new []{ new Vector2(100, 100) }) + //as GameObject + //); + } } } } \ No newline at end of file diff --git a/ZoFo/GameCore/GUI/AbstractGUI.cs b/ZoFo/GameCore/GUI/AbstractGUI.cs index bdc4d60..0134477 100644 --- a/ZoFo/GameCore/GUI/AbstractGUI.cs +++ b/ZoFo/GameCore/GUI/AbstractGUI.cs @@ -39,7 +39,7 @@ public abstract class AbstractGUI public virtual void LoadContent() { Manager.LoadContent(AppManager.Instance.Content, "Font"); - mouse = AppManager.Instance.Content.Load("Textures\\GUI\\mouse"); + mouse = AppManager.Instance.Content.Load("Textures/GUI/mouse"); } public virtual void Update(GameTime gameTime) diff --git a/ZoFo/GameCore/GUI/DebugHUD.cs b/ZoFo/GameCore/GUI/DebugHUD.cs index de4a587..fdc5371 100644 --- a/ZoFo/GameCore/GUI/DebugHUD.cs +++ b/ZoFo/GameCore/GUI/DebugHUD.cs @@ -20,7 +20,7 @@ public class DebugHUD public void LoadContent() { - _spriteFont = AppManager.Instance.Content.Load("Fonts\\Font2"); + _spriteFont = AppManager.Instance.Content.Load("Fonts/Font2"); } public void Update(GameTime gameTime) diff --git a/ZoFo/GameCore/GUI/HUD.cs b/ZoFo/GameCore/GUI/HUD.cs index c20ead1..a2b1892 100644 --- a/ZoFo/GameCore/GUI/HUD.cs +++ b/ZoFo/GameCore/GUI/HUD.cs @@ -12,14 +12,8 @@ using MonogameLibrary.UI.Elements; namespace ZoFo.GameCore.GUI; -public class HUD -{ - protected UIManager Manager = new(); - protected List Elements = new(); - private List ActiveElements; - protected DrawableUIElement SelectedElement; - private bool isStartedPrint = false; - private bool isPressed = false; +public class HUD : AbstractGUI +{ private GraphicsDevice graphicsDevice; public virtual void Initialize() @@ -39,6 +33,10 @@ public class HUD public virtual void Draw(SpriteBatch spriteBatch) { - Manager.Draw(spriteBatch); + //Manager.Draw(spriteBatch); + } + + protected override void CreateUI() + { } } \ No newline at end of file diff --git a/ZoFo/GameCore/GUI/MainMenuGUI.cs b/ZoFo/GameCore/GUI/MainMenuGUI.cs index 2c098ac..e0d0c15 100644 --- a/ZoFo/GameCore/GUI/MainMenuGUI.cs +++ b/ZoFo/GameCore/GUI/MainMenuGUI.cs @@ -21,22 +21,22 @@ public class MainMenuGUI : AbstractGUI { int width = AppManager.Instance.CurentScreenResolution.X; int height = AppManager.Instance.CurentScreenResolution.Y; - - menuBackground = new DrawableUIElement(Manager) { rectangle = new Rectangle(0, 0, width, height), mainColor = Color.White, textureName = "Textures\\GUI\\MenuBackground" }; + + menuBackground = new DrawableUIElement(Manager) { rectangle = new Rectangle(0, 0, width, height), mainColor = Color.White, textureName = "Textures/GUI/background/mainMenu" }; Elements.Add(menuBackground); menuBackground.LoadTexture(AppManager.Instance.Content); - - Elements.Add(new Label(Manager) { rectangle = new Rectangle(width / 2 - (int)(width / 8), height / 5, (int)(width / 4), (int)(height / 20)), text = "ZoFo", fontColor = Color.White, mainColor = Color.Transparent, scale = 0.9f, fontName = "Fonts\\Font" }); - - - Button playButton = new Button(Manager) + + Elements.Add(new Label(Manager) { rectangle = new Rectangle(width / 2 - (int)(width / 8), height / 5, (int)(width / 4), (int)(height / 20)), text = "ZoFo", fontColor = Color.Black, mainColor = Color.Transparent, scale = 0.9f, fontName = "Fonts/Font"}); + + + Button playButton = new Button(Manager) { rectangle = new Rectangle(width / 2 - (int)(width / 10), height / 3 + height / 20 + height / 40, (int)(width / 5), (int)(height / 20)), text = "Play", scale = 0.2f, fontColor = Color.White, mainColor = Color.Gray, - fontName = "Fonts\\Font" + fontName = "Fonts/Font" }; playButton.LeftButtonPressed += () => { @@ -50,7 +50,7 @@ public class MainMenuGUI : AbstractGUI scale = 0.2f, fontColor = Color.White, mainColor = Color.Gray, - fontName = "Fonts\\Font" + fontName = "Fonts/Font" }; optionButton.LeftButtonPressed += () => { @@ -64,7 +64,7 @@ public class MainMenuGUI : AbstractGUI scale = 0.2f, fontColor = Color.White, mainColor = Color.Gray, - fontName = "Fonts\\Font" + fontName = "Fonts/Font" }; exitButton.LeftButtonPressed += () => { diff --git a/ZoFo/GameCore/GUI/OptionsGUI.cs b/ZoFo/GameCore/GUI/OptionsGUI.cs index 991c04b..464da7d 100644 --- a/ZoFo/GameCore/GUI/OptionsGUI.cs +++ b/ZoFo/GameCore/GUI/OptionsGUI.cs @@ -21,56 +21,76 @@ public class OptionsGUI : AbstractGUI int width = AppManager.Instance.CurentScreenResolution.X; int height = AppManager.Instance.CurentScreenResolution.Y; - menuBackground = new DrawableUIElement(Manager) { rectangle = new Rectangle(0, 0, width, height), mainColor = Color.White, textureName = "Textures\\GUI\\MenuBackground" }; + menuBackground = new DrawableUIElement(Manager) { rectangle = new Rectangle(0, 0, width, height), mainColor = Color.White, textureName = "Textures/GUI/background/options" }; Elements.Add(menuBackground); menuBackground.LoadTexture(AppManager.Instance.Content); - Elements.Add(new Label(Manager) { rectangle = new Rectangle(width / 2 - (int)(width / 8), height / 5, (int)(width / 4), (int)(height / 20)), text = "Options", fontColor = Color.White, mainColor = Color.Transparent, scale = 0.9f, fontName = "Fonts\\Font"}); + Elements.Add(new Label(Manager) { rectangle = new Rectangle(width / 2 - (int)(width / 8), height / 5, (int)(width / 4), (int)(height / 20)), text = "Options", fontColor = Color.Black, mainColor = Color.Transparent, scale = 0.9f, fontName = "Fonts/Font"}); Label label_OverallVolume = new Label(Manager) - { fontName = "Fonts\\Font", scale = 0.2f, text = "All Volume", fontColor = Color.White, rectangle = new Rectangle(width / 3, height / 3, width / 40, height / 20), mainColor = Color.Transparent, textAligment = MonogameLibrary.UI.Enums.TextAligment.Left }; + { fontName = "Fonts/Font", scale = 0.2f, text = "All Volume", fontColor = Color.Black, rectangle = new Rectangle(width / 3, height / 3, width / 40, height / 20), mainColor = Color.Transparent, textAligment = MonogameLibrary.UI.Enums.TextAligment.Left }; Elements.Add(label_OverallVolume); + + Label label_OverallVolume_Percent = new Label(Manager) + { fontName = "Fonts/Font3", scale = 0.4f, text = "", fontColor = Color.Black, rectangle = new Rectangle(width / 2 + width / 10, height / 3, width / 40, height / 20), mainColor = Color.Transparent, textAligment = MonogameLibrary.UI.Enums.TextAligment.Left }; + Elements.Add(label_OverallVolume_Percent); var slider_OverallVolume = new Slider(Manager) - { rectangle = new Rectangle(width / 2, height / 3, width / 10, height / 20), indentation = 4, textureName = "Textures\\GUI\\Switch_backgrownd", MinValue = 0, MaxValue = 1 }; + { rectangle = new Rectangle(width / 2, height / 3, width / 10, height / 20), indentation = 7, textureName = "Textures/GUI/Switch_backgrownd", MinValue = 0, MaxValue = 1 }; slider_OverallVolume.SetValue(AppManager.Instance.SettingsManager.MainVolume); slider_OverallVolume.SliderChanged += (newVal) => { + label_OverallVolume_Percent.text = Math.Round(slider_OverallVolume.GetSliderValue * 100) + "%"; AppManager.Instance.SettingsManager.SetMainVolume(newVal); }; Elements.Add(slider_OverallVolume); + //-------------------------------------- + Label label_MusicVolume = new Label(Manager) - { fontName = "Fonts\\Font", scale = 0.2f, text = "Music Volume", fontColor = Color.White, rectangle = new Rectangle(width / 3, height / 3 + (height / 20 + height / 40) * 1, width / 40, height / 20), mainColor = Color.Transparent, textAligment = MonogameLibrary.UI.Enums.TextAligment.Left }; + { fontName = "Fonts/Font", scale = 0.2f, text = "Music Volume", fontColor = Color.Black, rectangle = new Rectangle(width / 3, height / 3 + (height / 20 + height / 40) * 1, width / 40, height / 20), mainColor = Color.Transparent, textAligment = MonogameLibrary.UI.Enums.TextAligment.Left }; Elements.Add(label_MusicVolume); + Label label_MusicVolume_Percent = new Label(Manager) + { fontName = "Fonts/Font3", scale = 0.4f, text = "", fontColor = Color.Black, rectangle = new Rectangle(width / 2 + width / 10, height / 3 + (height / 20 + height / 40) * 1, width / 40, height / 20), mainColor = Color.Transparent, textAligment = MonogameLibrary.UI.Enums.TextAligment.Left }; + Elements.Add(label_MusicVolume_Percent); + var slider_MusicVolume = new Slider(Manager) - { rectangle = new Rectangle(width / 2, height / 3 + (height / 20 + height / 40) * 1, width / 10, height / 20), indentation = 4, textureName = "Textures\\GUI\\Switch_backgrownd", MinValue = 0, MaxValue = 1 }; + { rectangle = new Rectangle(width / 2, height / 3 + (height / 20 + height / 40) * 1, width / 10, height / 20), indentation = 7, textureName = "Textures/GUI/Switch_backgrownd", MinValue = 0, MaxValue = 1 }; slider_MusicVolume.SetValue(AppManager.Instance.SettingsManager.MusicVolume); slider_MusicVolume.SliderChanged += (newVal) => { + label_MusicVolume_Percent.text = Math.Round(slider_MusicVolume.GetSliderValue * 100) + "%"; AppManager.Instance.SettingsManager.SetMusicVolume(newVal); }; Elements.Add(slider_MusicVolume); + //-------------------------------------- Label label_EffectsVolume = new Label(Manager) - { fontName = "Fonts\\Font", scale = 0.2f, text = "Effects Volume", fontColor = Color.White, rectangle = new Rectangle(width / 3, height / 3 + (height / 20 + height / 40) * 2, width / 40, height / 20), mainColor = Color.Transparent, textAligment = MonogameLibrary.UI.Enums.TextAligment.Left }; + { fontName = "Fonts/Font", scale = 0.2f, text = "Effects Volume", fontColor = Color.Black, rectangle = new Rectangle(width / 3, height / 3 + (height / 20 + height / 40) * 2, width / 40, height / 20), mainColor = Color.Transparent, textAligment = MonogameLibrary.UI.Enums.TextAligment.Left }; Elements.Add(label_EffectsVolume); + + Label label_EffectsVolume_Percent = new Label(Manager) + { fontName = "Fonts/Font3", scale = 0.4f, text = "", fontColor = Color.Black, rectangle = new Rectangle(width / 2 + width / 10, height / 3 + (height / 20 + height / 40) * 2, width / 40, height / 20), mainColor = Color.Transparent, textAligment = MonogameLibrary.UI.Enums.TextAligment.Left }; + Elements.Add(label_EffectsVolume_Percent); var slider_EffectsVolume = new Slider(Manager) - { rectangle = new Rectangle(width / 2, height / 3 + (height / 20 + height / 40) * 2, width / 10, height / 20), indentation = 4, textureName = "Textures\\GUI\\Switch_backgrownd", MinValue = 0, MaxValue = 1 }; + { rectangle = new Rectangle(width / 2, height / 3 + (height / 20 + height / 40) * 2, width / 10, height / 20), indentation = 7, textureName = "Textures/GUI/Switch_backgrownd", MinValue = 0, MaxValue = 1 }; slider_EffectsVolume.SetValue(AppManager.Instance.SettingsManager.SoundEffectsVolume); slider_EffectsVolume.SliderChanged += (newVal) => { + label_EffectsVolume_Percent.text = Math.Round(slider_EffectsVolume.GetSliderValue * 100) + "%"; AppManager.Instance.SettingsManager.SetSoundEffectsVolume(newVal); }; Elements.Add(slider_EffectsVolume); + //-------------------------------------- + Label lblSwitchMode = new Label(Manager) - { fontName = "Fonts\\Font", scale = 0.2f, text = "Resolution set", fontColor = Color.White, rectangle = new Rectangle(width / 3, height / 3 + (height / 20 + height / 40) * 3, width / 40, height / 20), mainColor = Color.Transparent, textAligment = MonogameLibrary.UI.Enums.TextAligment.Left }; + { fontName = "Fonts/Font", scale = 0.2f, text = "Resolution set", fontColor = Color.Black, rectangle = new Rectangle(width / 3, height / 3 + (height / 20 + height / 40) * 3, width / 40, height / 20), mainColor = Color.Transparent, textAligment = MonogameLibrary.UI.Enums.TextAligment.Left }; Elements.Add(lblSwitchMode); //var button_left_right_mode = new CheckBox(Manager) { rectangle = new Rectangle(rightBorder - checkboxlength, lblSwitchMode.rectangle.Y - 12, checkboxlength, checkboxlength) }; @@ -79,7 +99,7 @@ public class OptionsGUI : AbstractGUI Label label_IsFullScreen = new Label(Manager) - { fontName = "Fonts\\Font", scale = 0.2f, text = "Full Screen", fontColor = Color.White, rectangle = new Rectangle(width / 3, height / 3 + (height / 20 + height / 40) * 4, width / 40, width / 40), mainColor = Color.Transparent, textAligment = MonogameLibrary.UI.Enums.TextAligment.Left }; + { fontName = "Fonts/Font", scale = 0.2f, text = "Full Screen", fontColor = Color.Black, rectangle = new Rectangle(width / 3, height / 3 + (height / 20 + height / 40) * 4, width / 40, width / 40), mainColor = Color.Transparent, textAligment = MonogameLibrary.UI.Enums.TextAligment.Left }; Elements.Add(label_IsFullScreen); var button_FullScreen = new CheckBox(Manager) { rectangle = new Rectangle(width / 2, height / 3 + (height / 20 + height / 40) * 4, width / 40, width / 40) }; @@ -90,9 +110,10 @@ public class OptionsGUI : AbstractGUI }; Elements.Add(button_FullScreen); - + //-------------------------------------- + Button bTExit = new Button(Manager) - { fontName = "Fonts\\Font3", scale = 0.4f, text = "<-", fontColor = Color.Black, mainColor = Color.Transparent, rectangle = new Rectangle(width / 30, height / 30, width / 40, width / 40), textureName = "Textures\\GUI\\checkboxs_off"}; + { fontName = "Fonts/Font3", scale = 0.4f, text = "<-", fontColor = Color.Black, mainColor = Color.Transparent, rectangle = new Rectangle(width / 30, height / 30, width / 40, width / 40), textureName = "Textures/GUI/checkboxs_off"}; Elements.Add(bTExit); bTExit.LeftButtonPressed += () => { diff --git a/ZoFo/GameCore/GUI/SelectModeMenu.cs b/ZoFo/GameCore/GUI/SelectModeMenu.cs index f192252..ad4db7f 100644 --- a/ZoFo/GameCore/GUI/SelectModeMenu.cs +++ b/ZoFo/GameCore/GUI/SelectModeMenu.cs @@ -21,11 +21,11 @@ public class SelectModeMenu : AbstractGUI int width = AppManager.Instance.CurentScreenResolution.X; int height = AppManager.Instance.CurentScreenResolution.Y; - menuBackground = new DrawableUIElement(Manager) { rectangle = new Rectangle(0, 0, width, height), mainColor = Color.White, textureName = "Textures\\GUI\\background\\selectMode" }; + menuBackground = new DrawableUIElement(Manager) { rectangle = new Rectangle(0, 0, width, height), mainColor = Color.White, textureName = "Textures/GUI/background/selectMode" }; Elements.Add(menuBackground); menuBackground.LoadTexture(AppManager.Instance.Content); - Elements.Add(new Label(Manager) { rectangle = new Rectangle(width / 2 - (int)(width / 8), height / 6, (int)(width / 4), (int)(height / 20)), text = "Select mode", fontColor = Color.White, mainColor = Color.Transparent, scale = 0.9f, fontName = "Fonts\\Font"}); + Elements.Add(new Label(Manager) { rectangle = new Rectangle(width / 2 - (int)(width / 8), height / 6, (int)(width / 4), (int)(height / 20)), text = "Select mode", fontColor = Color.White, mainColor = Color.Transparent, scale = 0.9f, fontName = "Fonts/Font"}); Button singleButton = new Button(Manager) { @@ -34,18 +34,24 @@ public class SelectModeMenu : AbstractGUI scale = 0.3f, fontColor = Color.White, mainColor = Color.Gray, - fontName = "Fonts\\Font" + fontName = "Fonts/Font" }; singleButton.LeftButtonPressed += () => { // single - Server server = new Server(); //Server Logic SinglePlayer + Server server = new Server(); Client client = new Client(); server.CreateRoom(1); client.JoinYourself(); + AppManager.Instance.SetServer(server); AppManager.Instance.SetClient(client); AppManager.Instance.ChangeState(GameState.HostPlaying); + AppManager.Instance.SetGUI(new HUD()); + + //server.CreateRoom(1); + //client.JoinYourself(); + server.StartGame(); string key = client.IsConnected.ToString(); AppManager.Instance.debugHud.Set(key,"SinglePlayer"); @@ -59,7 +65,7 @@ public class SelectModeMenu : AbstractGUI scale = 0.3f, fontColor = Color.White, mainColor = Color.Gray, - fontName = "Fonts\\Font" + fontName = "Fonts/Font" }; optionButton.LeftButtonPressed += () => { @@ -78,7 +84,7 @@ public class SelectModeMenu : AbstractGUI Elements.Add(optionButton); Button bTExit = new Button(Manager) - { fontName = "Fonts\\Font3", scale = 0.4f, text = "<-", fontColor = Color.Black, mainColor = Color.Transparent, rectangle = new Rectangle(width / 30, height / 30, width / 40, width / 40), textureName = "Textures\\GUI\\checkboxs_off"}; + { fontName = "Fonts/Font3", scale = 0.4f, text = "<-", fontColor = Color.Black, mainColor = Color.Transparent, rectangle = new Rectangle(width / 30, height / 30, width / 40, width / 40), textureName = "Textures/GUI/checkboxs_off"}; Elements.Add(bTExit); bTExit.LeftButtonPressed += () => { diff --git a/ZoFo/GameCore/GUI/SelectingServerGUI.cs b/ZoFo/GameCore/GUI/SelectingServerGUI.cs index a108a29..5553946 100644 --- a/ZoFo/GameCore/GUI/SelectingServerGUI.cs +++ b/ZoFo/GameCore/GUI/SelectingServerGUI.cs @@ -21,11 +21,11 @@ public class SelectingServerGUI : AbstractGUI int width = AppManager.Instance.CurentScreenResolution.X; int height = AppManager.Instance.CurentScreenResolution.Y; - menuBackground = new DrawableUIElement(Manager) { rectangle = new Rectangle(0, 0, width, height), mainColor = Color.White, textureName = "Textures\\GUI\\background\\join" }; + menuBackground = new DrawableUIElement(Manager) { rectangle = new Rectangle(0, 0, width, height), mainColor = Color.White, textureName = "Textures/GUI/background/join" }; Elements.Add(menuBackground); menuBackground.LoadTexture(AppManager.Instance.Content); - Elements.Add(new Label(Manager) { rectangle = new Rectangle(width / 2 - (int)(width / 8), height / 7, (int)(width / 4), (int)(height / 20)), text = "Select server", fontColor = Color.White, mainColor = Color.Transparent, scale = 0.9f, fontName = "Fonts\\Font"}); + Elements.Add(new Label(Manager) { rectangle = new Rectangle(width / 2 - (int)(width / 8), height / 7, (int)(width / 4), (int)(height / 20)), text = "Select server", fontColor = Color.White, mainColor = Color.Transparent, scale = 0.9f, fontName = "Fonts/Font"}); TextBox ipBox = new TextBox(Manager) { @@ -35,7 +35,7 @@ public class SelectingServerGUI : AbstractGUI fontColor = Color.White, mainColor = Color.Gray, textAligment = MonogameLibrary.UI.Enums.TextAligment.Left, - fontName = "Fonts\\Font" + fontName = "Fonts/Font" }; ipBox.TextChanged += input => { if (input == "ip") @@ -58,7 +58,7 @@ public class SelectingServerGUI : AbstractGUI scale = 0.3f, fontColor = Color.White, mainColor = Color.Gray, - fontName = "Fonts\\Font" + fontName = "Fonts/Font" }; joinButton.LeftButtonPressed += () => { @@ -75,7 +75,7 @@ public class SelectingServerGUI : AbstractGUI scale = 0.3f, fontColor = Color.White, mainColor = Color.Gray, - fontName = "Fonts\\Font" + fontName = "Fonts/Font" }; hostButton.LeftButtonPressed += () => { @@ -87,7 +87,7 @@ public class SelectingServerGUI : AbstractGUI Elements.Add(hostButton); Button bTExit = new Button(Manager) - { fontName = "Fonts\\Font3", scale = 0.4f, text = "<-", fontColor = Color.Black, mainColor = Color.Transparent, rectangle = new Rectangle(width / 30, height / 30, width / 40, width / 40), textureName = "Textures\\GUI\\checkboxs_off"}; + { fontName = "Fonts/Font3", scale = 0.4f, text = "<-", fontColor = Color.Black, mainColor = Color.Transparent, rectangle = new Rectangle(width / 30, height / 30, width / 40, width / 40), textureName = "Textures/GUI/checkboxs_off"}; Elements.Add(bTExit); bTExit.LeftButtonPressed += () => { diff --git a/ZoFo/GameCore/GUI/WaitingForPlayersGUI.cs b/ZoFo/GameCore/GUI/WaitingForPlayersGUI.cs index 5c9250d..08d80eb 100644 --- a/ZoFo/GameCore/GUI/WaitingForPlayersGUI.cs +++ b/ZoFo/GameCore/GUI/WaitingForPlayersGUI.cs @@ -27,11 +27,11 @@ public class WaitingForPlayersGUI : AbstractGUI int width = AppManager.Instance.CurentScreenResolution.X; int height = AppManager.Instance.CurentScreenResolution.Y; - menuBackground = new DrawableUIElement(Manager) { rectangle = new Rectangle(0, 0, width, height), mainColor = Color.White, textureName = "Textures\\GUI\\background\\Waiting" }; + menuBackground = new DrawableUIElement(Manager) { rectangle = new Rectangle(0, 0, width, height), mainColor = Color.White, textureName = "Textures/GUI/background/Waiting" }; Elements.Add(menuBackground); menuBackground.LoadTexture(AppManager.Instance.Content); - Elements.Add(new Label(Manager) { rectangle = new Rectangle(width / 2 - (int)(width / 8), height / 7, (int)(width / 4), (int)(height / 20)), text = "Waiting", fontColor = Color.White, mainColor = Color.Transparent, scale = 0.9f, fontName = "Fonts\\Font"}); + Elements.Add(new Label(Manager) { rectangle = new Rectangle(width / 2 - (int)(width / 8), height / 7, (int)(width / 4), (int)(height / 20)), text = "Waiting", fontColor = Color.White, mainColor = Color.Transparent, scale = 0.9f, fontName = "Fonts/Font"}); if (isHost) { @@ -42,7 +42,7 @@ public class WaitingForPlayersGUI : AbstractGUI scale = 0.3f, fontColor = Color.White, mainColor = Color.Gray, - fontName = "Fonts\\Font" + fontName = "Fonts/Font" }; startButton.LeftButtonPressed += () => { @@ -54,7 +54,7 @@ public class WaitingForPlayersGUI : AbstractGUI } Button bTExit = new Button(Manager) - { fontName = "Fonts\\Font3", scale = 0.4f, text = "<-", fontColor = Color.Black, mainColor = Color.Transparent, rectangle = new Rectangle(width / 30, height / 30, width / 40, width / 40), textureName = "Textures\\GUI\\checkboxs_off"}; + { fontName = "Fonts/Font3", scale = 0.4f, text = "<-", fontColor = Color.Black, mainColor = Color.Transparent, rectangle = new Rectangle(width / 30, height / 30, width / 40, width / 40), textureName = "Textures/GUI/checkboxs_off"}; Elements.Add(bTExit); bTExit.LeftButtonPressed += () => { diff --git a/ZoFo/GameCore/GameManagers/AppManager.cs b/ZoFo/GameCore/GameManagers/AppManager.cs index 1eda28b..afff18d 100644 --- a/ZoFo/GameCore/GameManagers/AppManager.cs +++ b/ZoFo/GameCore/GameManagers/AppManager.cs @@ -81,8 +81,9 @@ namespace ZoFo.GameCore.GameManagers _spriteBatch = new SpriteBatch(GraphicsDevice); debugHud.LoadContent(); currentGUI.LoadContent(); - - + animationBuilder = new AnimationBuilder(); + animationBuilder.LoadAnimations(); + } @@ -120,6 +121,7 @@ namespace ZoFo.GameCore.GameManagers currentGUI.Draw(_spriteBatch); debugHud.Draw(_spriteBatch); + _spriteBatch.Begin(); switch (gamestate) { case GameState.ClientPlaying: @@ -130,6 +132,7 @@ namespace ZoFo.GameCore.GameManagers default: break; } + _spriteBatch.End(); base.Draw(gameTime); } diff --git a/ZoFo/GameCore/GameManagers/CollisionManager/CollisionManager.cs b/ZoFo/GameCore/GameManagers/CollisionManager/CollisionManager.cs index 8cf63f2..5242d4a 100644 --- a/ZoFo/GameCore/GameManagers/CollisionManager/CollisionManager.cs +++ b/ZoFo/GameCore/GameManagers/CollisionManager/CollisionManager.cs @@ -17,7 +17,10 @@ namespace ZoFo.GameCore.GameManagers.CollisionManager public List CollisionComponent; public List TriggerComponent; - + public void RegisterComponent() + { + + } public static bool CheckComponentCollision(List collisionComponents, CollisionComponent component) { diff --git a/ZoFo/GameCore/GameManagers/InputManager.cs b/ZoFo/GameCore/GameManagers/InputManager.cs index 0dfbc1b..4ee0980 100644 --- a/ZoFo/GameCore/GameManagers/InputManager.cs +++ b/ZoFo/GameCore/GameManagers/InputManager.cs @@ -11,6 +11,7 @@ using System.Threading.Tasks; namespace ZoFo.GameCore.GameManagers { public enum ScopeState { Left, Right, Straight, Back, StraightLeft, StraightRight, BackLeft, BackRight } + public class InputManager { public delegate void Delegat(); diff --git a/ZoFo/GameCore/GameManagers/MapManager/MapElements/Layer.cs b/ZoFo/GameCore/GameManagers/MapManager/MapElements/Layer.cs index ef20eb8..09f9894 100644 --- a/ZoFo/GameCore/GameManagers/MapManager/MapElements/Layer.cs +++ b/ZoFo/GameCore/GameManagers/MapManager/MapElements/Layer.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; +using System.Text.Json.Serialization; using System.Threading.Tasks; namespace ZoFo.GameCore.GameManagers.MapManager.MapElements diff --git a/ZoFo/GameCore/GameManagers/MapManager/MapElements/TileMap.cs b/ZoFo/GameCore/GameManagers/MapManager/MapElements/TileMap.cs index 6c7e958..dda6f25 100644 --- a/ZoFo/GameCore/GameManagers/MapManager/MapElements/TileMap.cs +++ b/ZoFo/GameCore/GameManagers/MapManager/MapElements/TileMap.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; +using System.Text.Json.Serialization; using System.Threading.Tasks; namespace ZoFo.GameCore.GameManagers.MapManager.MapElements diff --git a/ZoFo/GameCore/GameManagers/MapManager/MapManager.cs b/ZoFo/GameCore/GameManagers/MapManager/MapManager.cs index 408230b..d65d74c 100644 --- a/ZoFo/GameCore/GameManagers/MapManager/MapManager.cs +++ b/ZoFo/GameCore/GameManagers/MapManager/MapManager.cs @@ -1,6 +1,7 @@ using Microsoft.Xna.Framework; using System; using System.Collections.Generic; +using System.Diagnostics; using System.IO; using System.Linq; using System.Security.Cryptography; @@ -17,8 +18,8 @@ namespace ZoFo.GameCore.GameManagers.MapManager public class MapManager { - private static readonly string _templatePath = "TileMaps/{0}.tmj"; - private static readonly float _scale = 1.0f; + private static readonly string _templatePath = "Content/MapData/TileMaps/{0}.tmj"; + //private static readonly float _scale = 1.0f; private List _tileSets = new List(); /// @@ -28,13 +29,17 @@ namespace ZoFo.GameCore.GameManagers.MapManager public void LoadMap(string mapName = "main") { // Загрузка TileMap - TileMap tileMap = JsonSerializer.Deserialize(File.ReadAllText(string.Format(_templatePath, mapName))); + var options = new JsonSerializerOptions + { + PropertyNameCaseInsensitive = true + }; + TileMap tileMap = JsonSerializer.Deserialize(File.ReadAllText(string.Format(_templatePath, mapName)), options); // Загрузка TileSet-ов по TileSetInfo List tileSets = new List(); - foreach (TileSetInfo tileSetInfo in tileMap.TileSets) + foreach (TileSetInfo tileSetInfo in tileMap.TileSets) { - TileSet tileSet = LoadTileSet(tileSetInfo.Source); + TileSet tileSet = LoadTileSet(Path.Combine("Content", "MapData", "TileMaps", tileSetInfo.Source)); tileSet.FirstGid = tileSetInfo.FirstGid; tileSets.Add(tileSet); } @@ -47,22 +52,24 @@ namespace ZoFo.GameCore.GameManagers.MapManager { foreach (var tileSet in tileSets) { - if (tileSet.FirstGid - chunk.Data[i] < 0) + if (tileSet.FirstGid - chunk.Data[i] <= 0) { int number = chunk.Data[i] - tileSet.FirstGid; - int relativeColumn = number % tileSet.Columns * tileSet.TileWidth; - int relativeRow = number / tileSet.Columns * tileSet.TileHeight; + int relativeColumn = number % tileSet.Columns; + int relativeRow = number / tileSet.Columns; Rectangle sourceRectangle = new Rectangle(relativeColumn * tileSet.TileWidth, relativeRow * tileSet.TileHeight, - relativeColumn * tileSet.TileWidth + tileSet.TileWidth, relativeRow * tileSet.TileHeight + tileSet.TileHeight); + tileSet.TileWidth, tileSet.TileHeight); - Vector2 position = new Vector2(i % chunk.Width, i / chunk.Height); + Vector2 position = new Vector2((i % chunk.Width) * tileSet.TileWidth + chunk.X * tileSet.TileWidth, + (i / chunk.Height) * tileSet.TileHeight + chunk.Y * tileSet.TileHeight) ; switch (layer.Class) { case "Tile": - new MapObject(position, new Vector2(tileSet.TileWidth * _scale, tileSet.TileHeight * _scale), sourceRectangle, tileSet.Name); + AppManager.Instance.server.RegisterGameObject(new MapObject(position, new Vector2(tileSet.TileWidth, tileSet.TileHeight), + sourceRectangle, "Textures/TileSetImages/" + Path.GetFileName(tileSet.Image).Replace(".png", ""))); break; case "StopObject": // new StopObject(position, new Vector2(tileSet.TileWidth * _scale, tileSet.TileHeight * _scale), sourceRectangle, tileSet.Name); @@ -87,8 +94,12 @@ namespace ZoFo.GameCore.GameManagers.MapManager { using (StreamReader reader = new StreamReader(path)) { + var options = new JsonSerializerOptions //TODO Remove + { + PropertyNameCaseInsensitive = true + }; string data = reader.ReadToEnd(); - return JsonSerializer.Deserialize(data); + return JsonSerializer.Deserialize(data, options); } } } diff --git a/ZoFo/GameCore/GameManagers/MapManager/TileMaps/main.tmj b/ZoFo/GameCore/GameManagers/MapManager/TileMaps/main.tmj deleted file mode 100644 index a5d33d8..0000000 --- a/ZoFo/GameCore/GameManagers/MapManager/TileMaps/main.tmj +++ /dev/null @@ -1,167 +0,0 @@ -{ "compressionlevel":-1, - "height":20, - "infinite":true, - "layers":[ - { - "chunks":[ - { - "data":[24, 24, 24, 28, 29, 24, 24, 24, 28, 46, 29, 24, 25, 115, 45, 46, - 24, 24, 24, 25, 23, 24, 24, 24, 50, 2, 51, 24, 50, 2, 2, 2, - 24, 24, 24, 50, 32, 29, 24, 24, 24, 24, 24, 24, 24, 24, 24, 28, - 28, 29, 24, 28, 10, 32, 29, 24, 24, 28, 46, 29, 24, 24, 24, 50, - 47, 23, 24, 50, 32, 10, 32, 46, 29, 50, 2, 51, 24, 24, 24, 24, - 1, 32, 29, 90, 25, 23, 50, 2, 32, 29, 24, 90, 28, 29, 24, 24, - 51, 50, 32, 29, 50, 51, 90, 24, 25, 45, 46, 29, 25, 23, 24, 90, - 24, 24, 50, 32, 46, 29, 24, 28, 10, 2, 2, 51, 50, 51, 24, 90, - 24, 24, 24, 50, 2, 32, 46, 10, 32, 29, 24, 90, 24, 24, 24, 90, - 29, 24, 89, 24, 24, 50, 3, 23, 50, 32, 46, 46, 46, 46, 29, 24, - 51, 24, 24, 28, 29, 24, 25, 23, 24, 25, 1, 2, 3, 111, 45, 29, - 24, 90, 24, 50, 51, 24, 25, 23, 28, 47, 23, 89, 50, 3, 115, 23, - 24, 24, 24, 24, 24, 89, 50, 32, 47, 1, 51, 24, 24, 50, 2, 51, - 28, 29, 24, 24, 24, 24, 28, 10, 2, 51, 24, 24, 24, 24, 24, 28, - 10, 32, 29, 24, 24, 24, 25, 23, 28, 29, 90, 24, 24, 90, 24, 50, - 32, 10, 51, 24, 24, 24, 50, 32, 10, 32, 29, 24, 90, 28, 29, 24], - "height":16, - "width":16, - "x":-16, - "y":-16 - }, - { - "data":[10, 51, 24, 90, 24, 25, 23, 28, 29, 24, 24, 24, 24, 24, 24, 24, - 51, 24, 28, 29, 24, 50, 32, 10, 51, 24, 24, 24, 24, 24, 24, 24, - 29, 28, 10, 32, 46, 29, 50, 32, 29, 24, 24, 24, 24, 24, 24, 24, - 51, 25, 23, 50, 2, 32, 29, 25, 23, 24, 24, 28, 29, 24, 90, 24, - 24, 25, 23, 24, 24, 25, 23, 50, 51, 24, 24, 50, 32, 29, 24, 90, - 24, 50, 32, 29, 90, 25, 45, 29, 24, 24, 24, 24, 50, 51, 24, 89, - 24, 89, 50, 51, 24, 25, 114, 23, 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 28, 29, 24, 50, 2, 51, 24, 24, 90, 28, 29, 24, 24, 28, - 24, 24, 25, 23, 89, 24, 24, 24, 28, 46, 29, 25, 23, 24, 24, 50, - 28, 46, 10, 51, 24, 28, 46, 29, 25, 111, 45, 10, 51, 28, 29, 24, - 50, 2, 51, 24, 24, 25, 115, 45, 10, 3, 1, 51, 24, 25, 23, 24, - 24, 24, 24, 24, 24, 50, 2, 2, 32, 10, 51, 24, 90, 25, 23, 24, - 24, 24, 24, 24, 24, 24, 24, 24, 50, 51, 24, 24, 24, 25, 23, 24, - 46, 29, 24, 24, 24, 24, 24, 89, 24, 24, 24, 28, 46, 47, 23, 90, - 2, 32, 29, 24, 24, 28, 46, 46, 29, 24, 24, 25, 1, 3, 23, 89, - 24, 50, 32, 29, 24, 25, 1, 3, 23, 24, 89, 50, 32, 10, 51, 24], - "height":16, - "width":16, - "x":0, - "y":-16 - }, - { - "data":[24, 24, 24, 24, 90, 24, 89, 24, 89, 24, 50, 51, 89, 24, 24, 24, - 24, 28, 29, 28, 29, 24, 24, 24, 24, 28, 29, 24, 24, 24, 28, 29, - 24, 25, 23, 50, 51, 24, 24, 28, 29, 50, 51, 24, 24, 24, 25, 45, - 90, 50, 51, 28, 29, 24, 24, 25, 23, 24, 24, 28, 29, 24, 50, 3, - 24, 24, 28, 10, 51, 90, 90, 50, 51, 24, 24, 50, 51, 24, 24, 50, - 24, 24, 25, 45, 29, 24, 28, 29, 24, 24, 24, 24, 24, 28, 29, 24, - 90, 24, 50, 2, 51, 28, 10, 51, 90, 24, 28, 29, 24, 25, 45, 46, - 29, 90, 24, 24, 24, 50, 51, 24, 24, 28, 10, 32, 46, 10, 3, 1, - 32, 29, 24, 90, 24, 24, 24, 24, 28, 47, 23, 50, 2, 51, 50, 51, - 25, 23, 24, 24, 28, 46, 46, 46, 47, 114, 45, 29, 24, 24, 24, 24, - 50, 32, 29, 24, 50, 3, 111, 111, 115, 111, 1, 32, 29, 24, 24, 24, - 24, 50, 51, 24, 28, 10, 2, 2, 2, 2, 32, 10, 51, 24, 24, 89, - 24, 24, 89, 90, 25, 23, 24, 24, 24, 24, 50, 32, 46, 46, 29, 89, - 24, 24, 24, 90, 25, 23, 89, 24, 28, 29, 90, 50, 2, 2, 51, 24, - 24, 24, 24, 28, 10, 51, 24, 28, 47, 45, 29, 24, 24, 24, 24, 24, - 24, 24, 24, 25, 23, 24, 90, 50, 2, 2, 32, 46, 46, 46, 46, 46], - "height":16, - "width":16, - "x":16, - "y":-16 - }, - { - "data":[10, 32, 46, 29, 24, 24, 24, 25, 23, 50, 32, 29, 24, 50, 32, 46, - 51, 50, 2, 32, 29, 24, 24, 25, 45, 29, 25, 23, 24, 24, 25, 1, - 24, 24, 24, 25, 23, 28, 46, 10, 2, 51, 50, 51, 24, 24, 50, 51, - 90, 89, 90, 50, 51, 50, 2, 51, 24, 24, 28, 29, 90, 24, 24, 24, - 90, 28, 46, 29, 90, 24, 24, 24, 90, 24, 50, 51, 90, 24, 90, 28, - 29, 50, 2, 51, 24, 24, 24, 89, 24, 24, 24, 24, 24, 89, 24, 50, - 23, 24, 24, 28, 46, 29, 90, 90, 24, 89, 24, 28, 29, 24, 24, 24, - 32, 46, 29, 25, 115, 45, 29, 24, 90, 24, 24, 25, 23, 24, 24, 28, - 10, 2, 32, 47, 115, 1, 51, 24, 24, 24, 24, 25, 23, 24, 28, 10, - 32, 29, 50, 2, 2, 51, 24, 24, 24, 24, 24, 25, 23, 28, 10, 51, - 50, 51, 89, 24, 24, 89, 24, 28, 29, 24, 24, 50, 32, 10, 32, 46, - 24, 24, 90, 90, 28, 46, 29, 50, 51, 24, 24, 24, 25, 23, 25, 115, - 24, 90, 24, 24, 50, 2, 32, 29, 24, 24, 90, 24, 25, 45, 10, 2, - 24, 24, 24, 24, 24, 24, 50, 32, 29, 24, 24, 28, 10, 3, 23, 24, - 90, 24, 24, 24, 24, 89, 90, 50, 32, 29, 90, 50, 51, 50, 32, 46, - 46, 29, 24, 90, 24, 24, 24, 24, 50, 51, 28, 29, 24, 24, 50, 2], - "height":16, - "width":16, - "x":-16, - "y":0 - }, - { - "data":[46, 46, 10, 32, 46, 47, 23, 25, 23, 89, 24, 24, 25, 23, 90, 24, - 2, 2, 32, 47, 1, 2, 51, 25, 23, 24, 28, 29, 50, 32, 29, 24, - 24, 90, 50, 3, 23, 24, 28, 10, 51, 28, 47, 45, 29, 25, 23, 28, - 24, 24, 24, 50, 51, 28, 47, 23, 24, 50, 3, 114, 45, 10, 51, 50, - 29, 24, 24, 89, 24, 25, 114, 45, 46, 46, 10, 2, 2, 32, 29, 89, - 51, 24, 24, 24, 24, 50, 3, 111, 115, 115, 23, 24, 24, 50, 32, 29, - 24, 28, 29, 24, 24, 24, 25, 1, 2, 2, 51, 90, 24, 90, 50, 51, - 29, 50, 32, 29, 28, 29, 25, 23, 24, 24, 89, 28, 29, 24, 24, 24, - 51, 24, 50, 51, 50, 32, 10, 32, 46, 29, 24, 50, 51, 24, 90, 24, - 24, 24, 24, 24, 89, 50, 32, 10, 2, 32, 46, 29, 89, 28, 29, 24, - 29, 90, 24, 24, 24, 24, 50, 51, 28, 10, 3, 23, 28, 10, 51, 24, - 23, 89, 24, 24, 90, 24, 24, 24, 50, 32, 10, 51, 50, 51, 24, 24, - 51, 24, 24, 24, 24, 24, 24, 24, 24, 50, 32, 46, 46, 29, 28, 46, - 24, 24, 24, 90, 24, 24, 24, 24, 24, 24, 50, 3, 1, 32, 47, 115, - 46, 29, 24, 89, 24, 24, 24, 89, 24, 24, 24, 25, 45, 10, 3, 111, - 2, 51, 28, 29, 28, 29, 24, 28, 46, 46, 46, 10, 2, 51, 50, 2], - "height":16, - "width":16, - "x":0, - "y":0 - }, - { - "data":[28, 29, 28, 10, 32, 46, 29, 24, 24, 28, 10, 2, 2, 2, 2, 2, - 50, 51, 50, 51, 25, 115, 45, 46, 29, 50, 51, 24, 24, 24, 24, 24, - 29, 24, 89, 24, 50, 3, 115, 114, 23, 24, 24, 24, 24, 24, 24, 24, - 51, 90, 24, 89, 24, 50, 2, 2, 51, 24, 89, 24, 24, 28, 46, 29, - 24, 90, 24, 24, 89, 24, 90, 28, 29, 24, 24, 24, 28, 10, 2, 51, - 24, 24, 24, 24, 28, 29, 90, 50, 51, 28, 29, 24, 25, 23, 24, 24, - 28, 29, 24, 24, 50, 32, 29, 28, 29, 50, 51, 89, 50, 32, 29, 24, - 50, 51, 24, 24, 24, 50, 32, 10, 51, 24, 89, 24, 24, 25, 23, 24, - 24, 24, 24, 24, 24, 24, 50, 32, 29, 24, 24, 24, 24, 50, 51, 24, - 90, 24, 24, 24, 24, 24, 24, 25, 45, 29, 24, 24, 24, 89, 28, 29, - 24, 24, 24, 24, 28, 29, 24, 25, 1, 51, 24, 24, 24, 24, 50, 32, - 28, 29, 28, 29, 50, 32, 46, 10, 51, 28, 29, 24, 24, 24, 24, 50, - 47, 45, 10, 51, 24, 50, 2, 32, 46, 47, 23, 24, 89, 90, 24, 24, - 111, 115, 23, 24, 24, 90, 24, 50, 2, 2, 32, 29, 24, 89, 28, 46, - 1, 2, 51, 28, 46, 46, 29, 24, 28, 29, 50, 32, 29, 28, 47, 111, - 51, 24, 24, 50, 3, 114, 23, 24, 50, 32, 46, 47, 23, 25, 111, 111], - "height":16, - "width":16, - "x":16, - "y":0 - }], - "class":"Tile", - "height":48, - "id":1, - "name":"\u0421\u043b\u043e\u0439 \u0442\u0430\u0439\u043b\u043e\u0432 1", - "opacity":1, - "startx":-16, - "starty":-32, - "type":"tilelayer", - "visible":true, - "width":48, - "x":0, - "y":0 - }], - "nextlayerid":2, - "nextobjectid":1, - "orientation":"orthogonal", - "renderorder":"right-down", - "tiledversion":"1.10.2", - "tileheight":16, - "tilesets":[ - { - "firstgid":1, - "source":"..\/TileSets\/TileSet 1.tsj" - }], - "tilewidth":16, - "type":"map", - "version":"1.10", - "width":30 -} \ No newline at end of file diff --git a/ZoFo/GameCore/GameManagers/NetworkManager/ClientNetworkManager.cs b/ZoFo/GameCore/GameManagers/NetworkManager/ClientNetworkManager.cs index eeb69b3..c178154 100644 --- a/ZoFo/GameCore/GameManagers/NetworkManager/ClientNetworkManager.cs +++ b/ZoFo/GameCore/GameManagers/NetworkManager/ClientNetworkManager.cs @@ -18,7 +18,7 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager private int port = 7632; private EndPoint endPoint; private Socket socket; - List updates = new List(); + List updates = new List(); public delegate void OnDataSent(string Data); public event OnDataSent GetDataSent; // event public bool IsConnected { get { return socket.Connected; } } @@ -28,6 +28,11 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager Init(); } + public bool SocketConnected() + { + return socket.Connected; + } + public void Init() //create endPoint, socket { socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); @@ -39,7 +44,7 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager socket.Send(bytes); } - public void AddData(IUpdateData UpdateData) + public void AddData(UpdateData UpdateData) { updates.Add(UpdateData); } diff --git a/ZoFo/GameCore/GameManagers/NetworkManager/ServerNetworkManager.cs b/ZoFo/GameCore/GameManagers/NetworkManager/ServerNetworkManager.cs index b4213e7..658605e 100644 --- a/ZoFo/GameCore/GameManagers/NetworkManager/ServerNetworkManager.cs +++ b/ZoFo/GameCore/GameManagers/NetworkManager/ServerNetworkManager.cs @@ -1,9 +1,11 @@ -using Microsoft.Xna.Framework.Graphics; +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Graphics.PackedVector; using System; using System.Collections.Generic; using System.Linq; using System.Net; +using System.Net.Http; using System.Net.Sockets; using System.Text; using System.Text.Json; @@ -21,7 +23,7 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager private IPEndPoint endPoint; private Socket socket; private List clients; - private List updates; + public List updates; public delegate void OnDataSend(string data); public event OnDataSend GetDataSend; // event Dictionary managerThread; @@ -38,7 +40,7 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); managerThread = new Dictionary(); clients = new List(); - updates = new List(); + updates = new List(); managerThread = new Dictionary(); socket.Bind(endPoint); } @@ -48,19 +50,33 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager /// public void SendData() { - string data = JsonSerializer.Serialize(updates); + for (int i = 0; i < updates.Count; i++) + { + + AppManager.Instance.client.GotData(updates[i]); + } + updates.Clear(); + return; //TODO TODO REMOVE TO ADD NETWORK TODO REMOVE TO ADD NETWORK TODO REMOVE TO ADD NETWORK TODO REMOVE TO ADD NETWORK + + //по 10 паков за раз TODO FIXITFIXITFIXITFIXITFIXITFIXITFIXITFIXITFIXITFIXITFIXITFIXIT + List datasToSend = new List(); + for (int i = 0; i < 5 && i /// добавляет в лист updates новую data /// /// - public void AddData(IUpdateData data) + public void AddData(UpdateData data) { updates.Add(data); } diff --git a/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ClientToServer/UpdateInput.cs b/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ClientToServer/UpdateInput.cs index 81af1d9..bb2ea93 100644 --- a/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ClientToServer/UpdateInput.cs +++ b/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ClientToServer/UpdateInput.cs @@ -6,9 +6,12 @@ using System.Threading.Tasks; namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ClientToServer { - public class UpdateInput :IUpdateData + public class UpdateInput :UpdateData { - public int IdEntity { get; set; } - public string UpdateType { get; set; } + // public int IdEntity { get; set; } + public UpdateInput() + { + UpdateType = "UpdateInput"; + } } } diff --git a/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ClientToServer/UpdatePlayerExit.cs b/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ClientToServer/UpdatePlayerExit.cs index ba6c6ca..7cb0b44 100644 --- a/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ClientToServer/UpdatePlayerExit.cs +++ b/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ClientToServer/UpdatePlayerExit.cs @@ -6,9 +6,8 @@ using System.Threading.Tasks; namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ClientToServer { - public class UpdatePlayerExit : IUpdateData + public class UpdatePlayerExit : UpdateData { - public int IdEntity { get; set; } - public string UpdateType { get; set; } + public UpdatePlayerExit() { UpdateType = "UpdatePlayerExit"; } } } diff --git a/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ServerToClient/UpdateAnimation.cs b/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ServerToClient/UpdateAnimation.cs index 6f07770..4e9b972 100644 --- a/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ServerToClient/UpdateAnimation.cs +++ b/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ServerToClient/UpdateAnimation.cs @@ -6,9 +6,11 @@ using System.Threading.Tasks; namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient { - public class UpdateAnimation : IUpdateData //хранит новую анимации + /// + /// Хранит новое сосотяние анимации + /// + public class UpdateAnimation : UpdateData { - public int IdEntity { get; set; } - public string UpdateType { get; set; } + public UpdateAnimation() { UpdateType = "UpdateAnimation"; } } } diff --git a/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ServerToClient/UpdateEntityHealth.cs b/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ServerToClient/UpdateEntityHealth.cs index 618770e..71f95a2 100644 --- a/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ServerToClient/UpdateEntityHealth.cs +++ b/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ServerToClient/UpdateEntityHealth.cs @@ -6,9 +6,11 @@ using System.Threading.Tasks; namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient { - public class UpdateEntityHealth : IUpdateData//хранит новое хп entity + /// + /// Обнивляет хп сущности + /// + public class UpdateEntityHealth : UpdateData { - public int IdEntity { get; set; } - public string UpdateType { get; set; } + public UpdateEntityHealth() { UpdateType = "UpdateEntityHealth"; } } } diff --git a/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ServerToClient/UpdateGameEnded.cs b/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ServerToClient/UpdateGameEnded.cs index 10173b7..d89c9a7 100644 --- a/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ServerToClient/UpdateGameEnded.cs +++ b/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ServerToClient/UpdateGameEnded.cs @@ -6,9 +6,11 @@ using System.Threading.Tasks; namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient { - public class UpdateGameEnded : IUpdateData //хранит полученый лут и уведомляет о конце игры + /// + /// Хранит полученый лут и уведомляет о конце игры + /// + public class UpdateGameEnded : UpdateData { - public int IdEntity { get; set; } - public string UpdateType { get; set; } + public UpdateGameEnded() { UpdateType = "UpdateGameEnded"; } } } diff --git a/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ServerToClient/UpdateGameObjectCreated.cs b/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ServerToClient/UpdateGameObjectCreated.cs index 4cf8a42..0ca86a4 100644 --- a/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ServerToClient/UpdateGameObjectCreated.cs +++ b/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ServerToClient/UpdateGameObjectCreated.cs @@ -6,9 +6,13 @@ using System.Threading.Tasks; namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient { - public class UpdateGameObjectCreated : IUpdateData //Хранит объект, который только отправили + /// + /// Хранит объект, который только отправили + /// + public class UpdateGameObjectCreated : UpdateData { - public int IdEntity { get; set; } - public string UpdateType { get; set; } + public UpdateGameObjectCreated() { UpdateType = "UpdateGameObjectCreated"; } + public string GameObjectType; + public string GameObjectId; } } diff --git a/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ServerToClient/UpdateGameObjectDeleted.cs b/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ServerToClient/UpdateGameObjectDeleted.cs new file mode 100644 index 0000000..88d4e98 --- /dev/null +++ b/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ServerToClient/UpdateGameObjectDeleted.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient +{ + /// + /// Хранит объект, который надо удлить + /// + public class UpdateGameObjectDeleted : UpdateData + { + public UpdateGameObjectDeleted() { UpdateType = "UpdateGameObjectDeleted"; } + } +} \ No newline at end of file diff --git a/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ServerToClient/UpdateInteraction.cs b/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ServerToClient/UpdateInteraction.cs new file mode 100644 index 0000000..e42f0f4 --- /dev/null +++ b/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ServerToClient/UpdateInteraction.cs @@ -0,0 +1,10 @@ +namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient; + +/// +/// При попытке взаимодействия с объектом +/// +public class UpdateInteraction : UpdateData +{ + public int IdEntity { get; set; } + public string UpdateType { get; set; } +} \ No newline at end of file diff --git a/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ServerToClient/UpdateInteractionReady.cs b/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ServerToClient/UpdateInteractionReady.cs new file mode 100644 index 0000000..db4d01d --- /dev/null +++ b/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ServerToClient/UpdateInteractionReady.cs @@ -0,0 +1,14 @@ +namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient; + +/// +/// При изменении возможности повзаимодействовать с объектом +/// +/// +/// +public class UpdateInteractionReady(int idEntity, bool isReady) + : UpdateData +{ + public int IdEntity { get; set; } = idEntity; + public string UpdateType { get; set; } + public bool IsReady { get; set; } = isReady; +} \ No newline at end of file diff --git a/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ServerToClient/UpdateLoot.cs b/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ServerToClient/UpdateLoot.cs index e7f8a51..2337f74 100644 --- a/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ServerToClient/UpdateLoot.cs +++ b/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ServerToClient/UpdateLoot.cs @@ -6,9 +6,11 @@ using System.Threading.Tasks; namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient { - public class UpdateLoot : IUpdateData //Хранит лут + /// + /// Хранит лут + /// + public class UpdateLoot : UpdateData { - public int IdEntity { get; set; } - public string UpdateType { get; set; } + public UpdateLoot() { UpdateType = "UpdateLoot"; } } } diff --git a/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ServerToClient/UpdatePlayerParametrs.cs b/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ServerToClient/UpdatePlayerParametrs.cs index 36a2544..100c8d0 100644 --- a/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ServerToClient/UpdatePlayerParametrs.cs +++ b/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ServerToClient/UpdatePlayerParametrs.cs @@ -6,9 +6,11 @@ using System.Threading.Tasks; namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient { - public class UpdatePlayerParametrs : IUpdateData //Хранит хп, радиацию + /// + /// Хранит хп, радиацию + /// + public class UpdatePlayerParametrs : UpdateData { - public int IdEntity { get; set; } - public string UpdateType { get; set; } + public UpdatePlayerParametrs() { UpdateType = "UpdatePlayerParametrs"; } } } diff --git a/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ServerToClient/UpdatePosition.cs b/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ServerToClient/UpdatePosition.cs index fda8a39..8d93d7b 100644 --- a/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ServerToClient/UpdatePosition.cs +++ b/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ServerToClient/UpdatePosition.cs @@ -6,9 +6,11 @@ using System.Threading.Tasks; namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient { - public class UpdatePosition : IUpdateData //Хранит новую позицию + /// + /// Хранит новую позицию + /// + public class UpdatePosition : UpdateData { - public int IdEntity { get; set; } - public string UpdateType { get; set; } + public UpdatePosition() { UpdateType = "UpdatePosition"; } } } diff --git a/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ServerToClient/UpdateTileCreated.cs b/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ServerToClient/UpdateTileCreated.cs index 796683d..0799653 100644 --- a/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ServerToClient/UpdateTileCreated.cs +++ b/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ServerToClient/UpdateTileCreated.cs @@ -10,12 +10,17 @@ using ZoFo.GameCore.GameManagers.NetworkManager.Updates.ClientToServer; namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient { - - public class UpdateTileCreated : IUpdateData + + /// + /// При создании тайла + /// + public class UpdateTileCreated : UpdateData { - public int IdEntity { get; set; } - public string UpdateType { get; set; } + public UpdateTileCreated() { UpdateType = "UpdateTileCreated"; } public Texture2D TextureTile { get; set; } public Vector2 Position { get; set; } + public Point Size { get; set; } + public Rectangle sourceRectangle { get; set; } + public string tileSetName { get; set; } } } diff --git a/ZoFo/GameCore/GameManagers/NetworkManager/Updates/IUpdateData.cs b/ZoFo/GameCore/GameManagers/NetworkManager/Updates/UpdateData.cs similarity index 76% rename from ZoFo/GameCore/GameManagers/NetworkManager/Updates/IUpdateData.cs rename to ZoFo/GameCore/GameManagers/NetworkManager/Updates/UpdateData.cs index 5c363d7..a96b270 100644 --- a/ZoFo/GameCore/GameManagers/NetworkManager/Updates/IUpdateData.cs +++ b/ZoFo/GameCore/GameManagers/NetworkManager/Updates/UpdateData.cs @@ -14,16 +14,19 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates [JsonDerivedType(typeof(UpdateEntityHealth))] [JsonDerivedType(typeof(UpdateGameEnded))] [JsonDerivedType(typeof(UpdateGameObjectCreated))] + [JsonDerivedType(typeof(UpdateGameObjectDeleted))] [JsonDerivedType(typeof(UpdateLoot))] [JsonDerivedType(typeof(UpdatePlayerParametrs))] [JsonDerivedType(typeof(UpdatePosition))] [JsonDerivedType(typeof(UpdateTileCreated))] [JsonDerivedType(typeof(UpdateInput))] [JsonDerivedType(typeof(UpdatePlayerExit))] - - public interface IUpdateData + [JsonDerivedType(typeof(UpdateInteractionReady))] + [JsonDerivedType(typeof(UpdateInteraction))] + + public class UpdateData { public int IdEntity { get; set; } //Id объекта - public string UpdateType { get; set; } //тип обновления + public string UpdateType { get; protected set; } //тип обновления } } diff --git a/ZoFo/GameCore/GameObjects/Entities/EntittyForAnimationTests.cs b/ZoFo/GameCore/GameObjects/Entities/EntittyForAnimationTests.cs new file mode 100644 index 0000000..fb545a1 --- /dev/null +++ b/ZoFo/GameCore/GameObjects/Entities/EntittyForAnimationTests.cs @@ -0,0 +1,24 @@ +using Microsoft.Xna.Framework; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using ZoFo.GameCore.ZoFo_graphics; + +namespace ZoFo.GameCore.GameObjects.Entities +{ + internal class EntittyForAnimationTests : Entity + { + + //public override GraphicsComponent graphicsComponent { get; } = new GraphicsComponent(new List { "тут пишите название анимации" }, "сдублируйте " + + public override GraphicsComponent graphicsComponent { get; } = new GraphicsComponent(new List { "player_idle_top-right_noweapon" }, "player_idle_top-right_noweapon"); + public EntittyForAnimationTests(Vector2 position) : base(position) + { + graphicsComponent.ObjectDrawRectangle = new Rectangle(0,0,50,50); + position = new Vector2(10, 10); + + } + + } +} diff --git a/ZoFo/GameCore/GameObjects/Entities/Entity.cs b/ZoFo/GameCore/GameObjects/Entities/Entity.cs index a1ab30b..0c7d453 100644 --- a/ZoFo/GameCore/GameObjects/Entities/Entity.cs +++ b/ZoFo/GameCore/GameObjects/Entities/Entity.cs @@ -10,14 +10,16 @@ namespace ZoFo.GameCore.GameObjects.Entities { public abstract class Entity : GameObject { - protected override GraphicsComponent graphicsComponent => null; + //public override GraphicsComponent graphicsComponent => null; public CollisionComponent collisionComponent { get; protected set; } public int Id { get; set; } protected Entity(Vector2 position) : base(position) { } - + public virtual void Update() + { + } } } diff --git a/ZoFo/GameCore/GameObjects/Entities/Interactables/Collectables/Collectable.cs b/ZoFo/GameCore/GameObjects/Entities/Interactables/Collectables/Collectable.cs index b900e4a..d31d536 100644 --- a/ZoFo/GameCore/GameObjects/Entities/Interactables/Collectables/Collectable.cs +++ b/ZoFo/GameCore/GameObjects/Entities/Interactables/Collectables/Collectable.cs @@ -2,7 +2,7 @@ using System; namespace ZoFo.GameCore.GameObjects.Entities.Interactables.Collectables; -public class Collectable : Entity +public class Collectable : Interactable { public Collectable(Vector2 position) : base(position) { diff --git a/ZoFo/GameCore/GameObjects/Entities/Interactables/Door.cs b/ZoFo/GameCore/GameObjects/Entities/Interactables/Door.cs new file mode 100644 index 0000000..f82fe12 --- /dev/null +++ b/ZoFo/GameCore/GameObjects/Entities/Interactables/Door.cs @@ -0,0 +1,24 @@ +using System.Collections.Generic; +using Microsoft.Xna.Framework; +using ZoFo.GameCore.ZoFo_graphics; + +namespace ZoFo.GameCore.GameObjects.Entities.Interactables; + +public class Door : Interactable +{ + public bool isOpened; + + public override GraphicsComponent graphicsComponent { get; } = new(new List { "DoorInteraction" }, "DoorInteraction"); + + public Door(Vector2 position) : base(position) + { + graphicsComponent.actionOfAnimationEnd += _ => { isOpened = !isOpened; }; + } + + public override void OnInteraction() + { + graphicsComponent.StartAnimation("DoorInteraction", isOpened); + } + + +} \ No newline at end of file diff --git a/ZoFo/GameCore/GameObjects/Entities/Interactables/Interactable.cs b/ZoFo/GameCore/GameObjects/Entities/Interactables/Interactable.cs new file mode 100644 index 0000000..35a124f --- /dev/null +++ b/ZoFo/GameCore/GameObjects/Entities/Interactables/Interactable.cs @@ -0,0 +1,29 @@ +using Microsoft.Xna.Framework; +using ZoFo.GameCore.GameManagers; +using ZoFo.GameCore.GameManagers.CollisionManager; +using ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient; +using ZoFo.GameCore.GameObjects.Entities.LivingEntities.Player; +using ZoFo.GameCore.ZoFo_graphics; + +namespace ZoFo.GameCore.GameObjects.Entities.Interactables; + +public class Interactable : Entity +{ + public override GraphicsComponent graphicsComponent => throw new System.NotImplementedException(); + + public Interactable(Vector2 position) : base(position) + { + collisionComponent.OnTriggerEnter += (sender, e) => ChangeInteraction(sender, e, true); + collisionComponent.OnTriggerExit += (sender, e) => ChangeInteraction(sender, e, false); + } + + private void ChangeInteraction(object sender, CollisionComponent e, bool isReady) + { + AppManager.Instance.server.AddData(new UpdateInteractionReady((sender as Player).Id, isReady)); + } + + public virtual void OnInteraction() + { + + } +} \ No newline at end of file diff --git a/ZoFo/GameCore/GameObjects/Entities/LivingEntities/LivingEntity.cs b/ZoFo/GameCore/GameObjects/Entities/LivingEntities/LivingEntity.cs index 05a27ec..6842723 100644 --- a/ZoFo/GameCore/GameObjects/Entities/LivingEntities/LivingEntity.cs +++ b/ZoFo/GameCore/GameObjects/Entities/LivingEntities/LivingEntity.cs @@ -3,20 +3,28 @@ using Microsoft.Xna.Framework.Graphics; using System; using ZoFo.GameCore.GameObjects.Entities; using ZoFo.GameCore.ZoFo_graphics; +using ZoFo.GameCore.GameManagers; namespace ZoFo.GameCore.GameObjects.Entities.LivingEntities; public class LivingEntity : Entity { public Vector2 velocity; + private InputManager inputManager; + public LivingEntity(Vector2 position) : base(position) { + inputManager = new InputManager(); } - public void TextureLoad(SpriteBatch spriteBatch) + public override GraphicsComponent graphicsComponent { get; } = null; + + #region Server side + /*public override void Update() { - - } + + }*/ + #endregion } diff --git a/ZoFo/GameCore/GameObjects/Entities/LivingEntities/Player/Player.cs b/ZoFo/GameCore/GameObjects/Entities/LivingEntities/Player/Player.cs index 744b2c4..20bbe18 100644 --- a/ZoFo/GameCore/GameObjects/Entities/LivingEntities/Player/Player.cs +++ b/ZoFo/GameCore/GameObjects/Entities/LivingEntities/Player/Player.cs @@ -1,25 +1,27 @@ using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using System; +using ZoFo.GameCore.GameManagers; using ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient; namespace ZoFo.GameCore.GameObjects.Entities.LivingEntities.Player; + public class Player : LivingEntity { + public Vector2 InputWeaponRotation{ get; set; } + public Vector2 InputPlayerRotation{ get; set;} + public bool IsTryingToShoot{get;set;} + Texture2D texture; + private float speed; private int health; - Server server = new Server(); - public Player(Vector2 position) : base(position) { + //InputWeaponRotation = new Vector2(0, 0); + //InputPlayerRotation = new Vector2(0, 0); } public void Update(GameTime gameTime) { - // server.AddData(); - } - - public void TextureLoad(SpriteBatch spriteBatch) - { - + } } diff --git a/ZoFo/GameCore/GameObjects/GameObject.cs b/ZoFo/GameCore/GameObjects/GameObject.cs index d309bf9..d3c5d64 100644 --- a/ZoFo/GameCore/GameObjects/GameObject.cs +++ b/ZoFo/GameCore/GameObjects/GameObject.cs @@ -4,19 +4,23 @@ using Microsoft.Xna.Framework.Graphics; using System; using ZoFo.GameCore.GameManagers; using ZoFo.GameCore.ZoFo_graphics; +using ZoFo.GameCore; namespace ZoFo.GameCore.GameObjects; public abstract class GameObject { public Vector2 position; + public Vector2 rotation; //вектор направления объекта - protected abstract GraphicsComponent graphicsComponent { get; } + public abstract GraphicsComponent graphicsComponent { get; } #region ServerSide public GameObject(Vector2 position) { - this.position = position; + this.position = position; + + graphicsComponent.LoadContent(); } public virtual void UpdateLogic(GameTime gameTime) { @@ -59,8 +63,10 @@ public abstract class GameObject /// Для клиента /// Обновление, которое вызывается у клиента, для просмотра анимаций /// - public virtual void UpdateAnimations(GameTime gameTime) + public virtual void UpdateAnimations() { + graphicsComponent.ObjectDrawRectangle.X = (int)position.X; //Move To place where Updates Sets your position + graphicsComponent.ObjectDrawRectangle.Y = (int)position.Y; PlayAnimation_OnClient(); } @@ -80,10 +86,10 @@ public abstract class GameObject if (color is null) color = new Color(1, 0, 0, 0.25f); if (color.Value.A == 255) color = new Color(color.Value, 0.25f); //spriteBatch.Draw(debugTexture, - // new Rectangle((_rectangle.X - GraphicsComponent.CameraPosition.X) * GraphicsComponent.scaling, - // (_rectangle.Y - GraphicsComponent.CameraPosition.Y) * GraphicsComponent.scaling, - // _rectangle.Width * GraphicsComponent.scaling, - // _rectangle.Height * GraphicsComponent.scaling), color.Value); + // new Rectangle((_rectangle.X - graphicsComponent.CameraPosition.X) * graphicsComponent.scaling, + // (_rectangle.Y - graphicsComponent.CameraPosition.Y) * graphicsComponent.scaling, + // _rectangle.Width * graphicsComponent.scaling, + // _rectangle.Height * graphicsComponent.scaling), color.Value); //TODO: debugTexture } diff --git a/ZoFo/GameCore/GameObjects/MapObjects/MapObject.cs b/ZoFo/GameCore/GameObjects/MapObjects/MapObject.cs index 642b8fb..51a3a4e 100644 --- a/ZoFo/GameCore/GameObjects/MapObjects/MapObject.cs +++ b/ZoFo/GameCore/GameObjects/MapObjects/MapObject.cs @@ -2,28 +2,40 @@ using Microsoft.Xna.Framework.Graphics; using System; using System.Collections.Generic; +using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks; using ZoFo.GameCore.GameManagers; +using ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient; using ZoFo.GameCore.ZoFo_graphics; namespace ZoFo.GameCore.GameObjects.MapObjects { public class MapObject : GameObject { - public virtual bool IsColliderOn { get; protected set; } = true; - private Rectangle _sourceRectangle; - protected override GraphicsComponent graphicsComponent => new("tiles"); + public virtual bool IsColliderOn { get; protected set; } = true;//Who added that? + public Rectangle sourceRectangle; + public override GraphicsComponent graphicsComponent { get; } = new(); + /// + /// Создается простой объект на карте - no animations, только где, насколько крупно рисовать, по какой сорс ректанглу рисовать и из какой текстуры + /// + /// + /// + /// + /// public MapObject(Vector2 position, Vector2 size, Rectangle sourceRectangle, string textureName) : base(position) { - _sourceRectangle = sourceRectangle; - graphicsComponent.ObjectDrawRectangle = new Rectangle(0,0, (int)size.X, (int)size.Y); + this.sourceRectangle = sourceRectangle; + graphicsComponent.ObjectDrawRectangle = new Rectangle((int)position.X, (int)position.Y, (int)size.X, (int)size.Y); + graphicsComponent.BuildComponent(textureName); + graphicsComponent.LoadContent(); + } public override void Draw(SpriteBatch spriteBatch) { - graphicsComponent.DrawAnimation(graphicsComponent.ObjectDrawRectangle, spriteBatch, _sourceRectangle); + graphicsComponent.DrawAnimation(graphicsComponent.ObjectDrawRectangle, spriteBatch, sourceRectangle); } } diff --git a/ZoFo/GameCore/Server.cs b/ZoFo/GameCore/Server.cs index 5fcb39c..f374401 100644 --- a/ZoFo/GameCore/Server.cs +++ b/ZoFo/GameCore/Server.cs @@ -5,11 +5,14 @@ using System.Linq; using System.Text; using System.Text.Json; using System.Threading.Tasks; +using ZoFo.GameCore.GameManagers; +using ZoFo.GameCore.GameManagers.MapManager; using ZoFo.GameCore.GameManagers.NetworkManager; using ZoFo.GameCore.GameManagers.NetworkManager.Updates; using ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient; using ZoFo.GameCore.GameObjects; using ZoFo.GameCore.GameObjects.Entities; +using ZoFo.GameCore.GameObjects.MapObjects; namespace ZoFo.GameCore { @@ -21,18 +24,34 @@ namespace ZoFo.GameCore { networkManager = new ServerNetworkManager(); networkManager.GetDataSend += OnDataSend; + } + #region server logic as App + //TODO Comment pls public void OnDataSend(string data) { - List updateDatas = JsonSerializer.Deserialize>(data); + List updateDatas = JsonSerializer.Deserialize>(data); + for (int i = 0; i < updateDatas.Count; i++) + { + ProcessIUpdateData(updateDatas[i]); + } + } + /// + /// Обработка апдейтсов, которые нам прислал клиент + /// + /// + public void ProcessIUpdateData(UpdateData updateData) + { //ТУТ Switch case будет честное слово } + /// /// Для красоты) Отдел Серверов + /// добавляет в лист updates новую data /// /// - public void AddData(IUpdateData data)//добавляет в лист updates новую data + public void AddData(UpdateData data)//добавляет в лист updates новую data { networkManager.AddData(data); } @@ -41,12 +60,26 @@ namespace ZoFo.GameCore /// Создает комнату и запускает ожидание подключений /// /// - public void CreateRoom(int players) + public void CreateRoom(int players) { networkManager.Start(players); } - // public void StartGame() { } принудительный запуск + /// + /// Запуск игры в комнате + /// + public void StartGame() + { + + //TODO начинает рассылку и обмен пакетами игры + //Грузит карту + + gameObjects = new List(); + entities = new List(); + new MapManager().LoadMap(); + + AppManager.Instance.server.RegisterGameObject(new EntittyForAnimationTests(new Vector2(40, 40))); + } /// /// Добавляет UpdateGameEnded и отключает игроков @@ -57,10 +90,9 @@ namespace ZoFo.GameCore networkManager.AddData(gameEnded); networkManager.CloseConnection(); } - - private List gameObjects; + private List gameObjects = new List(); private List entities; //entity - public void Update(GameTime gameTime) + public void Update(GameTime gameTime) { if (ticks == 3) //ОБРАБАТЫВАЕТСЯ 20 РАЗ В СЕКУНДУ { @@ -74,15 +106,32 @@ namespace ZoFo.GameCore ticks++; } - + /// /// Регистрирует игровой объект /// /// - public void RegisterEntity(GameObject gameObject) + public void RegisterGameObject(GameObject gameObject) { - gameObjects.Add(gameObject); - } + gameObjects.Add(gameObject); + if (gameObject is MapObject) + { + AddData(new UpdateTileCreated() + { + Position = (gameObject as MapObject).position, + sourceRectangle = (gameObject as MapObject).sourceRectangle, + Size = (gameObject as MapObject).graphicsComponent.ObjectDrawRectangle.Size, + tileSetName = (gameObject as MapObject).graphicsComponent.mainTextureName + });//TODO + return; + } + + AddData(new UpdateGameObjectCreated() + { GameObjectType = gameObject.GetType().Name } + ); + + } } + #endregion } diff --git a/ZoFo/GameCore/ZoFo_grafics/AnimationBuilder.cs b/ZoFo/GameCore/ZoFo_grafics/AnimationBuilder.cs index d18303c..04b2cbf 100644 --- a/ZoFo/GameCore/ZoFo_grafics/AnimationBuilder.cs +++ b/ZoFo/GameCore/ZoFo_grafics/AnimationBuilder.cs @@ -13,11 +13,12 @@ namespace DangerousD.GameCore.Graphics public void LoadAnimations() { Animations = new List(); - string[] animationFilesNames = Directory.GetFiles("../../../Content/animations"); + string[] animationFilesNames = Directory.GetFiles("../../../Content/Textures/Animations"); StreamReader reader; foreach (var fileName in animationFilesNames) { + if (!fileName.EndsWith(".animation")) continue; reader = new StreamReader(fileName); string json = reader.ReadToEnd(); AnimationContainer animation = JsonConvert.DeserializeObject(json); diff --git a/ZoFo/GameCore/ZoFo_grafics/GraphicsComponent.cs b/ZoFo/GameCore/ZoFo_grafics/GraphicsComponent.cs index b6ab88a..c0c0631 100644 --- a/ZoFo/GameCore/ZoFo_grafics/GraphicsComponent.cs +++ b/ZoFo/GameCore/ZoFo_grafics/GraphicsComponent.cs @@ -15,17 +15,18 @@ namespace ZoFo.GameCore.ZoFo_graphics public class GraphicsComponent { - public Rectangle ObjectDrawRectangle { get; set; } + public Rectangle ObjectDrawRectangle; public event Action actionOfAnimationEnd; private List animations; private List textures; - private List texturesNames; + public List texturesNames; //rethink public and following that errors private AnimationContainer currentAnimation; - static public int scaling = 4; + static public int scaling = 1; public int parentId; + public bool reverse; public AnimationContainer CurrentAnimation { get @@ -64,8 +65,18 @@ namespace ZoFo.GameCore.ZoFo_graphics buildSourceRectangle(); } + public string mainTextureName;//TODO костыль - пофиксить public GraphicsComponent(string textureName) { + BuildComponent(textureName); + } + public GraphicsComponent() + { + } + public void BuildComponent(string textureName) + { + mainTextureName = textureName; + //texturesNames.Add(textureName);//Added by SD animations = new List(); textures = new List(); var texture = AppManager.Instance.Content.Load(textureName); @@ -101,6 +112,11 @@ namespace ZoFo.GameCore.ZoFo_graphics textures = new List(); texturesNames = new List(); + if (animations is null) + { + return; + } + foreach (var animation in animations) { if (!texturesNames.Contains(animation.TextureName)) @@ -111,7 +127,7 @@ namespace ZoFo.GameCore.ZoFo_graphics } } - public void StartAnimation(string startedanimationId) + public void StartAnimation(string startedanimationId, bool reverse = false) { /* if (AppManager.Instance.multiPlayerStatus != MultiPlayerStatus.SinglePlayer) @@ -123,8 +139,13 @@ namespace ZoFo.GameCore.ZoFo_graphics } } */ - currentFrame = 0; + this.reverse = reverse; + currentAnimation = animations.Find(x => x.Id == startedanimationId); + if (reverse) + currentFrame = currentAnimation.FramesCount; + else + currentFrame = 0; buildSourceRectangle(); SetInterval(); @@ -139,25 +160,45 @@ namespace ZoFo.GameCore.ZoFo_graphics SetInterval(); } + private void AnimationEnd() + { + if (!currentAnimation.IsCycle) + { + if (actionOfAnimationEnd != null) + { + actionOfAnimationEnd(currentAnimation.Id); + } + currentAnimation = neitralAnimation; + + } + + currentFrame = 0; + } + public void Update() { + if (currentAnimation is null) + { + return; + } if (interval == 0) { - currentFrame++; - if (currentAnimation.FramesCount <= currentFrame) + if (reverse) { - if (!currentAnimation.IsCycle) + currentFrame--; + if (currentFrame <= 0) { - if (actionOfAnimationEnd != null) - { - actionOfAnimationEnd(currentAnimation.Id); - } - currentAnimation = neitralAnimation; - + AnimationEnd(); + reverse = false; + } + } + else + { + currentFrame++; + if (currentAnimation.FramesCount <= currentFrame) + { + AnimationEnd(); } - - currentFrame = 0; - } buildSourceRectangle(); @@ -281,6 +322,6 @@ namespace ZoFo.GameCore.ZoFo_graphics AppManager.Instance.DebugHUD.Set("CameraPosition", $"{CameraPosition.X}, {CameraPosition.Y}"); */ } - public static Point CameraPosition = new Point(-700, 300); + public static Point CameraPosition = new Point(0, 0); } }