diff --git a/.$architecture.drawio.png.bkp b/.$architecture.drawio.png.bkp
new file mode 100644
index 0000000..c83ffee
Binary files /dev/null and b/.$architecture.drawio.png.bkp differ
diff --git a/.$architecture.drawio.png.dtmp b/.$architecture.drawio.png.dtmp
new file mode 100644
index 0000000..d9ee756
--- /dev/null
+++ b/.$architecture.drawio.png.dtmp
@@ -0,0 +1,635 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.run/ZoFo.run.xml b/.run/ZoFo.run.xml
new file mode 100644
index 0000000..315a66b
--- /dev/null
+++ b/.run/ZoFo.run.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/AnimationsFileCreator/AnimationsFileCreator.csproj b/AnimationsFileCreator/AnimationsFileCreator.csproj
new file mode 100644
index 0000000..b8c3b86
--- /dev/null
+++ b/AnimationsFileCreator/AnimationsFileCreator.csproj
@@ -0,0 +1,17 @@
+
+
+
+ Exe
+ net8.0
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/AnimationsFileCreator/Program.cs b/AnimationsFileCreator/Program.cs
new file mode 100644
index 0000000..4203494
--- /dev/null
+++ b/AnimationsFileCreator/Program.cs
@@ -0,0 +1,71 @@
+using Microsoft.Xna.Framework;
+using Newtonsoft.Json;
+using System;
+using NativeFileDialogSharp;
+using System.IO;
+using System.Linq;
+using System.Reflection.Metadata;
+using ZoFo.GameCore.Graphics;
+namespace AnimationsFileCreator
+{
+ class Program
+ {
+ [STAThread]
+ static void Main(string[] args)
+ {
+ Console.WriteLine("Добро пожаловать в костыльную программу по созданию файлов анимации для игры DungerousD");
+ Console.Write("Введите название текстуры (нажмите enter, чтобы выбрать файл во всплывающем окошке): ");
+ string textureName = Console.ReadLine();
+ if (textureName == "")
+ {
+
+ DialogResult result = Dialog.FileOpen();
+ var temp = result.Path.Split('\\');
+ textureName = temp[temp.Length-2] + "/"+temp[temp.Length - 1];
+ textureName = textureName.Split('.')[0];
+ }
+ Console.WriteLine("Введите количество кадров анимации: ");
+ int framesCount = int.Parse(Console.ReadLine());
+ Console.WriteLine("Введите длительность кадра в анимации: ");
+ int interval = int.Parse(Console.ReadLine());
+ Console.WriteLine("Введите начальную позицию X ректенгла анимации: ");
+ Rectangle rectangle = new Rectangle();
+ rectangle.X = int.Parse(Console.ReadLine());
+ Console.WriteLine("Введите начальную позицию Y ректенгла анимации: ");
+ rectangle.Y = int.Parse(Console.ReadLine());
+ Console.WriteLine("Введите начальную позицию Width ректенгла анимации: ");
+ rectangle.Width = int.Parse(Console.ReadLine());
+ Console.WriteLine("Введите начальную позицию Height ректенгла анимации: ");
+ rectangle.Height = int.Parse(Console.ReadLine());
+ Console.WriteLine("Введите название для этого файла - id анимации");
+ string id = Console.ReadLine();
+ Console.WriteLine("Введите 1 если анимация зациклена, и 0 если нет");
+ AnimationContainer container = new AnimationContainer();
+
+ int a = int.Parse(Console.ReadLine());
+ if (a==1)
+ {
+ container.IsCycle = true;
+ }
+ else
+ {
+ container.IsCycle = false;
+ }
+ Console.WriteLine("Введите отклонение анимации от стандартной (сначала X, потом enter, потом Y): ");
+ int otklx = int.Parse(Console.ReadLine());
+ int otkly = int.Parse(Console.ReadLine());
+ container.Offset =new Vector2(otklx,otkly);
+ container.FramesCount = framesCount;
+ container.FrameTime = new System.Collections.Generic.List>();
+ container.FrameTime.Add(new Tuple(0, interval));
+ container.StartSpriteRectangle = rectangle;
+ container.TextureName = "Textures/AnimationTextures/"+textureName;
+ container.TextureFrameInterval = 0;
+ container.Id = id;
+ string json = JsonConvert.SerializeObject(container);
+ StreamWriter writer = new StreamWriter("../../../../ZoFo/Content/Textures/Animations/"+id+ ".animation");
+ writer.WriteLine(json);
+ writer.Close();
+ }
+ }
+}
diff --git a/GameSettings.txt b/GameSettings.txt
new file mode 100644
index 0000000..f5dcd93
--- /dev/null
+++ b/GameSettings.txt
@@ -0,0 +1 @@
+{"IsFullScreen":false,"MainVolume":1.0,"MusicVolume":1.0,"SoundEffectsVolume":1.0,"Resolution":{"X":1440,"Y":900}}
\ No newline at end of file
diff --git a/Install-Package b/Install-Package
new file mode 100644
index 0000000..e69de29
diff --git a/MonogameLibrary/MonogameLibrary.csproj b/MonogameLibrary/MonogameLibrary.csproj
index 16a23b2..12f2ed5 100644
--- a/MonogameLibrary/MonogameLibrary.csproj
+++ b/MonogameLibrary/MonogameLibrary.csproj
@@ -1,7 +1,7 @@
- net6.0
+ net8.0
enable
enable
diff --git a/MonogameLibrary/UI/Base/UIManager.cs b/MonogameLibrary/UI/Base/UIManager.cs
index 826a0a1..125df25 100644
--- a/MonogameLibrary/UI/Base/UIManager.cs
+++ b/MonogameLibrary/UI/Base/UIManager.cs
@@ -59,8 +59,8 @@ namespace MonogameLibrary.UI.Base
{
keyboardState = Keyboard.GetState();
mouseState = Mouse.GetState();
- mouseState = new MouseState((int)(mouseState.X*(float)resolutionInGame.X/resolution.X),
- (int)(mouseState.Y * (float)resolutionInGame.Y / resolution.Y), mouseState.ScrollWheelValue, mouseState.LeftButton, mouseState.MiddleButton, mouseState.RightButton, mouseState.XButton1, mouseState.XButton2);
+ //mouseState = new MouseState((int)(mouseState.X*(float)resolutionInGame.X/resolution.X),
+ // (int)(mouseState.Y * (float)resolutionInGame.Y / resolution.Y), mouseState.ScrollWheelValue, mouseState.LeftButton, mouseState.MiddleButton, mouseState.RightButton, mouseState.XButton1, mouseState.XButton2);
}
catch
{
diff --git a/MonogameLibrary/UI/Elements/CheckBox.cs b/MonogameLibrary/UI/Elements/CheckBox.cs
index 5dc400f..47ac44e 100644
--- a/MonogameLibrary/UI/Elements/CheckBox.cs
+++ b/MonogameLibrary/UI/Elements/CheckBox.cs
@@ -24,6 +24,10 @@ namespace MonogameLibrary.UI.Elements
private bool isChecked;
HoverState hoverState = HoverState.None;
public bool GetChecked { get { return isChecked; } }
+ public void SetIsChecked(bool isChecked)
+ {
+ this.isChecked=isChecked;
+ }
public bool InteractUpdate(MouseState mouseState, MouseState prevmouseState)
{
if (rectangle.Intersects(new Rectangle(mouseState.Position, Point.Zero)))
@@ -49,9 +53,9 @@ namespace MonogameLibrary.UI.Elements
public override void LoadTexture(ContentManager content)
{
- texture1 = content.Load("textures\\ui\\checkboxs_off");
- texture2 = content.Load("textures\\ui\\checkboxs_off-on");
- texture3 = content.Load("textures\\ui\\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/ItemDisplayLabel.cs b/MonogameLibrary/UI/Elements/ItemDisplayLabel.cs
new file mode 100644
index 0000000..1e637fb
--- /dev/null
+++ b/MonogameLibrary/UI/Elements/ItemDisplayLabel.cs
@@ -0,0 +1,79 @@
+using Microsoft.Xna.Framework.Graphics;
+using MonogameLibrary.UI.Base;
+using Microsoft.Xna.Framework;
+using Microsoft.Xna.Framework.Graphics;
+using MonogameLibrary.UI.Enums;
+using System;
+using System.Collections.Generic;
+using System.Security.Cryptography.X509Certificates;
+using System.Text;
+using System.Threading;
+using Microsoft.Xna.Framework.Content;
+
+namespace MonogameLibrary.UI.Elements;
+
+public class ItemDisplayLabel : DrawableUIElement
+{
+ public int count;
+ public string itemTextureName;
+ private Texture2D itemTexture;
+ public Color fontColor1;
+ protected UIManager Manager;
+ public string fontName1;
+ public string text1;
+ public float scale1;
+ private DrawableUIElement icon;
+
+
+ public ItemDisplayLabel(UIManager manager) : base(manager)
+ {
+ Manager = manager;
+ }
+
+ public void Initialize()
+ {
+ icon = new DrawableUIElement(Manager)
+ {
+ rectangle = new Rectangle(rectangle.X + rectangle.Height / 3 / 2, rectangle.Y + rectangle.Height / 3 / 2, rectangle.Height / 3 * 2, rectangle.Height / 3 * 2),
+ mainColor = Color.White, textureName = itemTextureName
+ };
+ Label itemName = new Label(Manager)
+ {
+ rectangle = new Rectangle(rectangle.X + rectangle.Height / 3 / 2 + rectangle.Height / 3 * 2, rectangle.Y + rectangle.Height / 3 / 2, rectangle.Width / 3, rectangle.Height / 3 * 2),
+ fontColor = fontColor1, text = text1, scale = scale1, fontName = fontName1, mainColor = Color.Transparent
+ };
+ Label itemCount = new Label(Manager)
+ {
+ rectangle = new Rectangle(rectangle.X + rectangle.Width - (int)(rectangle.Height / 3 * 2.5), rectangle.Y + rectangle.Height / 3 / 2, rectangle.Height / 3 * 2, rectangle.Height / 3 * 2),
+ fontColor = fontColor1, text = count.ToString(), scale = scale1, fontName = fontName1, mainColor = Color.Transparent
+ };
+ }
+
+ public override void LoadTexture(ContentManager content)
+ {
+ icon.LoadTexture(content);
+ base.LoadTexture(content);
+ if (itemTextureName == "")
+ {
+ itemTexture = new Texture2D(Manager.GraphicsDevice, 1, 1);
+ itemTexture.SetData(new Color[] { mainColor });
+ }
+ else
+ {
+ try
+ {
+ itemTexture = content.Load(itemTextureName);
+ }
+ catch
+ {
+ itemTexture = new Texture2D(Manager.GraphicsDevice, 1, 1);
+ itemTexture.SetData(new Color[] { mainColor });
+ }
+ }
+ }
+
+ public override void Draw(SpriteBatch _spriteBatch)
+ {
+ base.Draw(_spriteBatch);
+ }
+}
\ No newline at end of file
diff --git a/MonogameLibrary/UI/Elements/Slider.cs b/MonogameLibrary/UI/Elements/Slider.cs
index b496cdf..0525666 100644
--- a/MonogameLibrary/UI/Elements/Slider.cs
+++ b/MonogameLibrary/UI/Elements/Slider.cs
@@ -21,7 +21,10 @@ namespace MonogameLibrary.UI.Elements
public int indentation = 5;
Texture2D texture2;
- public Rectangle sliderRect = new Rectangle(0, 0, 30, 30);
+ ///
+ /// ректенгл ползунка
+ ///
+ public Rectangle sliderRect = new Rectangle(0, 0, 40, 40);
private float sliderValue = 0;
private float minValue = 0, maxValue = 1;
SliderState sliderState = SliderState.None;
@@ -56,7 +59,7 @@ namespace MonogameLibrary.UI.Elements
public override void LoadTexture(ContentManager content)
{
- texture2 = content.Load("textures\\ui\\slider");
+ texture2 = content.Load("Textures/GUI/switch");
base.LoadTexture(content);
}
@@ -73,11 +76,11 @@ namespace MonogameLibrary.UI.Elements
sliderRect.X += (int)(sliderValue * (rectangle.Width - sliderRect.Width - indentation * 2) + indentation);
sliderRect.Y -= sliderRect.Height / 2 - rectangle.Height / 2;
if (sliderState == SliderState.Moving)
- _spriteBatch.Draw(texture2, sliderRect, Color.DarkRed);
+ _spriteBatch.Draw(texture2, sliderRect, Color.Gray);
else if(sliderState == SliderState.HoveringOverSliderButton)
- _spriteBatch.Draw(texture2, sliderRect, new Color(200,0 ,0));
+ _spriteBatch.Draw(texture2, sliderRect, Color.DarkGray);
else
- _spriteBatch.Draw(texture2, sliderRect, Color.Red);
+ _spriteBatch.Draw(texture2, sliderRect, Color.White);
DrawText(_spriteBatch);
}
}
diff --git a/MonogameLibrary/UI/Elements/TextBox.cs b/MonogameLibrary/UI/Elements/TextBox.cs
index 87534eb..529a8be 100644
--- a/MonogameLibrary/UI/Elements/TextBox.cs
+++ b/MonogameLibrary/UI/Elements/TextBox.cs
@@ -89,9 +89,9 @@ namespace MonogameLibrary.UI.Elements
if (hoverState == HoverState.None)
{
if (isSelected == IsSelected.Selected)
- _spriteBatch.Draw(texture, rectangle, new Color(220, 220, 220));
+ _spriteBatch.Draw(texture, rectangle, new Color(211, 211, 211));
else
- _spriteBatch.Draw(texture, rectangle, new Color(245, 245, 245));
+ _spriteBatch.Draw(texture, rectangle, Color.White);
}
else if (hoverState == HoverState.Hovering)
_spriteBatch.Draw(texture, rectangle, new Color(211, 211, 211));
diff --git a/MonogameLibrary/UI/Elements/itemDisplayButton.cs b/MonogameLibrary/UI/Elements/itemDisplayButton.cs
new file mode 100644
index 0000000..0a29c4f
--- /dev/null
+++ b/MonogameLibrary/UI/Elements/itemDisplayButton.cs
@@ -0,0 +1,79 @@
+using Microsoft.Xna.Framework.Graphics;
+using MonogameLibrary.UI.Base;
+using Microsoft.Xna.Framework;
+using Microsoft.Xna.Framework.Graphics;
+using MonogameLibrary.UI.Enums;
+using System;
+using System.Collections.Generic;
+using System.Security.Cryptography.X509Certificates;
+using System.Text;
+using System.Threading;
+using Microsoft.Xna.Framework.Content;
+
+namespace MonogameLibrary.UI.Elements;
+
+public class ItemDisplayButton : DrawableUIElement
+{
+ public int count;
+ public string itemTextureName;
+ private Texture2D itemTexture;
+ public Color fontColor1;
+ protected UIManager Manager;
+ public string fontName1;
+ public string text1;
+ public float scale1;
+ private DrawableUIElement icon;
+
+
+ public ItemDisplayButton(UIManager manager) : base(manager)
+ {
+ Manager = manager;
+ }
+
+ public void Initialize()
+ {
+ icon = new DrawableUIElement(Manager)
+ {
+ rectangle = new Rectangle(rectangle.X + rectangle.Height / 3 / 2, rectangle.Y + rectangle.Height / 3 / 2, rectangle.Height / 3 * 2, rectangle.Height / 3 * 2),
+ mainColor = Color.White, textureName = itemTextureName
+ };
+ Label itemName = new Label(Manager)
+ {
+ rectangle = new Rectangle(rectangle.X + rectangle.Height / 3 / 2 + rectangle.Height / 3 * 2, rectangle.Y + rectangle.Height / 3 / 2, rectangle.Width / 3, rectangle.Height / 3 * 2),
+ fontColor = fontColor1, text = text1, scale = scale1, fontName = fontName1, mainColor = Color.Transparent
+ };
+ Label itemCount = new Label(Manager)
+ {
+ rectangle = new Rectangle(rectangle.X + rectangle.Width - (int)(rectangle.Height / 3 * 2.5), rectangle.Y + rectangle.Height / 3 / 2, rectangle.Height / 3 * 2, rectangle.Height / 3 * 2),
+ fontColor = fontColor1, text = count.ToString(), scale = scale1, fontName = fontName1, mainColor = Color.Transparent
+ };
+ }
+
+ public override void LoadTexture(ContentManager content)
+ {
+ icon.LoadTexture(content);
+ base.LoadTexture(content);
+ if (itemTextureName == "")
+ {
+ itemTexture = new Texture2D(Manager.GraphicsDevice, 1, 1);
+ itemTexture.SetData(new Color[] { mainColor });
+ }
+ else
+ {
+ try
+ {
+ itemTexture = content.Load(itemTextureName);
+ }
+ catch
+ {
+ itemTexture = new Texture2D(Manager.GraphicsDevice, 1, 1);
+ itemTexture.SetData(new Color[] { mainColor });
+ }
+ }
+ }
+
+ public override void Draw(SpriteBatch _spriteBatch)
+ {
+ base.Draw(_spriteBatch);
+ }
+}
\ No newline at end of file
diff --git a/ZoFo.sln b/ZoFo.sln
index d0636e2..3ea9985 100644
--- a/ZoFo.sln
+++ b/ZoFo.sln
@@ -1,8 +1,13 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ZoFo", "ZoFo\ZoFo.csproj", "{D63272E5-A54D-4C24-AA48-2945CB1D0BBB}"
+# Visual Studio Version 17
+VisualStudioVersion = 17.10.35122.118
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ZoFo", "ZoFo\ZoFo.csproj", "{D63272E5-A54D-4C24-AA48-2945CB1D0BBB}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MonogameLibrary", "MonogameLibrary\MonogameLibrary.csproj", "{D6272E15-AD49-468A-BE0F-D812E8697FAC}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MonogameLibrary", "MonogameLibrary\MonogameLibrary.csproj", "{40880E68-4B3A-417B-A39B-95DE46AA2E7E}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AnimationsFileCreator", "AnimationsFileCreator\AnimationsFileCreator.csproj", "{7B143D5C-5198-4ADE-9291-ECC924B78633}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -14,9 +19,16 @@ Global
{D63272E5-A54D-4C24-AA48-2945CB1D0BBB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D63272E5-A54D-4C24-AA48-2945CB1D0BBB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D63272E5-A54D-4C24-AA48-2945CB1D0BBB}.Release|Any CPU.Build.0 = Release|Any CPU
- {D6272E15-AD49-468A-BE0F-D812E8697FAC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {D6272E15-AD49-468A-BE0F-D812E8697FAC}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {D6272E15-AD49-468A-BE0F-D812E8697FAC}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {D6272E15-AD49-468A-BE0F-D812E8697FAC}.Release|Any CPU.Build.0 = Release|Any CPU
+ {40880E68-4B3A-417B-A39B-95DE46AA2E7E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {40880E68-4B3A-417B-A39B-95DE46AA2E7E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {40880E68-4B3A-417B-A39B-95DE46AA2E7E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {40880E68-4B3A-417B-A39B-95DE46AA2E7E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {7B143D5C-5198-4ADE-9291-ECC924B78633}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {7B143D5C-5198-4ADE-9291-ECC924B78633}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7B143D5C-5198-4ADE-9291-ECC924B78633}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {7B143D5C-5198-4ADE-9291-ECC924B78633}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
diff --git a/ZoFo/Content/Content.mgcb b/ZoFo/Content/Content.mgcb
index ddc4c36..14c8973 100644
--- a/ZoFo/Content/Content.mgcb
+++ b/ZoFo/Content/Content.mgcb
@@ -13,3 +13,858 @@
#---------------------------------- Content ---------------------------------#
+#begin Fonts/Font.spritefont
+/importer:FontDescriptionImporter
+/processor:FontDescriptionProcessor
+/processorParam:PremultiplyAlpha=True
+/processorParam:TextureFormat=Compressed
+/build:Fonts/Font.spritefont
+
+#begin Fonts/Font2.spritefont
+/importer:FontDescriptionImporter
+/processor:FontDescriptionProcessor
+/processorParam:PremultiplyAlpha=True
+/processorParam:TextureFormat=Compressed
+/build:Fonts/Font2.spritefont
+
+#begin Fonts/Font3.spritefont
+/importer:FontDescriptionImporter
+/processor:FontDescriptionProcessor
+/processorParam:PremultiplyAlpha=True
+/processorParam:TextureFormat=Compressed
+/build:Fonts/Font3.spritefont
+
+#begin MapData/TileMaps/main.tmj
+/copy:MapData/TileMaps/main.tmj
+
+#begin MapData/TileSets/tileset 1 collision.tsj
+/copy:MapData/TileSets/tileset 1 collision.tsj
+
+#begin MapData/TileSets/TileSet 1.tsj
+/copy:MapData/TileSets/TileSet 1.tsj
+
+#begin MapData/TileSets/TilesetNature.tsj
+/copy:MapData/TileSets/TilesetNature.tsj
+
+#begin sounds/Loot.wav
+/importer:WavImporter
+/processor:SoundEffectProcessor
+/processorParam:Quality=Best
+/build:sounds/Loot.wav
+
+#begin sounds/Odevanie odezdi.wav
+/importer:WavImporter
+/processor:SoundEffectProcessor
+/processorParam:Quality=Best
+/build:sounds/Odevanie odezdi.wav
+
+#begin sounds/Pieot wodichky.wav
+/importer:WavImporter
+/processor:SoundEffectProcessor
+/processorParam:Quality=Best
+/build:sounds/Pieot wodichky.wav
+
+#begin sounds/Sshetchik geigera.wav
+/importer:WavImporter
+/processor:SoundEffectProcessor
+/processorParam:Quality=Best
+/build:sounds/Sshetchik geigera.wav
+
+#begin sounds/Tabletki 2.wav
+/importer:WavImporter
+/processor:SoundEffectProcessor
+/processorParam:Quality=Best
+/build:sounds/Tabletki 2.wav
+
+#begin sounds/Zombi napal.wav
+/importer:WavImporter
+/processor:SoundEffectProcessor
+/processorParam:Quality=Best
+/build:sounds/Zombi napal.wav
+
+#begin sounds/Zombi stoit.wav
+/importer:WavImporter
+/processor:SoundEffectProcessor
+/processorParam:Quality=Best
+/build:sounds/Zombi stoit.wav
+
+#begin Textures/Animations/player_down_idle.animation
+/copy:Textures/Animations/player_down_idle.animation
+
+#begin Textures/Animations/player_down-left_idle.animation
+/copy:Textures/Animations/player_down-left_idle.animation
+
+#begin Textures/Animations/player_down-right_idle.animation
+/copy:Textures/Animations/player_down-right_idle.animation
+
+#begin Textures/Animations/player_idle_down_mining.animation
+/copy:Textures/Animations/player_idle_down_mining.animation
+
+#begin Textures/Animations/player_idle_down-left_mining.animation
+/copy:Textures/Animations/player_idle_down-left_mining.animation
+
+#begin Textures/Animations/player_idle_left_mining.animation
+/copy:Textures/Animations/player_idle_left_mining.animation
+
+#begin Textures/Animations/player_idle_rights_mining.animation
+/copy:Textures/Animations/player_idle_rights_mining.animation
+
+#begin Textures/Animations/player_idle_top_noweapon.animation
+/copy:Textures/Animations/player_idle_top_noweapon.animation
+
+#begin Textures/Animations/player_idle_top-left_mining.animation
+/copy:Textures/Animations/player_idle_top-left_mining.animation
+
+#begin Textures/Animations/player_idle_top-right_noweapon.animation
+/copy:Textures/Animations/player_idle_top-right_noweapon.animation
+
+#begin Textures/Animations/player_idle_top-rights_mining.animation
+/copy:Textures/Animations/player_idle_top-rights_mining.animation
+
+#begin Textures/Animations/player_left_idle.animation
+/copy:Textures/Animations/player_left_idle.animation
+
+#begin Textures/Animations/player_look_down_weapon.animation
+/copy:Textures/Animations/player_look_down_weapon.animation
+
+#begin Textures/Animations/player_look_down.animation
+/copy:Textures/Animations/player_look_down.animation
+
+#begin Textures/Animations/player_look_left_down_weapon.animation
+/copy:Textures/Animations/player_look_left_down_weapon.animation
+
+#begin Textures/Animations/player_look_left_down.animation
+/copy:Textures/Animations/player_look_left_down.animation
+
+#begin Textures/Animations/player_look_left_up_weapon.animation
+/copy:Textures/Animations/player_look_left_up_weapon.animation
+
+#begin Textures/Animations/player_look_left_up.animation
+/copy:Textures/Animations/player_look_left_up.animation
+
+#begin Textures/Animations/player_look_left_weapon.animation
+/copy:Textures/Animations/player_look_left_weapon.animation
+
+#begin Textures/Animations/player_look_left.animation
+/copy:Textures/Animations/player_look_left.animation
+
+#begin Textures/Animations/player_look_right_down_weapon.animation
+/copy:Textures/Animations/player_look_right_down_weapon.animation
+
+#begin Textures/Animations/player_look_right_down.animation
+/copy:Textures/Animations/player_look_right_down.animation
+
+#begin Textures/Animations/player_look_right_up_weapon.animation
+/copy:Textures/Animations/player_look_right_up_weapon.animation
+
+#begin Textures/Animations/player_look_right_up.animation
+/copy:Textures/Animations/player_look_right_up.animation
+
+#begin Textures/Animations/player_look_right_weapon.animation
+/copy:Textures/Animations/player_look_right_weapon.animation
+
+#begin Textures/Animations/player_look_right.animation
+/copy:Textures/Animations/player_look_right.animation
+
+#begin Textures/Animations/player_look_up_weapon.animation
+/copy:Textures/Animations/player_look_up_weapon.animation
+
+#begin Textures/Animations/player_look_up.animation
+/copy:Textures/Animations/player_look_up.animation
+
+#begin Textures/Animations/player_right_idle.animation
+/copy:Textures/Animations/player_right_idle.animation
+
+#begin Textures/Animations/player_running_top_rotate.animation
+/copy:Textures/Animations/player_running_top_rotate.animation
+
+#begin Textures/Animations/player_top_mining.animation
+/copy:Textures/Animations/player_top_mining.animation
+
+#begin Textures/Animations/player_top-left_idle.animation
+/copy:Textures/Animations/player_top-left_idle.animation
+
+#begin Textures/Animations/player_top-right_idle.animation
+/copy:Textures/Animations/player_top-right_idle.animation
+
+#begin Textures/Animations/running_top.animation
+/copy:Textures/Animations/running_top.animation
+
+#begin Textures/Animations/testAnimation.animation
+/copy:Textures/Animations/testAnimation.animation
+
+#begin Textures/Animations/testAnimationExample.animation
+/copy:Textures/Animations/testAnimationExample.animation
+
+#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_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_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.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/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/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
+/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/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
+/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/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
+/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/selectMode.png
+
+#begin Textures/GUI/background/waiting.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/waiting.png
+
+#begin Textures/GUI/checkboxs_off.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/checkboxs_off.png
+
+#begin Textures/GUI/checkboxs_off-on.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/checkboxs_off-on.png
+
+#begin Textures/GUI/checkboxs_on.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/checkboxs_on.png
+
+#begin Textures/GUI/MenuBackground.jpg
+/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/MenuBackground.jpg
+
+#begin Textures/GUI/mouse.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/mouse.png
+
+#begin Textures/GUI/switch.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/switch.png
+
+#begin Textures/GUI/Switch_backgrownd.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/Switch_backgrownd.png
+
+#begin Textures/icons/12.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/icons/12.png
+
+#begin Textures/icons/13.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/icons/13.png
+
+#begin Textures/icons/14.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/icons/14.png
+
+#begin Textures/icons/21.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/icons/21.png
+
+#begin Textures/icons/22.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/icons/22.png
+
+#begin Textures/icons/5.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/icons/5.png
+
+#begin Textures/icons/6.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/icons/6.png
+
+#begin Textures/icons/7.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/icons/7.png
+
+#begin Textures/icons/8.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/icons/8.png
+
+#begin Textures/icons/9.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/icons/9.png
+
+#begin Textures/Test/pickaxe.webp
+/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/Test/pickaxe.webp
+
+#begin Textures/Test/rock.jpg
+/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/Test/rock.jpg
+
+#begin Textures/Test/steel.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/Test/steel.png
+
+#begin Textures/Test/wood.jpg
+/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/Test/wood.jpg
+
+#begin Textures/TileSetImages/Pipes.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/Pipes.png
+
+#begin Textures/TileSetImages/Tilelist1.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/Tilelist1.png
+
+#begin Textures/TileSetImages/Tilelist2.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/Tilelist2.png
+
+#begin Textures/TileSetImages/Tilelist3.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/Tilelist3.png
+
+#begin Textures/TileSetImages/Tilelist4.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/Tilelist4.png
+
+#begin Textures/TileSetImages/TilesetDesert.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/TilesetDesert.png
+
+#begin Textures/TileSetImages/TilesetDungeon.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/TilesetDungeon.png
+
+#begin Textures/TileSetImages/TilesetElement.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/TilesetElement.png
+
+#begin Textures/TileSetImages/TilesetField.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/TilesetField.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
+
+#begin Textures/TileSetImages/TilesetFloorB.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/TilesetFloorB.png
+
+#begin Textures/TileSetImages/TilesetFloorDetail.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/TilesetFloorDetail.png
+
+#begin Textures/TileSetImages/TilesetHole.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/TilesetHole.png
+
+#begin Textures/TileSetImages/TilesetHouse.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/TilesetHouse.png
+
+#begin Textures/TileSetImages/TilesetLogic.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/TilesetLogic.png
+
+#begin Textures/TileSetImages/TilesetNature.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/TilesetNature.png
+
+#begin Textures/TileSetImages/TilesetRelief.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/TilesetRelief.png
+
+#begin Textures/TileSetImages/TilesetReliefDetail.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/TilesetReliefDetail.png
+
+#begin Textures/TileSetImages/TilesetTowers.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/TilesetTowers.png
+
+#begin Textures/TileSetImages/TilesetVillageAbandoned.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/TilesetVillageAbandoned.png
+
+#begin Textures/TileSetImages/TilesetWater.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/TilesetWater.png
+
diff --git a/ZoFo/Content/Fonts/CarltineRegular-K7z5l.ttf b/ZoFo/Content/Fonts/CarltineRegular-K7z5l.ttf
new file mode 100644
index 0000000..1496983
Binary files /dev/null and b/ZoFo/Content/Fonts/CarltineRegular-K7z5l.ttf differ
diff --git a/ZoFo/Content/Fonts/Debrosee-ALPnL.ttf b/ZoFo/Content/Fonts/Debrosee-ALPnL.ttf
new file mode 100644
index 0000000..311dd61
Binary files /dev/null and b/ZoFo/Content/Fonts/Debrosee-ALPnL.ttf differ
diff --git a/ZoFo/Content/Fonts/Font.spritefont b/ZoFo/Content/Fonts/Font.spritefont
new file mode 100644
index 0000000..754d1ee
--- /dev/null
+++ b/ZoFo/Content/Fonts/Font.spritefont
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+ Debrosee-ALPnL.ttf
+
+
+ 100
+
+
+ 0
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+ ~
+
+
+
+
diff --git a/ZoFo/Content/Fonts/Font2.spritefont b/ZoFo/Content/Fonts/Font2.spritefont
new file mode 100644
index 0000000..3aaf8e7
--- /dev/null
+++ b/ZoFo/Content/Fonts/Font2.spritefont
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+ CarltineRegular-K7z5l.ttf
+
+
+ 15
+
+
+ 0
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+ ~
+
+
+
+
diff --git a/ZoFo/Content/Fonts/Font3.spritefont b/ZoFo/Content/Fonts/Font3.spritefont
new file mode 100644
index 0000000..b82ba24
--- /dev/null
+++ b/ZoFo/Content/Fonts/Font3.spritefont
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+ MouldyCheeseRegular-WyMWG.ttf
+
+
+ 50
+
+
+ 0
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+ ~
+
+
+
+
diff --git a/ZoFo/Content/Fonts/MouldyCheeseRegular-WyMWG.ttf b/ZoFo/Content/Fonts/MouldyCheeseRegular-WyMWG.ttf
new file mode 100644
index 0000000..9c36cd0
Binary files /dev/null and b/ZoFo/Content/Fonts/MouldyCheeseRegular-WyMWG.ttf differ
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
new file mode 100644
index 0000000..c7b859f
--- /dev/null
+++ b/ZoFo/Content/MapData/MapSession.tiled-session
@@ -0,0 +1,57 @@
+{
+ "Map/SizeTest": {
+ "height": 4300,
+ "width": 2
+ },
+ "activeFile": "TileMaps/main.tmj",
+ "expandedProjectPaths": [
+ "TileSets",
+ "TileMaps",
+ "."
+ ],
+ "fileStates": {
+ "TileMaps/TileSets/TileSet 1.tsj": {
+ "scaleInDock": 1
+ },
+ "TileMaps/main.tmj": {
+ "scale": 0.5,
+ "selectedLayer": 1,
+ "viewCenter": {
+ "x": 895,
+ "y": 270
+ }
+ },
+ "TileSets/CollisionTileSet.tsj": {
+ "scaleInDock": 0.75,
+ "scaleInEditor": 1
+ },
+ "TileSets/TileSet 1.tsj": {
+ "scaleInDock": 1,
+ "scaleInEditor": 1.5
+ },
+ "TileSets/WallSet.tsj": {
+ "scaleInDock": 1,
+ "scaleInEditor": 1
+ }
+ },
+ "last.imagePath": "D:/C#/Я смотрел ваши ХАКАТОНЫ/ZoFo/ZoFo/Content/Textures/TileSetImages",
+ "openFiles": [
+ "TileSets/TileSet 1.tsj",
+ "TileMaps/main.tmj",
+ "TileSets/CollisionTileSet.tsj"
+ ],
+ "project": "MapSession.tiled-project",
+ "recentFiles": [
+ "TileMaps/main.tmj",
+ "TileSets/CollisionTileSet.tsj",
+ "TileSets/TileSet 1.tsj",
+ "TileSets/WallSet.tsj"
+ ],
+ "tileset.lastUsedFormat": "json",
+ "tileset.margin": 0,
+ "tileset.spacing": 0,
+ "tileset.tileSize": {
+ "height": 16,
+ "width": 16
+ }
+}
diff --git a/ZoFo/Content/MapData/TileMaps/main.tmj b/ZoFo/Content/MapData/TileMaps/main.tmj
new file mode 100644
index 0000000..1f5921c
--- /dev/null
+++ b/ZoFo/Content/MapData/TileMaps/main.tmj
@@ -0,0 +1,1133 @@
+{ "compressionlevel":-1,
+ "height":20,
+ "infinite":true,
+ "layers":[
+ {
+ "chunks":[
+ {
+ "data":[46, 10, 2, 51, 24, 90, 24, 24, 24, 24, 24, 90, 24, 24, 50, 51,
+ 3, 23, 24, 24, 24, 90, 24, 24, 89, 24, 90, 89, 28, 29, 24, 24,
+ 50, 51, 24, 90, 24, 89, 24, 28, 29, 90, 24, 24, 25, 23, 24, 24,
+ 24, 28, 46, 29, 24, 24, 24, 50, 51, 90, 24, 24, 25, 23, 24, 24,
+ 24, 50, 3, 23, 24, 24, 24, 24, 24, 24, 24, 24, 50, 51, 28, 29,
+ 24, 89, 50, 51, 28, 29, 24, 24, 24, 24, 24, 28, 46, 46, 10, 32,
+ 28, 46, 46, 29, 50, 51, 24, 89, 89, 28, 29, 50, 2, 3, 23, 25,
+ 25, 1, 3, 45, 46, 29, 24, 24, 28, 10, 51, 89, 89, 50, 51, 50,
+ 25, 45, 10, 2, 2, 51, 90, 24, 50, 51, 24, 24, 24, 24, 24, 24,
+ 50, 2, 51, 28, 46, 29, 24, 24, 28, 46, 29, 24, 90, 24, 24, 24,
+ 90, 24, 24, 50, 2, 32, 29, 24, 25, 1, 32, 29, 24, 89, 24, 90,
+ 24, 90, 24, 24, 24, 25, 23, 28, 10, 32, 10, 32, 29, 24, 24, 24,
+ 29, 24, 24, 24, 24, 25, 23, 25, 23, 50, 32, 47, 23, 24, 24, 24,
+ 51, 28, 29, 89, 24, 50, 32, 10, 51, 24, 50, 2, 51, 24, 24, 24,
+ 24, 50, 32, 46, 29, 28, 47, 23, 24, 28, 46, 29, 28, 29, 24, 89,
+ 24, 28, 10, 2, 51, 25, 1, 51, 28, 10, 2, 51, 50, 51, 24, 89],
+ "height":16,
+ "width":16,
+ "x":0,
+ "y":0
+ },
+ {
+ "data":[24, 24, 90, 90, 24, 24, 24, 24, 24, 24, 89, 90, 24, 28, 46, 46,
+ 24, 24, 24, 24, 24, 24, 24, 90, 24, 24, 89, 24, 24, 25, 1, 2,
+ 89, 24, 89, 24, 24, 89, 24, 28, 29, 24, 28, 29, 24, 50, 32, 29,
+ 24, 24, 24, 24, 24, 24, 24, 50, 51, 28, 10, 32, 46, 29, 25, 23,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 25, 23, 50, 3, 45, 10, 32,
+ 29, 24, 24, 24, 24, 28, 29, 90, 24, 25, 23, 24, 50, 2, 51, 25,
+ 23, 28, 46, 46, 46, 47, 23, 24, 24, 50, 51, 24, 24, 28, 29, 50,
+ 51, 50, 2, 2, 3, 115, 23, 24, 24, 24, 89, 24, 24, 50, 32, 29,
+ 24, 24, 24, 24, 50, 3, 23, 28, 46, 46, 29, 24, 24, 89, 25, 23,
+ 24, 24, 24, 24, 24, 50, 32, 10, 2, 2, 32, 46, 29, 24, 50, 51,
+ 24, 24, 24, 28, 29, 89, 25, 23, 90, 28, 47, 1, 51, 89, 24, 24,
+ 24, 90, 24, 25, 23, 24, 50, 32, 29, 50, 2, 32, 29, 28, 29, 24,
+ 24, 24, 24, 25, 45, 46, 46, 10, 32, 29, 24, 50, 32, 10, 51, 24,
+ 24, 28, 46, 10, 2, 2, 2, 32, 10, 32, 46, 46, 10, 51, 24, 90,
+ 24, 50, 3, 23, 90, 24, 24, 50, 51, 50, 2, 3, 23, 24, 24, 89,
+ 28, 29, 50, 32, 29, 89, 24, 24, 24, 90, 24, 50, 32, 46, 46, 46],
+ "height":16,
+ "width":16,
+ "x":16,
+ "y":0
+ },
+ {
+ "data":[46, 29, 89, 24, 24, 28, 47, 23, 24, 24, 28, 10, 51, 24, 24, 24,
+ 2, 51, 24, 24, 24, 50, 2, 51, 28, 29, 50, 51, 24, 24, 24, 90,
+ 24, 24, 90, 24, 24, 24, 24, 24, 25, 23, 28, 29, 24, 24, 89, 24,
+ 24, 90, 24, 24, 24, 24, 24, 24, 50, 32, 47, 23, 24, 89, 24, 24,
+ 29, 24, 24, 28, 46, 46, 29, 24, 24, 50, 2, 51, 24, 24, 28, 46,
+ 23, 24, 24, 25, 1, 2, 32, 29, 24, 24, 24, 24, 24, 24, 50, 2,
+ 32, 46, 46, 47, 23, 24, 50, 51, 24, 24, 90, 24, 89, 24, 24, 24,
+ 50, 3, 111, 1, 51, 24, 24, 24, 24, 28, 29, 24, 24, 24, 28, 46,
+ 24, 50, 2, 32, 29, 24, 24, 28, 29, 25, 23, 24, 24, 24, 50, 2,
+ 89, 24, 90, 50, 51, 28, 29, 50, 51, 50, 32, 29, 24, 24, 24, 24,
+ 24, 28, 29, 24, 24, 25, 23, 24, 89, 24, 50, 32, 29, 90, 24, 24,
+ 24, 25, 23, 24, 24, 25, 23, 24, 90, 24, 24, 25, 45, 46, 29, 24,
+ 28, 47, 45, 29, 24, 50, 32, 29, 24, 89, 24, 25, 114, 1, 32, 29,
+ 25, 114, 1, 51, 24, 90, 50, 51, 24, 24, 24, 25, 1, 51, 50, 51,
+ 50, 2, 51, 24, 28, 29, 28, 29, 24, 24, 24, 25, 45, 46, 29, 24,
+ 46, 29, 24, 24, 50, 51, 25, 23, 24, 24, 28, 10, 2, 2, 32, 29],
+ "height":16,
+ "width":16,
+ "x":32,
+ "y":0
+ },
+ {
+ "data":[28, 29, 28, 46, 10, 51, 89, 24, 28, 29, 25, 111, 45, 29, 24, 25,
+ 50, 51, 50, 2, 51, 24, 24, 24, 25, 23, 25, 1, 2, 51, 89, 50,
+ 89, 24, 24, 24, 24, 24, 24, 24, 50, 51, 50, 51, 90, 24, 24, 24,
+ 24, 89, 28, 46, 29, 24, 24, 24, 24, 24, 24, 28, 29, 24, 24, 24,
+ 29, 24, 25, 1, 51, 24, 28, 29, 24, 28, 29, 50, 51, 89, 24, 90,
+ 51, 24, 50, 32, 46, 29, 50, 51, 24, 25, 23, 89, 24, 24, 24, 24,
+ 24, 28, 29, 25, 115, 45, 29, 24, 24, 25, 23, 24, 24, 24, 24, 24,
+ 29, 25, 23, 50, 2, 2, 51, 90, 89, 25, 23, 24, 24, 24, 24, 24,
+ 51, 25, 23, 89, 28, 29, 24, 24, 24, 25, 45, 29, 24, 28, 29, 28,
+ 24, 50, 32, 29, 25, 23, 24, 24, 24, 50, 2, 51, 24, 50, 32, 10,
+ 28, 29, 25, 45, 10, 51, 28, 46, 46, 46, 29, 89, 89, 24, 25, 23,
+ 25, 45, 10, 2, 32, 29, 50, 3, 1, 3, 23, 24, 24, 90, 50, 51,
+ 50, 2, 32, 29, 25, 23, 24, 50, 32, 10, 32, 46, 29, 24, 24, 90,
+ 89, 24, 25, 45, 47, 23, 24, 24, 50, 51, 25, 1, 51, 90, 90, 24,
+ 24, 24, 50, 2, 2, 51, 24, 89, 24, 24, 25, 23, 24, 24, 24, 24,
+ 24, 28, 29, 24, 28, 46, 29, 24, 24, 24, 50, 51, 24, 89, 28, 46],
+ "height":16,
+ "width":16,
+ "x":48,
+ "y":0
+ },
+ {
+ "data":[23, 28, 47, 23, 24, 25, 114, 23, 28, 46, 46, 46, 46, 46, 46, 47,
+ 51, 50, 2, 32, 29, 25, 115, 23, 50, 2, 3, 115, 111, 115, 115, 1,
+ 28, 46, 46, 10, 51, 25, 111, 23, 24, 24, 25, 114, 1, 3, 1, 32,
+ 50, 2, 2, 51, 24, 50, 2, 51, 28, 29, 50, 2, 32, 10, 51, 25,
+ 28, 29, 24, 24, 24, 24, 24, 24, 50, 51, 24, 24, 50, 51, 24, 50,
+ 50, 51, 24, 24, 24, 89, 24, 24, 24, 24, 24, 24, 24, 90, 28, 29,
+ 90, 24, 24, 90, 28, 46, 29, 24, 90, 24, 24, 24, 24, 24, 50, 51,
+ 89, 89, 24, 24, 25, 115, 23, 24, 28, 29, 24, 24, 24, 24, 24, 28,
+ 46, 29, 24, 24, 25, 111, 23, 24, 50, 51, 24, 24, 24, 24, 24, 25,
+ 2, 51, 89, 90, 50, 2, 32, 29, 24, 24, 28, 29, 24, 24, 90, 25,
+ 24, 24, 24, 24, 24, 28, 10, 51, 24, 90, 50, 51, 24, 24, 28, 10,
+ 24, 24, 24, 24, 24, 50, 51, 28, 46, 46, 29, 24, 24, 24, 50, 51,
+ 24, 24, 28, 46, 29, 24, 89, 25, 1, 2, 32, 29, 24, 24, 28, 46,
+ 24, 24, 50, 2, 51, 24, 24, 25, 23, 28, 47, 23, 24, 28, 10, 3,
+ 24, 90, 89, 24, 89, 24, 24, 50, 32, 10, 2, 51, 24, 25, 23, 25,
+ 29, 24, 89, 24, 24, 24, 24, 89, 25, 23, 24, 24, 24, 25, 23, 50],
+ "height":16,
+ "width":16,
+ "x":64,
+ "y":0
+ },
+ {
+ "data":[23, 25, 114, 45, 46, 46, 46, 46, 46, 46, 47, 45, 47, 23, 24, 50,
+ 51, 50, 2, 2, 2, 2, 2, 3, 113, 1, 2, 2, 2, 51, 89, 24,
+ 29, 24, 89, 90, 24, 28, 29, 50, 3, 23, 24, 24, 90, 89, 90, 24,
+ 23, 90, 28, 46, 46, 10, 51, 90, 50, 32, 46, 46, 29, 24, 24, 24,
+ 51, 90, 25, 115, 115, 23, 24, 24, 24, 50, 2, 3, 23, 24, 28, 29,
+ 24, 24, 50, 2, 2, 51, 24, 24, 24, 24, 90, 25, 23, 24, 25, 45,
+ 28, 29, 24, 24, 28, 29, 24, 24, 24, 24, 24, 25, 23, 28, 47, 111,
+ 10, 51, 89, 89, 50, 32, 29, 28, 46, 29, 24, 50, 51, 25, 1, 2,
+ 23, 24, 28, 29, 24, 50, 51, 50, 3, 23, 24, 28, 29, 25, 23, 24,
+ 23, 89, 50, 32, 29, 89, 24, 24, 25, 45, 46, 10, 51, 25, 23, 89,
+ 51, 24, 90, 50, 51, 24, 24, 24, 50, 3, 115, 45, 46, 47, 45, 29,
+ 28, 29, 24, 28, 29, 24, 24, 24, 24, 50, 2, 2, 2, 3, 111, 45,
+ 10, 32, 29, 50, 51, 28, 46, 29, 89, 24, 24, 24, 24, 25, 115, 1,
+ 23, 50, 32, 29, 24, 25, 111, 23, 24, 24, 28, 29, 90, 50, 3, 23,
+ 23, 24, 25, 23, 24, 50, 3, 23, 24, 24, 50, 51, 24, 24, 50, 32,
+ 51, 90, 50, 51, 24, 24, 25, 23, 24, 24, 24, 24, 24, 24, 24, 50],
+ "height":16,
+ "width":16,
+ "x":80,
+ "y":0
+ },
+ {
+ "data":[3, 23, 90, 50, 32, 10, 3, 115, 111, 45, 47, 111, 45, 46, 10, 2,
+ 25, 45, 29, 24, 50, 32, 10, 2, 2, 2, 2, 2, 2, 2, 51, 24,
+ 25, 111, 45, 46, 46, 10, 51, 24, 24, 89, 24, 89, 24, 90, 24, 24,
+ 25, 114, 111, 111, 1, 51, 28, 29, 28, 46, 46, 29, 24, 24, 90, 89,
+ 25, 115, 1, 2, 51, 24, 25, 23, 50, 2, 3, 45, 29, 24, 89, 24,
+ 10, 2, 32, 29, 89, 28, 10, 51, 24, 24, 50, 2, 51, 24, 24, 24,
+ 23, 90, 50, 32, 29, 25, 45, 29, 89, 24, 24, 24, 24, 24, 24, 24,
+ 51, 28, 46, 10, 51, 50, 2, 51, 24, 24, 24, 24, 24, 90, 24, 24,
+ 24, 50, 2, 51, 24, 90, 24, 24, 28, 29, 24, 24, 24, 24, 24, 28,
+ 89, 24, 28, 46, 29, 24, 24, 24, 25, 45, 29, 24, 24, 24, 28, 10,
+ 24, 24, 50, 3, 23, 24, 24, 24, 50, 2, 51, 24, 24, 24, 25, 23,
+ 29, 24, 24, 50, 51, 24, 24, 24, 24, 24, 24, 24, 24, 24, 50, 51,
+ 32, 46, 29, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 25, 1, 32, 46, 46, 29, 24, 24, 28, 46, 29, 24, 24, 24, 24, 28,
+ 10, 32, 10, 3, 1, 32, 29, 24, 50, 2, 51, 24, 89, 24, 24, 25,
+ 51, 25, 23, 25, 45, 10, 32, 46, 29, 24, 24, 24, 24, 89, 90, 50],
+ "height":16,
+ "width":16,
+ "x":96,
+ "y":0
+ },
+ {
+ "data":[51, 24, 24, 25, 23, 24, 25, 114, 1, 51, 24, 90, 24, 25, 23, 50,
+ 24, 24, 28, 10, 32, 46, 10, 2, 51, 24, 28, 46, 29, 50, 51, 24,
+ 24, 24, 50, 51, 50, 3, 45, 29, 24, 24, 50, 2, 32, 29, 28, 29,
+ 90, 24, 24, 24, 24, 50, 2, 51, 24, 24, 90, 28, 47, 45, 10, 51,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 28, 29, 50, 2, 2, 51, 24,
+ 24, 24, 24, 24, 24, 24, 24, 28, 29, 50, 51, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 28, 29, 50, 51, 24, 24, 24, 89, 90, 28, 29,
+ 24, 24, 28, 46, 29, 25, 23, 28, 29, 28, 46, 29, 24, 24, 50, 32,
+ 29, 24, 50, 2, 32, 10, 51, 25, 23, 25, 111, 45, 29, 24, 24, 25,
+ 51, 24, 24, 24, 50, 51, 24, 50, 32, 10, 3, 1, 32, 29, 24, 50,
+ 24, 24, 24, 90, 24, 24, 24, 24, 25, 23, 25, 23, 50, 51, 24, 24,
+ 24, 28, 46, 29, 24, 24, 90, 24, 25, 23, 50, 51, 24, 24, 24, 24,
+ 24, 25, 112, 23, 28, 46, 46, 29, 50, 51, 24, 24, 89, 28, 29, 24,
+ 29, 25, 1, 32, 10, 3, 111, 45, 29, 24, 24, 89, 24, 50, 51, 28,
+ 45, 47, 45, 10, 51, 25, 1, 2, 32, 29, 24, 24, 24, 24, 24, 50,
+ 2, 2, 3, 23, 24, 50, 51, 24, 50, 51, 24, 24, 24, 24, 24, 24],
+ "height":16,
+ "width":16,
+ "x":112,
+ "y":0
+ },
+ {
+ "data":[24, 50, 32, 29, 24, 25, 23, 90, 50, 32, 46, 46, 46, 29, 24, 24,
+ 24, 90, 50, 32, 46, 10, 51, 24, 24, 25, 111, 1, 2, 32, 46, 46,
+ 29, 24, 89, 25, 1, 51, 28, 29, 28, 47, 111, 23, 28, 10, 2, 2,
+ 32, 29, 90, 50, 51, 24, 50, 51, 50, 2, 3, 23, 50, 32, 29, 28,
+ 25, 45, 29, 24, 24, 90, 24, 90, 28, 46, 10, 51, 24, 50, 51, 25,
+ 25, 114, 45, 29, 24, 28, 29, 24, 50, 2, 51, 28, 46, 29, 24, 25,
+ 50, 2, 2, 51, 24, 25, 23, 24, 28, 46, 46, 10, 2, 51, 24, 25,
+ 24, 28, 29, 24, 90, 50, 32, 46, 10, 3, 114, 23, 24, 24, 24, 25,
+ 24, 50, 51, 89, 89, 24, 25, 115, 45, 10, 2, 32, 29, 24, 24, 25,
+ 29, 89, 24, 24, 24, 90, 25, 1, 2, 32, 29, 25, 23, 24, 89, 25,
+ 23, 24, 28, 46, 29, 28, 10, 51, 24, 50, 32, 47, 23, 24, 89, 25,
+ 51, 24, 25, 1, 32, 10, 32, 29, 24, 24, 50, 2, 51, 24, 24, 50,
+ 24, 28, 47, 23, 50, 51, 50, 51, 89, 24, 28, 46, 29, 24, 24, 24,
+ 28, 10, 3, 23, 24, 24, 24, 24, 28, 46, 10, 3, 45, 46, 29, 24,
+ 50, 32, 47, 23, 89, 24, 24, 24, 50, 2, 51, 50, 2, 2, 51, 24,
+ 24, 50, 3, 23, 24, 24, 24, 24, 90, 24, 89, 24, 24, 24, 24, 24],
+ "height":16,
+ "width":16,
+ "x":0,
+ "y":16
+ },
+ {
+ "data":[25, 23, 28, 47, 23, 24, 24, 24, 24, 24, 89, 89, 50, 2, 3, 1,
+ 47, 23, 50, 2, 51, 24, 24, 90, 24, 28, 29, 28, 29, 24, 25, 23,
+ 2, 51, 24, 24, 24, 24, 24, 28, 29, 50, 51, 25, 23, 24, 25, 45,
+ 29, 24, 24, 24, 89, 24, 24, 50, 32, 29, 24, 50, 51, 28, 10, 2,
+ 45, 46, 46, 29, 89, 24, 24, 24, 50, 51, 24, 24, 24, 50, 51, 24,
+ 111, 115, 1, 32, 29, 24, 24, 28, 29, 89, 24, 24, 89, 24, 24, 24,
+ 111, 1, 32, 10, 51, 24, 24, 50, 51, 24, 24, 24, 24, 24, 24, 24,
+ 115, 23, 50, 51, 90, 24, 28, 29, 24, 24, 24, 24, 24, 24, 24, 24,
+ 1, 51, 24, 24, 24, 24, 50, 51, 24, 89, 90, 24, 24, 24, 24, 24,
+ 23, 24, 89, 28, 29, 24, 89, 24, 24, 89, 90, 28, 29, 24, 24, 24,
+ 23, 24, 28, 47, 45, 46, 29, 24, 28, 46, 29, 50, 51, 24, 24, 24,
+ 51, 24, 50, 2, 2, 2, 51, 89, 50, 2, 51, 24, 24, 28, 46, 29,
+ 24, 89, 24, 24, 24, 28, 29, 24, 24, 90, 24, 90, 24, 50, 2, 32,
+ 24, 90, 24, 24, 90, 50, 51, 24, 24, 89, 24, 24, 24, 28, 29, 50,
+ 24, 28, 29, 24, 24, 24, 24, 28, 46, 29, 24, 24, 24, 50, 32, 29,
+ 90, 50, 51, 24, 24, 28, 46, 10, 2, 32, 46, 29, 24, 24, 50, 32],
+ "height":16,
+ "width":16,
+ "x":16,
+ "y":16
+ },
+ {
+ "data":[3, 23, 24, 24, 24, 24, 50, 51, 24, 24, 50, 51, 24, 28, 10, 51,
+ 50, 32, 29, 24, 24, 24, 24, 24, 89, 90, 24, 24, 24, 50, 51, 24,
+ 46, 10, 51, 28, 46, 29, 28, 46, 29, 24, 28, 46, 46, 29, 24, 28,
+ 2, 32, 29, 25, 114, 23, 25, 111, 23, 90, 25, 1, 2, 32, 46, 10,
+ 24, 50, 51, 50, 2, 51, 25, 1, 32, 46, 47, 23, 24, 25, 1, 32,
+ 24, 90, 24, 24, 24, 24, 50, 32, 10, 2, 2, 51, 24, 50, 51, 50,
+ 90, 90, 24, 24, 24, 24, 28, 10, 32, 29, 24, 24, 24, 24, 24, 24,
+ 24, 90, 24, 24, 24, 24, 25, 45, 47, 23, 24, 24, 24, 24, 24, 24,
+ 28, 29, 89, 24, 24, 24, 50, 3, 1, 32, 46, 46, 29, 90, 24, 24,
+ 25, 23, 24, 24, 24, 89, 24, 50, 32, 47, 1, 2, 32, 46, 29, 24,
+ 50, 32, 29, 24, 24, 24, 28, 46, 10, 3, 45, 46, 10, 2, 32, 46,
+ 24, 50, 51, 90, 24, 24, 25, 114, 23, 50, 2, 2, 51, 24, 25, 111,
+ 46, 29, 24, 89, 24, 24, 50, 2, 32, 46, 46, 29, 24, 24, 25, 111,
+ 2, 51, 24, 24, 24, 90, 90, 90, 25, 112, 1, 51, 24, 24, 50, 2,
+ 24, 24, 24, 24, 24, 24, 89, 24, 50, 2, 32, 46, 46, 29, 24, 24,
+ 46, 46, 29, 24, 24, 89, 24, 90, 24, 24, 50, 2, 3, 23, 24, 24],
+ "height":16,
+ "width":16,
+ "x":32,
+ "y":16
+ },
+ {
+ "data":[24, 50, 32, 46, 10, 2, 32, 29, 24, 24, 89, 89, 24, 24, 50, 2,
+ 24, 24, 50, 3, 23, 24, 25, 23, 24, 24, 24, 24, 24, 24, 89, 24,
+ 29, 24, 24, 25, 23, 24, 25, 23, 24, 24, 89, 24, 24, 24, 28, 46,
+ 51, 24, 24, 50, 51, 28, 10, 51, 24, 89, 24, 24, 24, 90, 50, 2,
+ 29, 24, 90, 24, 89, 25, 23, 24, 28, 29, 24, 24, 24, 90, 24, 24,
+ 51, 28, 29, 24, 90, 25, 23, 24, 50, 32, 29, 90, 28, 29, 89, 24,
+ 90, 25, 45, 46, 46, 10, 32, 46, 29, 50, 51, 90, 50, 51, 24, 24,
+ 89, 25, 114, 115, 111, 23, 25, 1, 51, 24, 28, 46, 29, 28, 29, 24,
+ 24, 25, 1, 2, 2, 51, 25, 23, 24, 24, 25, 111, 45, 10, 51, 24,
+ 24, 25, 23, 24, 28, 46, 10, 32, 29, 24, 25, 114, 115, 23, 24, 28,
+ 29, 50, 51, 24, 50, 2, 32, 10, 32, 46, 10, 2, 2, 32, 29, 50,
+ 45, 46, 29, 24, 89, 90, 50, 32, 10, 2, 51, 24, 89, 25, 23, 24,
+ 114, 1, 32, 46, 29, 28, 46, 10, 51, 24, 89, 24, 24, 25, 23, 24,
+ 2, 32, 10, 2, 51, 50, 2, 51, 90, 24, 24, 24, 24, 50, 51, 24,
+ 24, 50, 32, 46, 29, 24, 90, 28, 29, 24, 90, 24, 24, 24, 24, 24,
+ 90, 24, 50, 2, 51, 24, 24, 50, 32, 29, 24, 24, 89, 90, 24, 24],
+ "height":16,
+ "width":16,
+ "x":48,
+ "y":16
+ },
+ {
+ "data":[51, 24, 24, 89, 89, 24, 24, 90, 25, 23, 24, 24, 24, 50, 51, 24,
+ 89, 28, 29, 24, 24, 89, 24, 24, 50, 51, 24, 90, 24, 28, 29, 28,
+ 46, 10, 32, 29, 24, 24, 24, 24, 24, 24, 28, 29, 28, 47, 23, 25,
+ 2, 51, 50, 32, 46, 29, 24, 24, 24, 28, 10, 32, 10, 2, 51, 50,
+ 24, 24, 24, 50, 2, 51, 24, 24, 24, 25, 45, 10, 51, 24, 24, 28,
+ 90, 90, 24, 24, 24, 24, 24, 24, 89, 50, 2, 32, 29, 24, 24, 50,
+ 89, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 50, 51, 89, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 89, 24, 24, 24, 24, 24, 90, 24, 24,
+ 28, 46, 46, 29, 24, 24, 24, 90, 24, 24, 89, 24, 24, 24, 28, 29,
+ 10, 2, 2, 51, 24, 24, 24, 24, 24, 24, 24, 90, 24, 24, 25, 23,
+ 51, 28, 29, 28, 29, 90, 89, 24, 24, 24, 24, 28, 29, 28, 47, 23,
+ 90, 25, 23, 25, 45, 29, 24, 28, 29, 90, 24, 50, 32, 47, 1, 51,
+ 24, 25, 23, 25, 1, 51, 24, 50, 32, 46, 29, 24, 50, 2, 51, 24,
+ 24, 25, 45, 47, 45, 29, 90, 24, 50, 2, 51, 24, 90, 24, 28, 46,
+ 24, 25, 111, 1, 3, 23, 28, 46, 29, 24, 90, 24, 28, 46, 47, 1,
+ 24, 50, 2, 51, 25, 23, 50, 2, 51, 28, 29, 24, 25, 115, 114, 23],
+ "height":16,
+ "width":16,
+ "x":64,
+ "y":16
+ },
+ {
+ "data":[24, 28, 29, 24, 24, 24, 25, 23, 90, 90, 28, 46, 29, 24, 24, 24,
+ 29, 25, 45, 29, 24, 24, 50, 32, 46, 29, 50, 2, 32, 29, 24, 24,
+ 23, 50, 2, 51, 89, 90, 89, 50, 2, 32, 46, 46, 10, 32, 46, 29,
+ 32, 29, 89, 28, 29, 24, 24, 24, 24, 25, 111, 111, 23, 50, 3, 23,
+ 10, 32, 29, 50, 51, 24, 28, 29, 24, 50, 2, 2, 32, 29, 25, 45,
+ 51, 25, 23, 24, 24, 90, 50, 51, 28, 46, 46, 29, 50, 51, 50, 2,
+ 24, 25, 23, 24, 24, 24, 28, 46, 10, 2, 2, 51, 24, 24, 24, 24,
+ 24, 50, 51, 24, 24, 24, 50, 2, 51, 24, 24, 28, 29, 24, 24, 24,
+ 24, 24, 24, 24, 24, 90, 24, 89, 90, 24, 24, 50, 32, 46, 29, 89,
+ 89, 28, 29, 24, 24, 24, 24, 28, 29, 24, 24, 24, 50, 2, 32, 29,
+ 28, 10, 32, 29, 24, 28, 29, 50, 51, 89, 24, 24, 24, 24, 25, 23,
+ 25, 23, 25, 23, 24, 50, 32, 29, 24, 90, 24, 24, 24, 24, 50, 51,
+ 50, 51, 50, 51, 90, 24, 25, 23, 24, 24, 24, 24, 90, 24, 90, 24,
+ 29, 24, 24, 24, 24, 28, 10, 32, 46, 46, 29, 24, 24, 24, 24, 24,
+ 32, 29, 24, 28, 29, 25, 23, 50, 2, 2, 32, 29, 24, 89, 24, 24,
+ 25, 23, 24, 50, 51, 50, 51, 24, 24, 24, 50, 32, 29, 28, 29, 24],
+ "height":16,
+ "width":16,
+ "x":80,
+ "y":16
+ },
+ {
+ "data":[24, 25, 23, 25, 111, 23, 50, 2, 51, 28, 29, 24, 24, 24, 24, 24,
+ 24, 25, 23, 25, 1, 51, 28, 29, 24, 25, 23, 24, 89, 24, 89, 24,
+ 24, 50, 51, 25, 23, 24, 50, 51, 24, 50, 32, 46, 46, 29, 24, 24,
+ 24, 24, 24, 50, 51, 24, 24, 28, 29, 89, 25, 111, 111, 23, 24, 24,
+ 29, 24, 89, 90, 24, 24, 28, 10, 51, 28, 10, 2, 2, 32, 29, 24,
+ 32, 29, 28, 46, 29, 24, 50, 51, 24, 50, 32, 46, 29, 50, 32, 29,
+ 50, 51, 50, 3, 23, 90, 90, 24, 28, 29, 50, 2, 51, 24, 50, 51,
+ 89, 24, 24, 50, 32, 46, 29, 24, 50, 51, 24, 24, 24, 24, 24, 24,
+ 90, 28, 46, 29, 50, 3, 23, 24, 28, 29, 24, 24, 24, 24, 28, 46,
+ 24, 25, 1, 51, 89, 50, 51, 24, 50, 51, 24, 24, 24, 24, 25, 115,
+ 24, 25, 23, 24, 89, 90, 24, 24, 24, 24, 24, 24, 24, 24, 25, 111,
+ 24, 25, 23, 24, 24, 24, 24, 24, 24, 90, 24, 24, 24, 28, 10, 2,
+ 24, 50, 32, 46, 46, 46, 29, 24, 24, 24, 28, 29, 28, 10, 51, 24,
+ 24, 24, 25, 111, 111, 1, 51, 24, 24, 24, 50, 32, 10, 51, 24, 24,
+ 24, 24, 50, 2, 2, 51, 28, 29, 89, 89, 24, 25, 23, 24, 24, 28,
+ 24, 24, 24, 90, 24, 24, 50, 32, 29, 24, 24, 25, 23, 24, 28, 10],
+ "height":16,
+ "width":16,
+ "x":96,
+ "y":16
+ },
+ {
+ "data":[24, 28, 47, 23, 24, 24, 28, 29, 24, 24, 24, 24, 24, 28, 29, 24,
+ 24, 25, 114, 23, 24, 90, 50, 32, 46, 29, 24, 28, 29, 50, 51, 24,
+ 24, 25, 1, 51, 28, 29, 24, 25, 1, 51, 24, 25, 23, 28, 29, 24,
+ 24, 25, 23, 28, 10, 51, 24, 50, 51, 24, 24, 50, 51, 50, 32, 46,
+ 24, 50, 32, 10, 32, 46, 29, 24, 24, 28, 46, 46, 46, 29, 50, 2,
+ 28, 29, 25, 23, 50, 2, 51, 24, 24, 25, 114, 111, 1, 32, 29, 24,
+ 50, 51, 25, 45, 46, 29, 28, 29, 90, 25, 1, 2, 51, 50, 51, 28,
+ 28, 29, 50, 3, 1, 32, 10, 32, 46, 10, 32, 29, 89, 24, 89, 25,
+ 10, 32, 46, 47, 23, 50, 32, 10, 2, 51, 50, 51, 24, 24, 89, 25,
+ 23, 25, 111, 111, 23, 28, 10, 32, 46, 29, 24, 24, 24, 90, 24, 25,
+ 23, 25, 111, 1, 32, 10, 51, 50, 2, 51, 24, 24, 24, 24, 24, 50,
+ 32, 10, 3, 45, 10, 51, 24, 24, 24, 90, 24, 24, 24, 24, 24, 28,
+ 50, 51, 25, 114, 23, 89, 24, 24, 24, 24, 89, 24, 24, 90, 24, 50,
+ 90, 24, 25, 115, 23, 90, 24, 28, 29, 24, 24, 90, 24, 24, 24, 90,
+ 46, 29, 50, 2, 51, 24, 28, 10, 51, 24, 28, 46, 29, 28, 46, 29,
+ 2, 32, 46, 29, 24, 28, 10, 51, 24, 24, 50, 2, 51, 50, 3, 23],
+ "height":16,
+ "width":16,
+ "x":112,
+ "y":16
+ },
+
+ {
+ "data":[89, 24, 50, 32, 29, 28, 29, 24, 89, 24, 24, 28, 29, 28, 46, 29,
+ 24, 24, 89, 25, 45, 47, 23, 24, 24, 24, 24, 25, 23, 25, 1, 51,
+ 46, 29, 90, 50, 2, 2, 51, 28, 29, 24, 90, 50, 51, 50, 32, 46,
+ 2, 51, 28, 29, 24, 24, 24, 25, 23, 24, 24, 24, 24, 24, 50, 3,
+ 29, 24, 50, 51, 24, 24, 28, 10, 32, 29, 24, 24, 24, 24, 24, 50,
+ 51, 24, 24, 24, 24, 24, 50, 32, 47, 23, 24, 24, 90, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 50, 3, 45, 29, 89, 24, 28, 29, 28,
+ 24, 24, 24, 24, 24, 90, 24, 24, 50, 2, 51, 28, 29, 25, 45, 10,
+ 24, 24, 24, 24, 24, 24, 28, 29, 24, 24, 28, 10, 32, 10, 2, 51,
+ 90, 89, 24, 24, 89, 24, 25, 23, 24, 24, 50, 51, 25, 23, 24, 24,
+ 24, 24, 24, 24, 24, 24, 50, 51, 24, 24, 24, 28, 10, 51, 24, 24,
+ 24, 24, 24, 24, 28, 29, 24, 24, 24, 24, 24, 50, 51, 24, 24, 24,
+ 24, 90, 89, 89, 25, 45, 29, 24, 24, 24, 89, 24, 24, 24, 24, 24,
+ 90, 89, 24, 24, 50, 2, 32, 46, 46, 29, 89, 24, 28, 46, 29, 89,
+ 24, 24, 90, 89, 24, 24, 50, 2, 2, 51, 28, 29, 50, 2, 51, 90,
+ 29, 24, 24, 24, 24, 24, 90, 24, 24, 28, 10, 51, 24, 24, 24, 24],
+ "height":16,
+ "width":16,
+ "x":0,
+ "y":32
+ },
+ {
+ "data":[24, 89, 24, 24, 24, 50, 2, 51, 24, 25, 111, 23, 24, 24, 28, 47,
+ 24, 24, 28, 29, 24, 24, 24, 24, 24, 25, 1, 51, 24, 24, 50, 3,
+ 29, 24, 50, 32, 29, 24, 90, 24, 24, 25, 23, 24, 24, 24, 90, 25,
+ 23, 24, 89, 50, 51, 24, 24, 90, 24, 50, 51, 24, 24, 24, 24, 50,
+ 51, 24, 28, 29, 24, 24, 24, 24, 24, 24, 28, 29, 24, 89, 89, 24,
+ 24, 28, 10, 32, 46, 29, 90, 24, 24, 24, 50, 51, 24, 24, 28, 29,
+ 29, 25, 23, 50, 2, 51, 24, 24, 24, 24, 24, 24, 90, 24, 50, 32,
+ 32, 47, 23, 24, 24, 28, 46, 29, 24, 28, 29, 24, 24, 24, 28, 10,
+ 50, 2, 51, 28, 29, 25, 115, 45, 29, 50, 51, 89, 28, 29, 50, 32,
+ 24, 24, 24, 25, 23, 50, 3, 115, 23, 24, 24, 24, 50, 32, 29, 25,
+ 24, 89, 24, 50, 32, 29, 25, 111, 23, 90, 24, 24, 90, 25, 45, 10,
+ 24, 24, 24, 24, 50, 51, 25, 112, 45, 29, 24, 24, 28, 47, 1, 51,
+ 24, 28, 29, 24, 24, 24, 25, 115, 1, 32, 46, 29, 50, 2, 51, 28,
+ 24, 25, 45, 46, 29, 24, 25, 111, 23, 25, 111, 23, 89, 24, 24, 50,
+ 24, 50, 2, 2, 51, 24, 50, 2, 51, 50, 3, 23, 24, 24, 89, 24,
+ 24, 24, 90, 24, 24, 24, 24, 24, 24, 24, 25, 23, 90, 24, 24, 89],
+ "height":16,
+ "width":16,
+ "x":16,
+ "y":32
+ },
+ {
+ "data":[111, 111, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 50, 51, 24, 28,
+ 1, 2, 51, 24, 24, 24, 24, 24, 24, 90, 89, 28, 46, 29, 24, 50,
+ 23, 24, 24, 24, 24, 24, 24, 24, 24, 28, 29, 50, 2, 51, 24, 24,
+ 51, 28, 29, 89, 24, 24, 24, 24, 24, 50, 51, 24, 24, 24, 89, 24,
+ 24, 50, 32, 29, 24, 24, 24, 24, 24, 24, 24, 24, 28, 29, 24, 90,
+ 24, 24, 25, 45, 29, 90, 24, 24, 24, 24, 24, 24, 50, 32, 29, 24,
+ 46, 46, 10, 2, 51, 90, 24, 24, 24, 24, 24, 24, 24, 25, 23, 24,
+ 2, 2, 51, 24, 24, 24, 24, 24, 24, 24, 28, 46, 29, 50, 51, 24,
+ 29, 90, 24, 90, 24, 24, 24, 28, 29, 24, 50, 2, 32, 46, 29, 24,
+ 45, 29, 24, 24, 24, 24, 24, 50, 51, 24, 24, 24, 25, 114, 45, 46,
+ 2, 51, 28, 46, 29, 24, 24, 24, 24, 24, 28, 46, 10, 3, 1, 2,
+ 24, 28, 47, 1, 51, 24, 24, 24, 24, 24, 50, 3, 23, 25, 23, 90,
+ 46, 10, 2, 32, 46, 46, 46, 46, 46, 46, 29, 25, 23, 50, 32, 46,
+ 2, 51, 24, 25, 114, 111, 115, 111, 114, 1, 51, 50, 32, 29, 50, 2,
+ 24, 24, 24, 50, 3, 111, 1, 2, 2, 32, 46, 46, 10, 32, 29, 24,
+ 24, 90, 24, 24, 50, 2, 51, 24, 24, 25, 111, 111, 23, 25, 23, 28],
+ "height":16,
+ "width":16,
+ "x":32,
+ "y":32
+ },
+ {
+ "data":[29, 24, 24, 24, 90, 24, 24, 24, 50, 32, 46, 29, 90, 24, 24, 24,
+ 32, 46, 29, 24, 89, 24, 24, 24, 24, 25, 1, 32, 29, 24, 28, 29,
+ 50, 2, 51, 24, 24, 89, 24, 24, 24, 25, 23, 50, 32, 29, 50, 51,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 25, 23, 24, 50, 32, 29, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 50, 51, 24, 24, 25, 23, 24,
+ 28, 29, 24, 24, 24, 24, 24, 24, 24, 24, 90, 24, 24, 50, 51, 24,
+ 25, 23, 24, 24, 28, 46, 29, 28, 29, 24, 24, 89, 24, 24, 24, 24,
+ 50, 51, 24, 28, 10, 2, 32, 10, 32, 29, 89, 24, 24, 24, 24, 24,
+ 28, 29, 24, 50, 51, 24, 50, 32, 10, 51, 24, 24, 24, 24, 89, 24,
+ 10, 32, 46, 46, 46, 29, 24, 50, 51, 24, 24, 24, 24, 24, 28, 29,
+ 51, 50, 2, 2, 2, 32, 46, 46, 29, 24, 24, 24, 24, 24, 25, 23,
+ 24, 24, 24, 24, 24, 50, 2, 2, 32, 29, 24, 24, 24, 24, 50, 51,
+ 46, 29, 90, 24, 90, 90, 24, 24, 50, 32, 29, 89, 24, 24, 24, 24,
+ 2, 51, 24, 24, 28, 46, 29, 28, 29, 50, 51, 24, 28, 29, 90, 24,
+ 24, 24, 24, 24, 25, 1, 32, 47, 45, 29, 24, 24, 50, 32, 46, 46,
+ 29, 24, 24, 24, 50, 51, 25, 114, 114, 23, 24, 24, 24, 25, 1, 3],
+ "height":16,
+ "width":16,
+ "x":48,
+ "y":32
+ },
+ {
+ "data":[24, 24, 24, 24, 50, 32, 29, 90, 24, 25, 45, 46, 10, 2, 2, 51,
+ 24, 24, 89, 24, 24, 50, 51, 24, 24, 25, 111, 112, 23, 90, 24, 24,
+ 24, 24, 89, 24, 89, 24, 24, 24, 24, 25, 1, 2, 51, 24, 24, 24,
+ 24, 24, 24, 28, 46, 46, 46, 46, 29, 50, 51, 89, 90, 24, 24, 24,
+ 24, 90, 24, 25, 1, 2, 2, 2, 32, 29, 28, 29, 89, 24, 24, 24,
+ 24, 28, 46, 10, 32, 29, 89, 90, 50, 32, 10, 51, 28, 46, 46, 46,
+ 24, 50, 2, 51, 25, 23, 24, 24, 28, 10, 51, 24, 50, 3, 111, 1,
+ 24, 24, 24, 28, 10, 51, 24, 24, 25, 23, 24, 24, 24, 50, 2, 32,
+ 24, 24, 24, 25, 23, 24, 24, 89, 50, 32, 29, 24, 24, 28, 29, 50,
+ 24, 24, 24, 50, 32, 29, 28, 46, 29, 50, 51, 24, 28, 10, 32, 29,
+ 24, 89, 24, 28, 10, 51, 25, 1, 51, 24, 89, 28, 10, 51, 50, 51,
+ 24, 24, 90, 50, 32, 46, 47, 23, 24, 24, 24, 50, 51, 89, 24, 24,
+ 24, 24, 24, 24, 50, 2, 3, 23, 28, 29, 24, 24, 90, 24, 24, 24,
+ 28, 29, 24, 89, 89, 24, 50, 51, 50, 51, 24, 24, 24, 24, 24, 24,
+ 10, 32, 29, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 28, 46,
+ 23, 50, 51, 24, 24, 24, 24, 24, 90, 28, 46, 29, 24, 24, 50, 3],
+ "height":16,
+ "width":16,
+ "x":64,
+ "y":32
+ },
+ {
+ "data":[50, 51, 24, 24, 24, 24, 90, 24, 24, 24, 24, 50, 32, 10, 32, 29,
+ 28, 46, 29, 24, 24, 24, 24, 24, 24, 28, 29, 24, 50, 51, 50, 51,
+ 50, 2, 51, 90, 89, 24, 28, 29, 90, 50, 51, 24, 90, 24, 24, 24,
+ 24, 24, 24, 24, 90, 24, 25, 23, 24, 89, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 28, 10, 32, 46, 46, 46, 29, 28, 46, 29, 24,
+ 46, 29, 24, 24, 28, 47, 45, 10, 3, 115, 1, 51, 25, 1, 51, 90,
+ 2, 51, 24, 24, 50, 3, 1, 51, 50, 2, 32, 29, 50, 51, 24, 24,
+ 29, 28, 29, 24, 24, 25, 45, 29, 24, 24, 50, 32, 29, 24, 24, 24,
+ 51, 50, 32, 29, 24, 25, 114, 23, 90, 24, 24, 50, 32, 46, 46, 29,
+ 24, 89, 50, 51, 90, 50, 3, 23, 24, 24, 28, 29, 50, 2, 2, 51,
+ 24, 24, 24, 24, 24, 24, 25, 45, 46, 29, 25, 45, 46, 29, 24, 24,
+ 24, 24, 24, 90, 24, 24, 50, 2, 3, 23, 50, 3, 114, 23, 24, 28,
+ 24, 90, 24, 24, 24, 89, 24, 90, 25, 23, 89, 50, 2, 51, 24, 25,
+ 89, 28, 46, 29, 24, 90, 24, 24, 25, 23, 24, 24, 24, 24, 90, 25,
+ 46, 47, 115, 23, 24, 24, 24, 24, 50, 32, 46, 29, 89, 28, 29, 25,
+ 111, 1, 3, 23, 28, 29, 24, 24, 24, 50, 3, 23, 24, 50, 51, 50],
+ "height":16,
+ "width":16,
+ "x":80,
+ "y":32
+ },
+ {
+ "data":[24, 90, 24, 24, 89, 24, 24, 50, 51, 28, 29, 25, 23, 24, 50, 51,
+ 89, 24, 24, 89, 89, 89, 24, 24, 90, 25, 23, 50, 51, 28, 29, 28,
+ 24, 24, 24, 24, 90, 28, 29, 28, 29, 50, 51, 89, 24, 50, 51, 50,
+ 24, 24, 24, 28, 46, 10, 51, 25, 23, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 50, 2, 51, 24, 50, 51, 24, 28, 29, 90, 24, 24, 24,
+ 90, 89, 90, 24, 28, 46, 46, 29, 90, 24, 50, 32, 46, 46, 46, 29,
+ 28, 46, 29, 24, 50, 2, 2, 32, 46, 29, 28, 10, 2, 3, 115, 23,
+ 50, 2, 32, 46, 46, 46, 46, 10, 2, 51, 25, 23, 24, 50, 2, 51,
+ 90, 24, 50, 2, 3, 114, 1, 51, 24, 24, 25, 23, 24, 24, 24, 24,
+ 24, 24, 24, 28, 47, 1, 51, 24, 24, 24, 25, 23, 90, 24, 28, 29,
+ 28, 46, 29, 50, 2, 51, 24, 24, 24, 24, 50, 32, 46, 46, 47, 45,
+ 10, 2, 32, 46, 29, 24, 90, 24, 24, 24, 24, 50, 3, 1, 2, 2,
+ 23, 24, 50, 3, 45, 46, 46, 46, 29, 24, 24, 24, 50, 51, 24, 24,
+ 23, 28, 29, 25, 114, 115, 111, 111, 23, 90, 24, 24, 24, 28, 29, 24,
+ 23, 50, 32, 47, 111, 1, 2, 2, 32, 29, 24, 24, 90, 25, 23, 24,
+ 32, 29, 50, 3, 115, 23, 28, 29, 50, 51, 24, 24, 24, 50, 51, 24],
+ "height":16,
+ "width":16,
+ "x":96,
+ "y":32
+ },
+ {
+ "data":[24, 25, 1, 51, 90, 50, 51, 24, 24, 24, 24, 24, 24, 24, 50, 51,
+ 46, 10, 32, 29, 24, 28, 29, 24, 24, 24, 24, 24, 24, 28, 29, 24,
+ 2, 51, 50, 32, 29, 50, 32, 29, 89, 24, 24, 28, 46, 10, 32, 29,
+ 28, 46, 46, 47, 23, 24, 50, 51, 89, 24, 24, 50, 2, 32, 10, 32,
+ 50, 2, 2, 2, 32, 29, 24, 24, 24, 89, 90, 24, 24, 25, 23, 25,
+ 90, 24, 24, 24, 25, 45, 46, 46, 29, 24, 28, 29, 24, 50, 51, 50,
+ 24, 24, 24, 24, 50, 2, 3, 114, 45, 46, 10, 51, 24, 24, 24, 24,
+ 24, 24, 24, 24, 89, 24, 50, 2, 2, 2, 51, 24, 24, 24, 28, 46,
+ 28, 29, 24, 24, 89, 28, 46, 46, 29, 24, 89, 24, 24, 24, 50, 2,
+ 25, 45, 29, 24, 24, 50, 2, 2, 51, 24, 24, 90, 24, 24, 24, 24,
+ 10, 2, 51, 24, 24, 28, 46, 29, 90, 24, 24, 24, 24, 24, 24, 24,
+ 51, 24, 89, 90, 24, 50, 2, 51, 24, 24, 28, 46, 29, 24, 28, 29,
+ 24, 24, 89, 24, 89, 24, 90, 24, 24, 24, 50, 2, 51, 24, 50, 51,
+ 90, 89, 24, 24, 28, 46, 29, 89, 24, 24, 24, 24, 24, 24, 28, 46,
+ 24, 89, 24, 24, 25, 111, 23, 24, 24, 24, 24, 24, 90, 24, 25, 1,
+ 24, 24, 89, 24, 25, 1, 32, 29, 24, 24, 24, 90, 24, 24, 50, 51],
+ "height":16,
+ "width":16,
+ "x":112,
+ "y":32
+ },
+ {
+ "data":[51, 24, 89, 24, 24, 24, 24, 28, 29, 50, 51, 28, 46, 29, 24, 24,
+ 89, 90, 28, 29, 24, 24, 28, 10, 51, 90, 90, 25, 111, 23, 24, 89,
+ 90, 90, 25, 23, 90, 24, 50, 32, 29, 24, 24, 25, 111, 23, 28, 46,
+ 28, 29, 50, 51, 24, 24, 24, 25, 23, 24, 24, 50, 2, 51, 50, 2,
+ 50, 51, 28, 29, 24, 24, 24, 50, 32, 29, 24, 24, 24, 24, 28, 29,
+ 89, 24, 25, 23, 90, 24, 24, 24, 25, 23, 24, 24, 24, 24, 50, 51,
+ 24, 89, 50, 51, 24, 28, 29, 24, 25, 23, 24, 24, 24, 24, 90, 24,
+ 24, 89, 24, 24, 24, 50, 51, 24, 50, 51, 24, 24, 24, 24, 28, 46,
+ 24, 24, 24, 28, 29, 24, 24, 24, 24, 24, 28, 46, 46, 29, 50, 2,
+ 29, 28, 29, 50, 32, 29, 89, 24, 24, 28, 47, 1, 2, 51, 24, 24,
+ 51, 50, 32, 29, 50, 51, 24, 24, 90, 25, 114, 23, 24, 24, 24, 24,
+ 24, 90, 25, 45, 29, 24, 24, 24, 24, 50, 3, 45, 46, 46, 29, 28,
+ 24, 24, 25, 111, 23, 24, 24, 28, 46, 29, 50, 3, 1, 3, 23, 25,
+ 24, 24, 50, 2, 51, 28, 46, 10, 2, 32, 29, 25, 23, 50, 51, 25,
+ 24, 24, 24, 24, 24, 25, 1, 51, 24, 25, 23, 25, 23, 24, 24, 25,
+ 24, 24, 28, 29, 24, 50, 32, 46, 29, 50, 51, 50, 51, 24, 24, 25],
+ "height":16,
+ "width":16,
+ "x":0,
+ "y":48
+ },
+ {
+ "data":[28, 29, 24, 89, 24, 24, 24, 90, 28, 46, 10, 51, 89, 90, 28, 29,
+ 50, 51, 89, 24, 28, 29, 24, 24, 25, 115, 23, 24, 24, 24, 50, 32,
+ 29, 28, 46, 46, 10, 51, 89, 24, 25, 1, 32, 29, 28, 29, 24, 50,
+ 32, 10, 3, 111, 23, 24, 24, 90, 25, 23, 50, 32, 10, 51, 28, 29,
+ 25, 23, 50, 2, 51, 24, 24, 90, 25, 23, 24, 50, 32, 29, 25, 23,
+ 50, 32, 46, 46, 46, 46, 29, 24, 25, 45, 29, 24, 25, 23, 50, 51,
+ 24, 25, 111, 114, 111, 1, 51, 24, 25, 111, 23, 89, 50, 51, 24, 24,
+ 46, 47, 111, 114, 1, 32, 46, 29, 25, 111, 23, 24, 24, 24, 24, 24,
+ 2, 3, 115, 111, 45, 47, 114, 23, 25, 114, 45, 29, 90, 24, 24, 89,
+ 24, 50, 2, 2, 3, 114, 111, 23, 25, 112, 1, 51, 24, 24, 24, 24,
+ 24, 24, 24, 24, 25, 1, 2, 32, 10, 3, 23, 24, 24, 24, 24, 28,
+ 29, 24, 24, 24, 50, 51, 89, 50, 51, 25, 23, 24, 24, 24, 89, 50,
+ 23, 24, 24, 24, 24, 24, 24, 24, 24, 50, 32, 29, 24, 89, 24, 89,
+ 23, 24, 28, 29, 24, 24, 24, 24, 89, 24, 50, 51, 89, 24, 24, 24,
+ 23, 24, 25, 23, 28, 29, 24, 89, 28, 29, 24, 90, 24, 89, 24, 24,
+ 45, 46, 10, 51, 50, 32, 46, 46, 10, 51, 90, 24, 28, 46, 29, 24],
+ "height":16,
+ "width":16,
+ "x":16,
+ "y":48
+ },
+ {
+ "data":[24, 24, 24, 24, 24, 24, 24, 89, 24, 25, 114, 115, 45, 10, 51, 50,
+ 46, 46, 46, 46, 29, 24, 24, 24, 24, 50, 2, 2, 2, 51, 28, 46,
+ 2, 2, 2, 2, 32, 29, 24, 24, 24, 24, 24, 28, 46, 29, 50, 2,
+ 24, 24, 90, 24, 50, 32, 29, 24, 24, 24, 24, 25, 1, 51, 24, 24,
+ 24, 90, 24, 24, 89, 50, 51, 89, 24, 24, 89, 50, 51, 24, 24, 24,
+ 24, 28, 29, 24, 24, 24, 24, 28, 46, 29, 24, 24, 24, 28, 46, 29,
+ 24, 25, 23, 28, 29, 90, 28, 10, 3, 23, 90, 24, 24, 50, 2, 32,
+ 89, 50, 32, 10, 51, 24, 50, 51, 50, 51, 90, 24, 24, 28, 29, 25,
+ 24, 89, 50, 51, 24, 24, 89, 89, 24, 28, 29, 24, 28, 47, 45, 10,
+ 24, 24, 28, 29, 28, 46, 29, 28, 46, 10, 32, 29, 50, 2, 2, 51,
+ 29, 24, 50, 32, 10, 2, 51, 50, 2, 51, 50, 32, 29, 24, 24, 24,
+ 51, 24, 28, 10, 51, 24, 24, 24, 24, 90, 24, 50, 51, 24, 24, 24,
+ 24, 24, 25, 23, 24, 24, 24, 24, 24, 89, 24, 90, 24, 24, 24, 90,
+ 24, 24, 50, 32, 46, 46, 29, 24, 24, 89, 28, 46, 29, 89, 24, 24,
+ 24, 89, 28, 10, 2, 2, 51, 89, 24, 90, 50, 3, 23, 24, 28, 29,
+ 28, 46, 10, 51, 28, 29, 24, 24, 24, 24, 24, 50, 51, 28, 10, 51],
+ "height":16,
+ "width":16,
+ "x":32,
+ "y":48
+ },
+ {
+ "data":[51, 24, 24, 24, 24, 24, 50, 2, 2, 32, 29, 24, 24, 50, 32, 10,
+ 29, 89, 24, 24, 28, 46, 29, 89, 24, 25, 45, 29, 24, 24, 25, 45,
+ 51, 24, 24, 90, 25, 1, 51, 24, 24, 25, 1, 32, 46, 29, 25, 115,
+ 90, 24, 28, 29, 50, 51, 24, 89, 89, 25, 23, 50, 2, 32, 47, 111,
+ 89, 24, 50, 32, 29, 24, 24, 24, 24, 50, 51, 24, 24, 25, 111, 111,
+ 28, 29, 24, 25, 23, 89, 89, 24, 28, 29, 24, 28, 29, 25, 111, 1,
+ 10, 51, 24, 25, 45, 29, 24, 24, 50, 32, 29, 25, 45, 10, 2, 51,
+ 23, 24, 24, 25, 114, 23, 24, 24, 24, 50, 51, 50, 2, 32, 29, 24,
+ 51, 24, 24, 50, 2, 51, 24, 24, 24, 24, 24, 90, 24, 50, 32, 29,
+ 24, 28, 29, 24, 24, 90, 24, 24, 24, 24, 24, 24, 24, 24, 50, 32,
+ 90, 50, 32, 29, 24, 24, 24, 24, 24, 24, 24, 24, 24, 28, 29, 50,
+ 24, 28, 10, 32, 46, 46, 46, 29, 24, 24, 24, 28, 46, 10, 32, 29,
+ 24, 50, 51, 50, 2, 2, 2, 32, 46, 46, 29, 25, 113, 23, 50, 51,
+ 24, 24, 24, 24, 24, 24, 90, 50, 2, 2, 51, 25, 1, 32, 29, 24,
+ 24, 24, 24, 89, 24, 24, 24, 90, 24, 24, 24, 50, 32, 10, 51, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 90, 24, 24, 24, 25, 23, 24, 24],
+ "height":16,
+ "width":16,
+ "x":48,
+ "y":48
+ },
+ {
+ "data":[51, 24, 90, 24, 28, 29, 24, 24, 28, 10, 3, 45, 29, 24, 24, 50,
+ 29, 24, 24, 24, 25, 23, 24, 90, 50, 51, 50, 2, 51, 24, 24, 24,
+ 23, 89, 24, 24, 50, 51, 28, 46, 29, 24, 24, 24, 28, 29, 24, 24,
+ 23, 89, 24, 28, 29, 24, 50, 2, 51, 90, 24, 24, 25, 45, 29, 24,
+ 23, 24, 24, 25, 45, 29, 24, 24, 24, 24, 24, 24, 50, 2, 32, 29,
+ 51, 24, 24, 50, 3, 23, 90, 24, 90, 24, 28, 29, 24, 24, 50, 51,
+ 24, 24, 24, 24, 50, 32, 46, 29, 24, 24, 25, 45, 29, 24, 89, 24,
+ 24, 28, 29, 28, 46, 10, 3, 45, 29, 24, 25, 111, 23, 24, 24, 24,
+ 24, 50, 32, 10, 2, 32, 10, 2, 51, 24, 50, 2, 51, 24, 24, 24,
+ 46, 29, 50, 32, 29, 50, 32, 46, 46, 46, 29, 28, 29, 89, 28, 46,
+ 3, 45, 29, 50, 51, 24, 50, 2, 2, 2, 32, 10, 32, 29, 50, 2,
+ 50, 2, 51, 24, 24, 24, 90, 24, 24, 24, 25, 23, 25, 23, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 28, 46, 46, 10, 51, 25, 23, 24, 89,
+ 24, 28, 46, 46, 29, 24, 24, 50, 2, 2, 32, 46, 10, 32, 46, 29,
+ 24, 25, 115, 115, 23, 24, 24, 24, 24, 24, 50, 3, 23, 25, 114, 23,
+ 24, 50, 3, 1, 32, 29, 89, 24, 90, 90, 24, 50, 51, 25, 114, 45],
+ "height":16,
+ "width":16,
+ "x":64,
+ "y":48
+ },
+ {
+ "data":[2, 51, 50, 32, 10, 32, 46, 29, 24, 24, 50, 51, 28, 46, 29, 28,
+ 90, 24, 24, 50, 51, 25, 1, 51, 24, 28, 29, 24, 50, 2, 51, 50,
+ 28, 46, 46, 29, 24, 25, 23, 24, 24, 50, 51, 24, 24, 24, 89, 24,
+ 25, 1, 2, 51, 24, 25, 23, 24, 24, 28, 46, 29, 24, 90, 89, 24,
+ 25, 23, 90, 24, 28, 10, 51, 24, 24, 50, 3, 23, 28, 29, 24, 24,
+ 25, 23, 24, 28, 10, 51, 24, 90, 24, 24, 25, 23, 50, 51, 89, 24,
+ 50, 51, 24, 50, 32, 29, 28, 29, 89, 28, 10, 51, 24, 24, 24, 89,
+ 24, 24, 28, 46, 10, 51, 50, 32, 29, 50, 51, 24, 24, 90, 24, 28,
+ 24, 90, 50, 2, 51, 24, 24, 25, 23, 24, 24, 28, 29, 24, 24, 25,
+ 46, 29, 24, 89, 24, 24, 24, 50, 51, 24, 89, 50, 51, 24, 24, 25,
+ 2, 32, 46, 29, 89, 24, 28, 46, 29, 24, 24, 24, 28, 46, 29, 25,
+ 28, 10, 2, 32, 29, 24, 50, 3, 23, 24, 28, 29, 50, 2, 32, 47,
+ 50, 51, 24, 25, 23, 24, 28, 10, 51, 24, 25, 45, 29, 24, 25, 111,
+ 24, 24, 24, 25, 23, 90, 25, 23, 24, 24, 50, 2, 51, 24, 25, 1,
+ 24, 24, 24, 50, 32, 29, 25, 23, 28, 46, 29, 24, 24, 24, 50, 51,
+ 46, 46, 29, 24, 50, 32, 10, 51, 50, 2, 32, 29, 89, 24, 24, 24],
+ "height":16,
+ "width":16,
+ "x":80,
+ "y":48
+ },
+ {
+ "data":[10, 32, 29, 50, 2, 51, 50, 32, 29, 24, 90, 90, 24, 90, 24, 24,
+ 32, 10, 32, 29, 24, 24, 24, 50, 51, 28, 29, 89, 24, 24, 24, 24,
+ 25, 23, 25, 45, 46, 29, 89, 24, 89, 50, 51, 24, 24, 89, 89, 24,
+ 50, 32, 10, 2, 2, 32, 29, 24, 90, 24, 24, 24, 24, 28, 46, 46,
+ 24, 50, 32, 46, 29, 50, 32, 29, 24, 24, 24, 24, 24, 50, 2, 2,
+ 28, 29, 25, 112, 23, 24, 50, 51, 24, 24, 24, 24, 24, 24, 24, 90,
+ 25, 23, 25, 111, 23, 24, 24, 24, 90, 24, 24, 24, 24, 24, 24, 24,
+ 10, 51, 25, 111, 23, 24, 24, 24, 90, 89, 24, 28, 46, 46, 29, 24,
+ 45, 29, 25, 1, 51, 24, 24, 89, 28, 29, 28, 10, 2, 2, 32, 46,
+ 111, 23, 25, 23, 24, 24, 24, 24, 25, 45, 10, 51, 28, 29, 50, 2,
+ 1, 51, 50, 51, 24, 24, 24, 24, 50, 3, 45, 29, 50, 32, 29, 24,
+ 45, 29, 24, 24, 24, 24, 28, 46, 29, 50, 2, 51, 24, 50, 32, 29,
+ 1, 32, 29, 24, 24, 24, 50, 3, 23, 24, 24, 24, 28, 29, 50, 51,
+ 51, 50, 51, 90, 24, 90, 24, 50, 32, 29, 24, 24, 50, 32, 29, 24,
+ 28, 46, 29, 89, 24, 89, 24, 24, 50, 51, 24, 24, 24, 50, 51, 24,
+ 50, 2, 51, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 28],
+ "height":16,
+ "width":16,
+ "x":96,
+ "y":48
+ },
+ {
+ "data":[24, 24, 24, 24, 25, 23, 50, 51, 24, 28, 29, 89, 24, 28, 29, 24,
+ 89, 24, 24, 24, 50, 32, 46, 29, 24, 25, 23, 24, 90, 50, 51, 90,
+ 24, 24, 24, 24, 24, 50, 3, 23, 24, 50, 51, 89, 28, 46, 46, 46,
+ 46, 46, 46, 29, 24, 24, 25, 23, 89, 89, 24, 24, 25, 114, 115, 1,
+ 3, 115, 1, 51, 24, 24, 25, 23, 89, 24, 24, 24, 50, 2, 2, 32,
+ 50, 2, 51, 24, 24, 24, 25, 23, 28, 29, 24, 90, 24, 24, 24, 50,
+ 24, 24, 89, 24, 24, 24, 50, 51, 50, 32, 46, 29, 90, 24, 89, 24,
+ 24, 24, 28, 46, 29, 24, 24, 28, 46, 10, 2, 51, 24, 24, 24, 24,
+ 46, 29, 50, 3, 23, 90, 24, 50, 2, 51, 90, 24, 24, 24, 28, 46,
+ 2, 51, 24, 25, 45, 46, 29, 24, 24, 24, 28, 29, 24, 24, 25, 114,
+ 24, 24, 24, 50, 2, 2, 51, 24, 24, 24, 25, 23, 24, 24, 50, 2,
+ 24, 24, 28, 29, 28, 29, 24, 89, 24, 24, 25, 23, 90, 24, 24, 89,
+ 24, 24, 50, 32, 10, 32, 46, 29, 24, 24, 50, 51, 89, 24, 24, 24,
+ 28, 29, 24, 25, 23, 50, 3, 45, 29, 90, 89, 24, 90, 24, 24, 24,
+ 50, 51, 24, 25, 23, 90, 50, 2, 51, 24, 24, 24, 24, 90, 24, 24,
+ 29, 24, 24, 50, 51, 24, 24, 24, 28, 46, 46, 29, 24, 28, 46, 29],
+ "height":16,
+ "width":16,
+ "x":112,
+ "y":48
+ },
+
+ {
+ "data":[89, 24, 25, 23, 24, 24, 50, 2, 32, 29, 24, 24, 24, 24, 24, 50,
+ 24, 90, 25, 23, 24, 24, 24, 89, 50, 51, 24, 24, 24, 90, 24, 24,
+ 24, 89, 50, 51, 24, 24, 24, 24, 24, 89, 28, 29, 24, 24, 24, 24,
+ 89, 24, 90, 24, 24, 24, 24, 24, 24, 24, 25, 23, 24, 24, 24, 24,
+ 89, 24, 24, 24, 24, 28, 46, 29, 24, 24, 50, 32, 29, 28, 46, 29,
+ 24, 90, 90, 28, 46, 10, 2, 51, 24, 24, 90, 50, 51, 25, 1, 51,
+ 24, 24, 89, 50, 3, 23, 24, 24, 24, 24, 24, 28, 46, 10, 51, 28,
+ 28, 46, 29, 24, 50, 51, 24, 24, 24, 24, 24, 50, 2, 51, 89, 50,
+ 50, 2, 51, 89, 24, 24, 24, 89, 24, 28, 29, 24, 24, 24, 24, 24,
+ 28, 29, 24, 24, 89, 89, 24, 24, 90, 50, 32, 29, 24, 24, 24, 24,
+ 50, 51, 24, 24, 24, 24, 24, 24, 24, 24, 50, 32, 29, 24, 28, 29,
+ 89, 90, 24, 90, 89, 89, 24, 24, 24, 24, 24, 25, 23, 24, 50, 51,
+ 28, 46, 46, 46, 29, 24, 24, 28, 46, 46, 46, 10, 51, 28, 29, 24,
+ 50, 2, 2, 3, 23, 24, 24, 50, 2, 2, 3, 23, 24, 50, 32, 29,
+ 28, 29, 28, 10, 51, 24, 24, 24, 24, 28, 10, 32, 29, 24, 50, 32,
+ 25, 23, 50, 51, 24, 24, 90, 28, 46, 47, 23, 25, 23, 24, 24, 50],
+ "height":16,
+ "width":16,
+ "x":0,
+ "y":64
+ },
+ {
+ "data":[2, 2, 51, 24, 24, 50, 2, 2, 51, 24, 24, 24, 25, 1, 32, 46,
+ 24, 90, 28, 46, 46, 46, 46, 29, 24, 24, 24, 24, 25, 23, 25, 111,
+ 24, 24, 50, 3, 1, 2, 2, 51, 24, 24, 24, 24, 25, 45, 10, 2,
+ 24, 24, 24, 50, 51, 89, 24, 89, 28, 29, 24, 24, 50, 2, 51, 89,
+ 28, 29, 24, 28, 29, 24, 90, 28, 10, 32, 46, 29, 24, 90, 24, 24,
+ 25, 23, 24, 50, 32, 29, 24, 50, 51, 50, 2, 51, 24, 89, 24, 24,
+ 47, 23, 24, 24, 50, 51, 24, 24, 24, 24, 24, 24, 24, 89, 24, 28,
+ 3, 23, 28, 29, 90, 24, 90, 24, 24, 90, 24, 24, 24, 24, 89, 25,
+ 25, 23, 25, 23, 24, 24, 28, 29, 24, 24, 24, 24, 24, 24, 24, 50,
+ 50, 51, 25, 23, 24, 24, 50, 51, 24, 24, 24, 90, 89, 24, 24, 28,
+ 90, 24, 25, 23, 24, 24, 89, 24, 90, 24, 24, 24, 24, 89, 28, 10,
+ 90, 24, 50, 32, 29, 24, 90, 28, 46, 29, 24, 24, 89, 24, 25, 45,
+ 24, 24, 24, 50, 32, 29, 24, 50, 2, 51, 90, 24, 24, 24, 50, 2,
+ 89, 24, 24, 24, 25, 23, 90, 89, 90, 24, 89, 24, 24, 24, 24, 24,
+ 29, 28, 29, 28, 10, 32, 46, 46, 29, 24, 24, 89, 24, 24, 89, 24,
+ 32, 10, 32, 10, 32, 10, 2, 2, 32, 46, 29, 24, 24, 24, 24, 24],
+ "height":16,
+ "width":16,
+ "x":16,
+ "y":64
+ },
+ {
+ "data":[10, 2, 51, 24, 50, 32, 29, 28, 46, 46, 29, 24, 24, 50, 32, 46,
+ 23, 24, 89, 24, 24, 50, 32, 10, 2, 2, 51, 24, 24, 24, 50, 2,
+ 32, 29, 24, 24, 24, 24, 50, 32, 29, 24, 24, 24, 90, 28, 46, 29,
+ 50, 51, 28, 29, 28, 29, 24, 25, 23, 24, 24, 24, 24, 50, 2, 51,
+ 24, 24, 50, 32, 10, 51, 28, 10, 51, 24, 24, 24, 24, 24, 89, 24,
+ 28, 29, 24, 25, 45, 29, 50, 51, 24, 24, 89, 24, 24, 28, 29, 28,
+ 47, 45, 29, 50, 3, 45, 29, 24, 28, 46, 46, 46, 29, 50, 51, 25,
+ 111, 1, 51, 24, 25, 1, 51, 24, 50, 2, 2, 2, 51, 24, 89, 50,
+ 2, 32, 46, 46, 47, 23, 24, 24, 24, 24, 28, 29, 24, 89, 24, 24,
+ 29, 50, 2, 2, 2, 51, 24, 24, 89, 24, 50, 51, 24, 24, 24, 90,
+ 51, 24, 89, 24, 28, 29, 24, 24, 90, 24, 24, 90, 24, 89, 28, 29,
+ 29, 24, 24, 90, 50, 32, 29, 28, 29, 24, 89, 24, 24, 24, 50, 51,
+ 51, 90, 24, 24, 24, 50, 51, 25, 23, 24, 24, 24, 24, 90, 24, 24,
+ 90, 24, 24, 89, 24, 24, 89, 25, 45, 46, 46, 46, 46, 46, 29, 24,
+ 24, 24, 24, 90, 24, 90, 24, 25, 1, 2, 3, 115, 111, 111, 45, 29,
+ 24, 90, 24, 24, 28, 29, 24, 50, 32, 29, 50, 2, 2, 3, 111, 23],
+ "height":16,
+ "width":16,
+ "x":32,
+ "y":64
+ },
+ {
+ "data":[46, 29, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 25, 23, 90, 24,
+ 2, 32, 29, 24, 90, 28, 46, 46, 29, 24, 24, 24, 25, 45, 46, 29,
+ 24, 25, 23, 24, 24, 50, 2, 2, 32, 46, 29, 24, 25, 1, 3, 23,
+ 24, 25, 45, 46, 29, 24, 24, 89, 50, 2, 32, 46, 10, 51, 25, 23,
+ 24, 50, 2, 3, 45, 46, 46, 29, 24, 24, 50, 2, 51, 24, 50, 51,
+ 29, 24, 24, 50, 2, 2, 2, 51, 24, 28, 46, 46, 29, 24, 89, 24,
+ 23, 24, 89, 28, 29, 90, 24, 24, 89, 50, 2, 2, 51, 24, 24, 24,
+ 32, 29, 24, 25, 23, 24, 24, 24, 90, 89, 24, 24, 24, 89, 24, 28,
+ 50, 51, 24, 25, 23, 24, 24, 24, 24, 90, 89, 24, 24, 89, 24, 50,
+ 24, 24, 28, 47, 45, 29, 28, 29, 24, 24, 24, 28, 29, 24, 24, 24,
+ 24, 24, 50, 2, 2, 32, 47, 45, 29, 24, 24, 50, 51, 24, 24, 24,
+ 24, 28, 46, 46, 29, 50, 3, 1, 32, 46, 29, 24, 24, 24, 89, 28,
+ 24, 50, 2, 2, 51, 24, 25, 23, 25, 111, 23, 24, 24, 28, 29, 50,
+ 28, 46, 29, 24, 90, 24, 50, 51, 50, 2, 32, 29, 24, 50, 51, 24,
+ 50, 2, 51, 24, 24, 24, 28, 46, 29, 24, 50, 51, 24, 24, 28, 29,
+ 89, 24, 24, 24, 24, 28, 10, 3, 23, 28, 29, 24, 24, 24, 50, 51],
+ "height":16,
+ "width":16,
+ "x":48,
+ "y":64
+ },
+ {
+ "data":[90, 24, 25, 23, 25, 23, 24, 24, 24, 24, 89, 24, 24, 50, 2, 2,
+ 24, 24, 50, 51, 25, 23, 24, 24, 24, 28, 46, 46, 29, 24, 24, 24,
+ 24, 24, 24, 24, 50, 32, 29, 89, 24, 50, 2, 2, 51, 24, 24, 24,
+ 24, 89, 24, 28, 29, 50, 32, 29, 90, 28, 46, 29, 89, 24, 24, 24,
+ 24, 24, 90, 25, 23, 24, 50, 51, 24, 50, 2, 32, 29, 24, 24, 24,
+ 24, 24, 24, 50, 32, 46, 46, 29, 24, 90, 24, 50, 32, 29, 90, 28,
+ 24, 24, 24, 24, 50, 2, 2, 32, 29, 28, 29, 28, 10, 32, 29, 25,
+ 29, 28, 46, 29, 24, 28, 46, 10, 32, 10, 51, 50, 51, 50, 32, 10,
+ 51, 50, 2, 32, 46, 10, 2, 32, 10, 32, 29, 24, 90, 24, 25, 23,
+ 24, 24, 24, 25, 1, 51, 24, 25, 23, 50, 51, 24, 24, 90, 50, 51,
+ 24, 24, 24, 25, 23, 24, 24, 25, 23, 24, 28, 29, 24, 24, 24, 24,
+ 46, 46, 29, 50, 51, 24, 28, 10, 51, 24, 25, 45, 29, 24, 90, 90,
+ 2, 2, 32, 46, 29, 90, 50, 51, 24, 24, 50, 3, 23, 24, 24, 24,
+ 24, 24, 25, 1, 51, 24, 24, 89, 24, 24, 24, 25, 45, 29, 89, 90,
+ 24, 24, 25, 23, 24, 28, 29, 24, 24, 24, 24, 50, 2, 51, 28, 29,
+ 24, 24, 50, 51, 24, 50, 51, 24, 24, 24, 90, 24, 24, 24, 50, 51],
+ "height":16,
+ "width":16,
+ "x":64,
+ "y":64
+ },
+ {
+ "data":[2, 2, 32, 46, 46, 10, 32, 46, 46, 29, 50, 51, 28, 29, 24, 24,
+ 24, 24, 50, 2, 3, 23, 50, 2, 2, 32, 29, 24, 25, 45, 46, 29,
+ 24, 24, 28, 29, 25, 45, 46, 29, 24, 25, 45, 29, 50, 2, 3, 23,
+ 24, 89, 50, 32, 47, 1, 2, 51, 28, 10, 2, 51, 24, 89, 50, 51,
+ 28, 29, 24, 50, 3, 23, 28, 29, 25, 23, 24, 24, 28, 29, 24, 28,
+ 10, 51, 24, 90, 50, 51, 50, 51, 25, 23, 89, 89, 50, 51, 28, 10,
+ 23, 28, 46, 29, 89, 28, 29, 24, 50, 51, 24, 28, 29, 24, 25, 23,
+ 51, 25, 1, 32, 29, 50, 51, 28, 46, 29, 24, 50, 51, 90, 50, 51,
+ 24, 50, 32, 47, 23, 28, 29, 50, 3, 45, 46, 29, 24, 24, 24, 24,
+ 24, 24, 50, 2, 51, 50, 51, 24, 50, 3, 113, 23, 24, 28, 29, 24,
+ 28, 46, 29, 24, 89, 24, 24, 24, 24, 25, 111, 23, 24, 50, 32, 29,
+ 50, 2, 32, 29, 28, 46, 29, 24, 24, 50, 2, 51, 24, 24, 50, 51,
+ 89, 24, 25, 23, 50, 2, 51, 24, 24, 24, 24, 24, 24, 24, 24, 28,
+ 28, 29, 25, 23, 24, 90, 24, 24, 28, 46, 46, 29, 24, 24, 24, 25,
+ 25, 45, 47, 23, 24, 28, 46, 29, 50, 2, 2, 51, 24, 24, 24, 25,
+ 50, 3, 1, 32, 29, 50, 2, 51, 24, 24, 90, 24, 24, 24, 24, 50],
+ "height":16,
+ "width":16,
+ "x":80,
+ "y":64
+ },
+ {
+ "data":[24, 24, 28, 29, 24, 24, 28, 29, 24, 24, 24, 24, 24, 89, 24, 50,
+ 89, 24, 25, 23, 24, 24, 50, 51, 24, 24, 24, 24, 24, 89, 28, 29,
+ 24, 24, 50, 51, 90, 24, 24, 24, 24, 28, 46, 29, 24, 89, 50, 51,
+ 24, 90, 24, 24, 24, 24, 89, 24, 24, 50, 3, 45, 29, 24, 24, 28,
+ 46, 29, 24, 28, 46, 29, 90, 89, 89, 24, 50, 2, 51, 24, 28, 10,
+ 2, 51, 24, 50, 2, 32, 46, 29, 90, 28, 29, 24, 24, 24, 50, 51,
+ 24, 28, 29, 24, 24, 50, 3, 23, 24, 25, 23, 24, 89, 24, 89, 24,
+ 24, 25, 23, 24, 24, 24, 25, 23, 90, 50, 51, 24, 90, 90, 24, 24,
+ 24, 25, 23, 24, 24, 24, 25, 23, 28, 46, 29, 24, 24, 28, 29, 28,
+ 24, 25, 23, 24, 24, 90, 25, 23, 25, 1, 51, 24, 24, 50, 32, 47,
+ 24, 50, 51, 24, 24, 24, 50, 51, 50, 51, 24, 24, 24, 24, 50, 2,
+ 28, 46, 29, 24, 24, 24, 24, 28, 29, 24, 24, 24, 24, 24, 24, 24,
+ 10, 3, 23, 24, 24, 24, 24, 25, 23, 24, 24, 24, 24, 24, 89, 24,
+ 23, 50, 32, 46, 46, 46, 46, 10, 32, 29, 24, 28, 46, 29, 24, 24,
+ 23, 28, 10, 3, 115, 114, 1, 51, 25, 23, 89, 50, 2, 32, 29, 24,
+ 51, 25, 23, 25, 1, 2, 32, 46, 47, 23, 90, 24, 24, 50, 32, 29],
+ "height":16,
+ "width":16,
+ "x":96,
+ "y":64
+ },
+ {
+ "data":[51, 24, 24, 89, 24, 28, 46, 29, 25, 111, 1, 32, 29, 25, 111, 45,
+ 28, 46, 29, 90, 28, 10, 2, 32, 10, 2, 51, 50, 32, 10, 2, 3,
+ 50, 2, 32, 46, 47, 23, 28, 10, 51, 24, 24, 89, 25, 23, 24, 50,
+ 46, 29, 50, 2, 2, 32, 10, 51, 89, 24, 24, 89, 25, 23, 24, 24,
+ 2, 51, 24, 24, 24, 50, 32, 46, 29, 28, 29, 90, 25, 23, 24, 24,
+ 24, 24, 90, 24, 24, 24, 50, 2, 32, 10, 51, 24, 50, 32, 29, 90,
+ 24, 89, 24, 24, 24, 24, 24, 24, 25, 23, 24, 24, 24, 50, 51, 24,
+ 24, 24, 24, 24, 89, 89, 24, 89, 25, 23, 89, 28, 29, 24, 24, 90,
+ 29, 89, 24, 24, 90, 28, 29, 24, 25, 45, 29, 25, 23, 24, 24, 24,
+ 23, 90, 28, 29, 24, 50, 51, 89, 50, 3, 23, 25, 23, 24, 90, 24,
+ 51, 24, 25, 23, 24, 28, 46, 29, 24, 25, 23, 25, 45, 29, 24, 24,
+ 24, 24, 50, 51, 24, 25, 1, 51, 90, 50, 51, 25, 113, 23, 24, 28,
+ 24, 24, 89, 24, 24, 50, 51, 24, 90, 24, 24, 25, 111, 45, 29, 50,
+ 24, 24, 28, 29, 90, 24, 90, 24, 24, 24, 24, 25, 111, 111, 23, 28,
+ 24, 89, 25, 23, 24, 24, 24, 24, 24, 24, 24, 50, 2, 2, 32, 10,
+ 24, 24, 25, 23, 24, 24, 24, 24, 24, 24, 24, 90, 24, 24, 50, 51],
+ "height":16,
+ "width":16,
+ "x":112,
+ "y":64
+ },
+ {
+ "data":[10, 51, 24, 24, 28, 29, 90, 50, 2, 2, 32, 10, 32, 46, 46, 46,
+ 23, 24, 28, 46, 10, 51, 24, 24, 24, 24, 50, 32, 47, 1, 2, 3,
+ 32, 29, 50, 2, 32, 46, 29, 24, 24, 24, 24, 50, 3, 23, 24, 50,
+ 25, 23, 24, 24, 25, 1, 51, 90, 24, 24, 28, 46, 10, 32, 29, 89,
+ 10, 51, 24, 89, 50, 32, 46, 29, 24, 24, 50, 2, 51, 25, 45, 29,
+ 32, 46, 46, 46, 29, 50, 2, 32, 46, 46, 46, 29, 24, 25, 1, 32,
+ 25, 111, 1, 3, 23, 24, 24, 25, 1, 2, 2, 51, 24, 50, 51, 25,
+ 25, 1, 51, 50, 51, 24, 28, 10, 51, 24, 24, 24, 90, 28, 29, 50,
+ 50, 51, 24, 28, 29, 24, 50, 32, 29, 24, 90, 24, 24, 25, 23, 24,
+ 24, 24, 24, 50, 32, 29, 24, 50, 51, 89, 24, 24, 24, 50, 51, 24,
+ 24, 24, 24, 24, 50, 51, 24, 24, 89, 89, 24, 28, 46, 46, 46, 46,
+ 24, 24, 24, 24, 24, 89, 24, 24, 24, 24, 24, 50, 2, 3, 111, 111,
+ 28, 46, 46, 46, 29, 24, 24, 24, 24, 24, 24, 24, 24, 25, 111, 1,
+ 10, 2, 2, 2, 51, 24, 24, 28, 29, 89, 28, 46, 29, 50, 3, 23,
+ 51, 24, 24, 90, 24, 89, 24, 25, 45, 46, 47, 111, 23, 24, 25, 23,
+ 24, 28, 29, 24, 24, 28, 46, 10, 2, 2, 2, 2, 51, 24, 50, 51],
+ "height":16,
+ "width":16,
+ "x":0,
+ "y":80
+ },
+ {
+ "data":[10, 51, 50, 51, 50, 32, 29, 24, 50, 2, 51, 24, 24, 24, 24, 24,
+ 23, 90, 24, 24, 24, 25, 45, 46, 29, 24, 24, 24, 24, 24, 28, 29,
+ 32, 29, 24, 24, 24, 25, 115, 1, 51, 24, 24, 89, 24, 24, 25, 23,
+ 50, 51, 90, 24, 24, 25, 111, 23, 24, 24, 24, 89, 24, 28, 47, 23,
+ 24, 24, 24, 24, 28, 10, 2, 51, 28, 46, 29, 24, 24, 50, 2, 32,
+ 29, 24, 24, 24, 50, 32, 29, 24, 50, 2, 32, 46, 29, 24, 24, 50,
+ 45, 46, 29, 24, 24, 50, 32, 29, 89, 24, 50, 3, 45, 29, 24, 24,
+ 2, 2, 32, 29, 24, 24, 25, 23, 24, 24, 24, 50, 3, 23, 90, 28,
+ 89, 24, 50, 32, 29, 24, 50, 51, 24, 24, 28, 46, 10, 32, 29, 25,
+ 24, 24, 89, 25, 45, 46, 29, 28, 46, 29, 50, 2, 51, 50, 51, 50,
+ 46, 46, 46, 10, 3, 1, 32, 10, 2, 32, 29, 28, 29, 28, 29, 90,
+ 1, 3, 1, 51, 50, 51, 50, 51, 24, 50, 32, 10, 51, 50, 51, 90,
+ 51, 25, 23, 24, 24, 24, 24, 24, 28, 46, 47, 23, 24, 24, 24, 24,
+ 24, 25, 23, 24, 24, 24, 24, 24, 50, 2, 3, 45, 29, 24, 24, 24,
+ 24, 50, 32, 46, 46, 29, 24, 28, 46, 46, 10, 2, 32, 29, 24, 24,
+ 24, 28, 10, 2, 2, 32, 29, 50, 3, 114, 45, 29, 25, 45, 29, 24],
+ "height":16,
+ "width":16,
+ "x":16,
+ "y":80
+ },
+ {
+ "data":[24, 24, 90, 24, 50, 51, 28, 29, 50, 51, 24, 24, 24, 25, 1, 51,
+ 24, 24, 24, 24, 90, 24, 25, 45, 29, 24, 24, 89, 24, 25, 23, 24,
+ 24, 28, 29, 24, 90, 24, 50, 2, 32, 46, 46, 29, 24, 50, 51, 24,
+ 90, 50, 51, 24, 24, 28, 29, 24, 50, 2, 2, 51, 28, 29, 24, 24,
+ 46, 29, 24, 24, 24, 25, 23, 28, 29, 89, 24, 24, 25, 23, 24, 28,
+ 2, 51, 24, 28, 46, 10, 51, 25, 23, 24, 28, 46, 10, 51, 24, 25,
+ 24, 24, 24, 25, 114, 23, 24, 50, 32, 46, 10, 2, 51, 24, 24, 50,
+ 46, 46, 29, 25, 111, 23, 24, 28, 10, 2, 51, 24, 28, 29, 24, 24,
+ 1, 2, 51, 50, 3, 23, 28, 10, 51, 90, 24, 90, 50, 32, 29, 90,
+ 32, 29, 24, 24, 50, 32, 10, 32, 46, 29, 90, 24, 28, 47, 23, 24,
+ 50, 51, 89, 24, 24, 50, 32, 10, 2, 51, 24, 28, 47, 1, 51, 24,
+ 28, 29, 24, 89, 89, 90, 25, 23, 24, 28, 29, 25, 1, 51, 24, 28,
+ 25, 23, 24, 24, 90, 24, 25, 23, 24, 50, 32, 10, 51, 24, 24, 50,
+ 25, 45, 29, 89, 24, 89, 25, 23, 24, 28, 47, 23, 24, 24, 24, 24,
+ 25, 114, 23, 89, 24, 24, 50, 51, 24, 50, 2, 51, 24, 24, 28, 29,
+ 50, 2, 32, 29, 24, 24, 28, 29, 28, 46, 29, 24, 24, 24, 25, 23],
+ "height":16,
+ "width":16,
+ "x":32,
+ "y":80
+ },
+ {
+ "data":[24, 24, 24, 28, 29, 25, 45, 10, 32, 10, 32, 29, 24, 24, 90, 24,
+ 28, 29, 28, 10, 51, 50, 2, 51, 25, 23, 50, 51, 24, 24, 24, 24,
+ 25, 23, 50, 32, 29, 24, 24, 24, 25, 23, 24, 24, 24, 24, 90, 24,
+ 25, 23, 24, 50, 32, 29, 24, 24, 50, 51, 28, 46, 29, 28, 29, 24,
+ 47, 23, 24, 24, 50, 32, 46, 29, 24, 24, 25, 1, 32, 47, 23, 28,
+ 115, 45, 29, 90, 28, 47, 111, 23, 89, 89, 50, 32, 10, 2, 51, 50,
+ 2, 2, 51, 24, 50, 2, 3, 23, 24, 24, 24, 50, 51, 28, 46, 29,
+ 24, 24, 24, 28, 46, 29, 25, 23, 24, 24, 24, 24, 90, 50, 2, 32,
+ 24, 24, 24, 50, 3, 45, 10, 51, 28, 29, 24, 90, 28, 29, 24, 50,
+ 24, 24, 24, 24, 25, 115, 23, 28, 10, 32, 46, 29, 25, 23, 24, 24,
+ 24, 24, 24, 24, 50, 2, 51, 25, 23, 50, 3, 23, 50, 32, 46, 29,
+ 46, 46, 46, 46, 46, 29, 24, 25, 23, 24, 25, 23, 24, 50, 2, 51,
+ 2, 2, 2, 2, 2, 32, 46, 10, 51, 28, 10, 32, 29, 24, 24, 89,
+ 24, 24, 89, 24, 24, 50, 3, 23, 90, 25, 23, 25, 23, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 50, 51, 89, 50, 51, 25, 23, 24, 24, 24,
+ 24, 24, 89, 24, 24, 90, 24, 24, 24, 24, 24, 25, 23, 24, 24, 24],
+ "height":16,
+ "width":16,
+ "x":48,
+ "y":80
+ },
+ {
+ "data":[24, 24, 24, 24, 24, 28, 29, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 50, 51, 24, 24, 28, 46, 46, 29, 24, 24, 24,
+ 89, 24, 24, 24, 28, 29, 24, 24, 90, 50, 2, 2, 32, 46, 29, 24,
+ 24, 24, 24, 24, 25, 23, 24, 24, 24, 24, 90, 24, 50, 2, 32, 29,
+ 29, 28, 29, 90, 25, 23, 24, 24, 24, 24, 24, 28, 29, 24, 25, 23,
+ 51, 25, 23, 24, 50, 51, 24, 28, 29, 89, 28, 10, 32, 46, 10, 32,
+ 24, 50, 51, 24, 24, 24, 24, 25, 23, 24, 50, 51, 50, 2, 51, 50,
+ 29, 24, 28, 29, 90, 24, 24, 50, 32, 29, 24, 24, 24, 24, 24, 24,
+ 51, 28, 10, 51, 24, 90, 90, 24, 25, 23, 24, 24, 24, 24, 90, 24,
+ 24, 25, 23, 24, 24, 24, 24, 24, 50, 51, 89, 24, 24, 24, 24, 24,
+ 24, 50, 32, 29, 28, 46, 29, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 28, 10, 51, 25, 111, 45, 46, 46, 46, 29, 24, 24, 24, 24, 24,
+ 24, 50, 32, 29, 50, 2, 2, 2, 2, 2, 51, 24, 24, 24, 24, 24,
+ 24, 90, 50, 51, 90, 24, 89, 90, 24, 24, 24, 24, 24, 28, 29, 24,
+ 24, 90, 24, 24, 24, 24, 24, 24, 28, 29, 24, 24, 28, 47, 45, 29,
+ 24, 90, 24, 89, 24, 89, 28, 29, 25, 45, 29, 28, 10, 3, 1, 51],
+ "height":16,
+ "width":16,
+ "x":64,
+ "y":80
+ },
+ {
+ "data":[90, 25, 45, 47, 23, 89, 24, 24, 24, 89, 24, 24, 28, 46, 29, 24,
+ 24, 50, 2, 2, 51, 24, 28, 29, 24, 24, 24, 24, 50, 3, 23, 24,
+ 24, 90, 24, 24, 24, 28, 10, 51, 24, 89, 28, 46, 29, 25, 45, 46,
+ 24, 24, 28, 29, 24, 50, 32, 29, 28, 29, 50, 3, 23, 50, 2, 3,
+ 24, 24, 25, 23, 24, 28, 47, 23, 25, 23, 24, 50, 51, 24, 24, 50,
+ 46, 29, 25, 23, 24, 25, 115, 23, 50, 32, 29, 24, 24, 24, 24, 24,
+ 2, 51, 50, 51, 24, 50, 3, 45, 29, 50, 51, 24, 24, 24, 90, 24,
+ 24, 24, 24, 90, 90, 24, 50, 2, 32, 46, 46, 29, 28, 29, 90, 24,
+ 24, 24, 24, 24, 24, 28, 46, 29, 50, 2, 2, 32, 47, 23, 89, 24,
+ 28, 29, 28, 29, 24, 50, 3, 23, 24, 24, 89, 50, 3, 45, 29, 24,
+ 25, 23, 50, 32, 29, 90, 50, 51, 24, 24, 89, 24, 50, 3, 23, 24,
+ 50, 51, 89, 50, 51, 24, 24, 24, 90, 24, 24, 24, 24, 50, 51, 24,
+ 24, 89, 28, 29, 24, 24, 24, 24, 28, 29, 24, 24, 90, 89, 24, 28,
+ 28, 29, 50, 51, 89, 24, 28, 46, 10, 32, 46, 29, 90, 24, 24, 25,
+ 25, 23, 90, 89, 24, 90, 50, 2, 32, 10, 3, 45, 46, 46, 46, 47,
+ 50, 32, 46, 29, 24, 24, 24, 90, 25, 23, 50, 2, 3, 111, 1, 3],
+ "height":16,
+ "width":16,
+ "x":80,
+ "y":80
+ },
+ {
+ "data":[24, 50, 51, 50, 32, 46, 10, 3, 1, 32, 46, 29, 24, 24, 50, 32,
+ 24, 24, 24, 24, 25, 1, 51, 50, 51, 25, 1, 51, 28, 29, 24, 50,
+ 46, 29, 24, 89, 50, 51, 24, 28, 29, 50, 32, 29, 50, 32, 29, 28,
+ 1, 32, 29, 89, 24, 28, 46, 10, 51, 24, 25, 23, 24, 50, 51, 50,
+ 51, 50, 32, 29, 24, 50, 2, 51, 90, 24, 50, 51, 89, 90, 24, 24,
+ 24, 24, 50, 51, 24, 28, 29, 24, 24, 24, 24, 24, 90, 24, 24, 24,
+ 24, 24, 90, 24, 89, 50, 51, 24, 24, 24, 28, 29, 24, 24, 24, 24,
+ 24, 28, 46, 29, 24, 24, 89, 24, 24, 24, 50, 51, 24, 24, 24, 90,
+ 24, 25, 111, 23, 24, 89, 28, 29, 24, 24, 28, 29, 24, 24, 24, 28,
+ 24, 50, 2, 51, 24, 89, 50, 51, 90, 24, 50, 32, 46, 46, 46, 47,
+ 24, 89, 24, 24, 24, 24, 24, 24, 24, 90, 24, 25, 115, 114, 114, 111,
+ 24, 24, 24, 24, 24, 24, 89, 24, 24, 24, 24, 25, 114, 1, 2, 3,
+ 46, 29, 28, 29, 28, 29, 28, 46, 29, 24, 90, 50, 2, 51, 24, 50,
+ 1, 51, 25, 23, 50, 51, 50, 2, 32, 29, 90, 89, 90, 89, 24, 24,
+ 23, 24, 50, 51, 28, 46, 29, 24, 50, 51, 24, 24, 89, 24, 90, 89,
+ 23, 24, 24, 24, 50, 2, 51, 24, 24, 24, 24, 24, 90, 24, 24, 24],
+ "height":16,
+ "width":16,
+ "x":96,
+ "y":80
+ },
+ {
+ "data":[29, 24, 50, 51, 24, 24, 24, 24, 28, 29, 24, 89, 28, 46, 29, 28,
+ 51, 24, 24, 24, 24, 90, 24, 28, 10, 51, 24, 24, 50, 3, 45, 10,
+ 29, 24, 28, 29, 24, 24, 28, 10, 32, 46, 29, 24, 24, 25, 1, 51,
+ 32, 46, 10, 32, 46, 46, 10, 51, 50, 3, 45, 29, 24, 25, 45, 29,
+ 50, 2, 51, 25, 1, 2, 32, 46, 46, 47, 1, 32, 46, 47, 115, 23,
+ 90, 24, 24, 50, 32, 46, 10, 2, 3, 112, 45, 10, 2, 2, 2, 32,
+ 24, 24, 24, 24, 50, 2, 32, 46, 10, 2, 2, 51, 28, 29, 24, 50,
+ 24, 24, 89, 24, 24, 24, 25, 111, 23, 24, 24, 24, 25, 23, 28, 29,
+ 29, 24, 89, 89, 24, 24, 25, 111, 23, 24, 28, 29, 50, 51, 25, 23,
+ 23, 24, 89, 24, 24, 24, 25, 111, 23, 24, 25, 23, 28, 29, 25, 23,
+ 23, 24, 24, 24, 24, 24, 25, 111, 45, 46, 10, 51, 50, 51, 50, 51,
+ 23, 24, 24, 24, 24, 24, 50, 3, 115, 115, 23, 89, 24, 24, 90, 28,
+ 51, 24, 24, 24, 24, 24, 90, 25, 1, 2, 51, 89, 24, 89, 24, 25,
+ 24, 24, 24, 24, 24, 24, 24, 50, 32, 29, 24, 24, 24, 24, 24, 50,
+ 24, 24, 90, 90, 24, 24, 28, 46, 47, 23, 28, 29, 28, 46, 29, 24,
+ 24, 24, 24, 24, 24, 24, 25, 111, 1, 51, 50, 51, 50, 2, 51, 24],
+ "height":16,
+ "width":16,
+ "x":112,
+ "y":80
+ }],
+ "class":"Tile",
+ "height":96,
+ "id":1,
+ "name":"Tiles",
+ "opacity":1,
+ "startx":0,
+ "starty":0,
+ "type":"tilelayer",
+ "visible":true,
+ "width":128,
+ "x":0,
+ "y":0
+ },
+ {
+ "chunks":[],
+ "height":80,
+ "id":5,
+ "name":"Collidable",
+ "opacity":1,
+ "startx":0,
+ "starty":0,
+ "type":"tilelayer",
+ "visible":true,
+ "width":64,
+ "x":0,
+ "y":0
+ },
+ {
+ "draworder":"topdown",
+ "id":3,
+ "name":"Collectables",
+ "objects":[],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ {
+ "draworder":"topdown",
+ "id":4,
+ "name":"Enemies",
+ "objects":[],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ }],
+ "nextlayerid":6,
+ "nextobjectid":1,
+ "orientation":"orthogonal",
+ "renderorder":"right-down",
+ "tiledversion":"1.10.2",
+ "tileheight":16,
+ "tilesets":[
+ {
+ "firstgid":1,
+ "source":"..\/TileSets\/TileSet 1.tsj"
+ },
+ {
+ "firstgid":573,
+ "source":"..\/TileSets\/tileset 1 collision.tsj"
+ }],
+ "tilewidth":16,
+ "type":"map",
+ "version":"1.10",
+ "width":30
+}
\ No newline at end of file
diff --git a/ZoFo/Content/MapData/TileSets/TileSet 1.tsj b/ZoFo/Content/MapData/TileSets/TileSet 1.tsj
new file mode 100644
index 0000000..9e9f4b1
--- /dev/null
+++ b/ZoFo/Content/MapData/TileSets/TileSet 1.tsj
@@ -0,0 +1,2429 @@
+{ "class":"Tile",
+ "columns":22,
+ "fillmode":"preserve-aspect-fit",
+ "grid":
+ {
+ "height":24,
+ "orientation":"orthogonal",
+ "width":24
+ },
+ "image":"..\/..\/Textures\/TileSetImages\/TilesetFloor.png",
+ "imageheight":417,
+ "imagewidth":352,
+ "margin":0,
+ "name":"TileSet 1",
+ "objectalignment":"topleft",
+ "spacing":0,
+ "tilecount":572,
+ "tiledversion":"1.10.2",
+ "tileheight":16,
+ "tiles":[
+ {
+ "id":0,
+ "type":"Tile"
+ },
+ {
+ "id":1,
+ "type":"Tile"
+ },
+ {
+ "id":2,
+ "type":"Tile"
+ },
+ {
+ "id":3,
+ "type":"Tile"
+ },
+ {
+ "id":4,
+ "type":"Tile"
+ },
+ {
+ "id":5,
+ "type":"Tile"
+ },
+ {
+ "id":6,
+ "type":"Tile"
+ },
+ {
+ "id":7,
+ "type":"Tile"
+ },
+ {
+ "id":8,
+ "type":"Tile"
+ },
+ {
+ "id":9,
+ "type":"Tile"
+ },
+ {
+ "id":10,
+ "type":"Tile"
+ },
+ {
+ "id":11,
+ "type":"Tile"
+ },
+ {
+ "id":12,
+ "type":"Tile"
+ },
+ {
+ "id":13,
+ "type":"Tile"
+ },
+ {
+ "id":14,
+ "type":"Tile"
+ },
+ {
+ "id":15,
+ "type":"Tile"
+ },
+ {
+ "id":16,
+ "type":"Tile"
+ },
+ {
+ "id":17,
+ "type":"Tile"
+ },
+ {
+ "id":18,
+ "type":"Tile"
+ },
+ {
+ "id":19,
+ "type":"Tile"
+ },
+ {
+ "id":20,
+ "type":"Tile"
+ },
+ {
+ "id":21,
+ "type":"Tile"
+ },
+ {
+ "id":22,
+ "type":"Tile"
+ },
+ {
+ "id":23,
+ "type":"Tile"
+ },
+ {
+ "id":24,
+ "type":"Tile"
+ },
+ {
+ "id":25,
+ "type":"Tile"
+ },
+ {
+ "id":26,
+ "type":"Tile"
+ },
+ {
+ "id":27,
+ "probability":0.5,
+ "type":"Tile"
+ },
+ {
+ "id":28,
+ "probability":0.5,
+ "type":"Tile"
+ },
+ {
+ "id":29,
+ "type":"Tile"
+ },
+ {
+ "id":30,
+ "type":"Tile"
+ },
+ {
+ "id":31,
+ "type":"Tile"
+ },
+ {
+ "id":32,
+ "type":"Tile"
+ },
+ {
+ "id":33,
+ "type":"Tile"
+ },
+ {
+ "id":34,
+ "type":"Tile"
+ },
+ {
+ "id":35,
+ "type":"Tile"
+ },
+ {
+ "id":36,
+ "type":"Tile"
+ },
+ {
+ "id":37,
+ "type":"Tile"
+ },
+ {
+ "id":38,
+ "type":"Tile"
+ },
+ {
+ "id":39,
+ "type":"Tile"
+ },
+ {
+ "id":40,
+ "type":"Tile"
+ },
+ {
+ "id":41,
+ "type":"Tile"
+ },
+ {
+ "id":42,
+ "type":"Tile"
+ },
+ {
+ "id":43,
+ "type":"Tile"
+ },
+ {
+ "id":44,
+ "type":"Tile"
+ },
+ {
+ "id":45,
+ "type":"Tile"
+ },
+ {
+ "id":46,
+ "type":"Tile"
+ },
+ {
+ "id":47,
+ "type":"Tile"
+ },
+ {
+ "id":48,
+ "type":"Tile"
+ },
+ {
+ "id":49,
+ "probability":0.5,
+ "type":"Tile"
+ },
+ {
+ "id":50,
+ "probability":0.5,
+ "type":"Tile"
+ },
+ {
+ "id":51,
+ "type":"Tile"
+ },
+ {
+ "id":52,
+ "type":"Tile"
+ },
+ {
+ "id":53,
+ "type":"Tile"
+ },
+ {
+ "id":54,
+ "type":"Tile"
+ },
+ {
+ "id":55,
+ "type":"Tile"
+ },
+ {
+ "id":56,
+ "type":"Tile"
+ },
+ {
+ "id":57,
+ "type":"Tile"
+ },
+ {
+ "id":58,
+ "type":"Tile"
+ },
+ {
+ "id":59,
+ "type":"Tile"
+ },
+ {
+ "id":60,
+ "type":"Tile"
+ },
+ {
+ "id":61,
+ "type":"Tile"
+ },
+ {
+ "id":62,
+ "type":"Tile"
+ },
+ {
+ "id":63,
+ "type":"Tile"
+ },
+ {
+ "id":64,
+ "type":"Tile"
+ },
+ {
+ "id":65,
+ "type":"Tile"
+ },
+ {
+ "id":66,
+ "type":"Tile"
+ },
+ {
+ "id":67,
+ "type":"Tile"
+ },
+ {
+ "id":68,
+ "type":"Tile"
+ },
+ {
+ "id":69,
+ "type":"Tile"
+ },
+ {
+ "id":70,
+ "type":"Tile"
+ },
+ {
+ "id":71,
+ "type":"Tile"
+ },
+ {
+ "id":72,
+ "type":"Tile"
+ },
+ {
+ "id":73,
+ "type":"Tile"
+ },
+ {
+ "id":74,
+ "type":"Tile"
+ },
+ {
+ "id":75,
+ "type":"Tile"
+ },
+ {
+ "id":76,
+ "type":"Tile"
+ },
+ {
+ "id":77,
+ "type":"Tile"
+ },
+ {
+ "id":78,
+ "type":"Tile"
+ },
+ {
+ "id":79,
+ "type":"Tile"
+ },
+ {
+ "id":80,
+ "type":"Tile"
+ },
+ {
+ "id":81,
+ "type":"Tile"
+ },
+ {
+ "id":82,
+ "type":"Tile"
+ },
+ {
+ "id":83,
+ "type":"Tile"
+ },
+ {
+ "id":84,
+ "type":"Tile"
+ },
+ {
+ "id":85,
+ "type":"Tile"
+ },
+ {
+ "id":86,
+ "type":"Tile"
+ },
+ {
+ "id":87,
+ "type":"Tile"
+ },
+ {
+ "id":88,
+ "probability":0.100000001490116,
+ "type":"Tile"
+ },
+ {
+ "id":89,
+ "probability":0.100000001490116,
+ "type":"Tile"
+ },
+ {
+ "id":90,
+ "type":"Tile"
+ },
+ {
+ "id":91,
+ "type":"Tile"
+ },
+ {
+ "id":92,
+ "type":"Tile"
+ },
+ {
+ "id":93,
+ "type":"Tile"
+ },
+ {
+ "id":94,
+ "type":"Tile"
+ },
+ {
+ "id":95,
+ "type":"Tile"
+ },
+ {
+ "id":96,
+ "type":"Tile"
+ },
+ {
+ "id":97,
+ "type":"Tile"
+ },
+ {
+ "id":98,
+ "type":"Tile"
+ },
+ {
+ "id":99,
+ "type":"Tile"
+ },
+ {
+ "id":100,
+ "type":"Tile"
+ },
+ {
+ "id":101,
+ "type":"Tile"
+ },
+ {
+ "id":102,
+ "type":"Tile"
+ },
+ {
+ "id":103,
+ "type":"Tile"
+ },
+ {
+ "id":104,
+ "type":"Tile"
+ },
+ {
+ "id":105,
+ "type":"Tile"
+ },
+ {
+ "id":106,
+ "type":"Tile"
+ },
+ {
+ "id":107,
+ "type":"Tile"
+ },
+ {
+ "id":108,
+ "type":"Tile"
+ },
+ {
+ "id":109,
+ "type":"Tile"
+ },
+ {
+ "id":110,
+ "probability":2,
+ "type":"Tile"
+ },
+ {
+ "id":111,
+ "probability":0.100000001490116,
+ "type":"Tile"
+ },
+ {
+ "id":112,
+ "probability":0.100000001490116,
+ "type":"Tile"
+ },
+ {
+ "id":113,
+ "type":"Tile"
+ },
+ {
+ "id":114,
+ "type":"Tile"
+ },
+ {
+ "id":115,
+ "type":"Tile"
+ },
+ {
+ "id":116,
+ "type":"Tile"
+ },
+ {
+ "id":117,
+ "type":"Tile"
+ },
+ {
+ "id":118,
+ "type":"Tile"
+ },
+ {
+ "id":119,
+ "type":"Tile"
+ },
+ {
+ "id":120,
+ "type":"Tile"
+ },
+ {
+ "id":121,
+ "type":"Tile"
+ },
+ {
+ "id":122,
+ "type":"Tile"
+ },
+ {
+ "id":123,
+ "type":"Tile"
+ },
+ {
+ "id":124,
+ "type":"Tile"
+ },
+ {
+ "id":125,
+ "type":"Tile"
+ },
+ {
+ "id":126,
+ "type":"Tile"
+ },
+ {
+ "id":127,
+ "type":"Tile"
+ },
+ {
+ "id":128,
+ "type":"Tile"
+ },
+ {
+ "id":129,
+ "type":"Tile"
+ },
+ {
+ "id":130,
+ "type":"Tile"
+ },
+ {
+ "id":131,
+ "type":"Tile"
+ },
+ {
+ "id":132,
+ "type":"Tile"
+ },
+ {
+ "id":133,
+ "type":"Tile"
+ },
+ {
+ "id":134,
+ "type":"Tile"
+ },
+ {
+ "id":135,
+ "type":"Tile"
+ },
+ {
+ "id":136,
+ "type":"Tile"
+ },
+ {
+ "id":137,
+ "type":"Tile"
+ },
+ {
+ "id":138,
+ "type":"Tile"
+ },
+ {
+ "id":139,
+ "type":"Tile"
+ },
+ {
+ "id":140,
+ "type":"Tile"
+ },
+ {
+ "id":141,
+ "type":"Tile"
+ },
+ {
+ "id":142,
+ "type":"Tile"
+ },
+ {
+ "id":143,
+ "type":"Tile"
+ },
+ {
+ "id":144,
+ "type":"Tile"
+ },
+ {
+ "id":145,
+ "type":"Tile"
+ },
+ {
+ "id":146,
+ "type":"Tile"
+ },
+ {
+ "id":147,
+ "type":"Tile"
+ },
+ {
+ "id":148,
+ "type":"Tile"
+ },
+ {
+ "id":149,
+ "type":"Tile"
+ },
+ {
+ "id":150,
+ "type":"Tile"
+ },
+ {
+ "id":151,
+ "type":"Tile"
+ },
+ {
+ "id":152,
+ "type":"Tile"
+ },
+ {
+ "id":153,
+ "type":"Tile"
+ },
+ {
+ "id":154,
+ "type":"Tile"
+ },
+ {
+ "id":155,
+ "type":"Tile"
+ },
+ {
+ "id":156,
+ "type":"Tile"
+ },
+ {
+ "id":157,
+ "type":"Tile"
+ },
+ {
+ "id":158,
+ "type":"Tile"
+ },
+ {
+ "id":159,
+ "type":"Tile"
+ },
+ {
+ "id":160,
+ "type":"Tile"
+ },
+ {
+ "id":161,
+ "type":"Tile"
+ },
+ {
+ "id":162,
+ "type":"Tile"
+ },
+ {
+ "id":163,
+ "type":"Tile"
+ },
+ {
+ "id":164,
+ "type":"Tile"
+ },
+ {
+ "id":165,
+ "type":"Tile"
+ },
+ {
+ "id":166,
+ "type":"Tile"
+ },
+ {
+ "id":167,
+ "type":"Tile"
+ },
+ {
+ "id":168,
+ "type":"Tile"
+ },
+ {
+ "id":169,
+ "type":"Tile"
+ },
+ {
+ "id":170,
+ "type":"Tile"
+ },
+ {
+ "id":171,
+ "type":"Tile"
+ },
+ {
+ "id":172,
+ "type":"Tile"
+ },
+ {
+ "id":173,
+ "type":"Tile"
+ },
+ {
+ "id":174,
+ "type":"Tile"
+ },
+ {
+ "id":175,
+ "type":"Tile"
+ },
+ {
+ "id":176,
+ "type":"Tile"
+ },
+ {
+ "id":177,
+ "type":"Tile"
+ },
+ {
+ "id":178,
+ "type":"Tile"
+ },
+ {
+ "id":179,
+ "type":"Tile"
+ },
+ {
+ "id":180,
+ "type":"Tile"
+ },
+ {
+ "id":181,
+ "type":"Tile"
+ },
+ {
+ "id":182,
+ "type":"Tile"
+ },
+ {
+ "id":183,
+ "type":"Tile"
+ },
+ {
+ "id":184,
+ "type":"Tile"
+ },
+ {
+ "id":185,
+ "type":"Tile"
+ },
+ {
+ "id":186,
+ "type":"Tile"
+ },
+ {
+ "id":187,
+ "type":"Tile"
+ },
+ {
+ "id":188,
+ "type":"Tile"
+ },
+ {
+ "id":189,
+ "type":"Tile"
+ },
+ {
+ "id":190,
+ "type":"Tile"
+ },
+ {
+ "id":191,
+ "type":"Tile"
+ },
+ {
+ "id":192,
+ "type":"Tile"
+ },
+ {
+ "id":193,
+ "type":"Tile"
+ },
+ {
+ "id":194,
+ "type":"Tile"
+ },
+ {
+ "id":195,
+ "type":"Tile"
+ },
+ {
+ "id":196,
+ "type":"Tile"
+ },
+ {
+ "id":197,
+ "type":"Tile"
+ },
+ {
+ "id":198,
+ "type":"Tile"
+ },
+ {
+ "id":199,
+ "type":"Tile"
+ },
+ {
+ "id":200,
+ "type":"Tile"
+ },
+ {
+ "id":201,
+ "type":"Tile"
+ },
+ {
+ "id":202,
+ "type":"Tile"
+ },
+ {
+ "id":203,
+ "type":"Tile"
+ },
+ {
+ "id":204,
+ "type":"Tile"
+ },
+ {
+ "id":205,
+ "type":"Tile"
+ },
+ {
+ "id":206,
+ "type":"Tile"
+ },
+ {
+ "id":207,
+ "type":"Tile"
+ },
+ {
+ "id":208,
+ "type":"Tile"
+ },
+ {
+ "id":209,
+ "type":"Tile"
+ },
+ {
+ "id":210,
+ "type":"Tile"
+ },
+ {
+ "id":211,
+ "type":"Tile"
+ },
+ {
+ "id":212,
+ "type":"Tile"
+ },
+ {
+ "id":213,
+ "type":"Tile"
+ },
+ {
+ "id":214,
+ "type":"Tile"
+ },
+ {
+ "id":215,
+ "type":"Tile"
+ },
+ {
+ "id":216,
+ "type":"Tile"
+ },
+ {
+ "id":217,
+ "type":"Tile"
+ },
+ {
+ "id":218,
+ "type":"Tile"
+ },
+ {
+ "id":219,
+ "type":"Tile"
+ },
+ {
+ "id":220,
+ "type":"Tile"
+ },
+ {
+ "id":221,
+ "type":"Tile"
+ },
+ {
+ "id":222,
+ "type":"Tile"
+ },
+ {
+ "id":223,
+ "type":"Tile"
+ },
+ {
+ "id":224,
+ "type":"Tile"
+ },
+ {
+ "id":225,
+ "type":"Tile"
+ },
+ {
+ "id":226,
+ "type":"Tile"
+ },
+ {
+ "id":227,
+ "type":"Tile"
+ },
+ {
+ "id":228,
+ "type":"Tile"
+ },
+ {
+ "id":229,
+ "type":"Tile"
+ },
+ {
+ "id":230,
+ "type":"Tile"
+ },
+ {
+ "id":231,
+ "type":"Tile"
+ },
+ {
+ "id":232,
+ "type":"Tile"
+ },
+ {
+ "id":233,
+ "type":"Tile"
+ },
+ {
+ "id":234,
+ "type":"Tile"
+ },
+ {
+ "id":235,
+ "type":"Tile"
+ },
+ {
+ "id":236,
+ "type":"Tile"
+ },
+ {
+ "id":237,
+ "type":"Tile"
+ },
+ {
+ "id":238,
+ "type":"Tile"
+ },
+ {
+ "id":239,
+ "type":"Tile"
+ },
+ {
+ "id":240,
+ "type":"Tile"
+ },
+ {
+ "id":241,
+ "type":"Tile"
+ },
+ {
+ "id":242,
+ "type":"Tile"
+ },
+ {
+ "id":243,
+ "type":"Tile"
+ },
+ {
+ "id":244,
+ "type":"Tile"
+ },
+ {
+ "id":245,
+ "type":"Tile"
+ },
+ {
+ "id":246,
+ "type":"Tile"
+ },
+ {
+ "id":247,
+ "type":"Tile"
+ },
+ {
+ "id":248,
+ "type":"Tile"
+ },
+ {
+ "id":249,
+ "type":"Tile"
+ },
+ {
+ "id":250,
+ "type":"Tile"
+ },
+ {
+ "id":251,
+ "type":"Tile"
+ },
+ {
+ "id":252,
+ "type":"Tile"
+ },
+ {
+ "id":253,
+ "type":"Tile"
+ },
+ {
+ "id":254,
+ "type":"Tile"
+ },
+ {
+ "id":255,
+ "type":"Tile"
+ },
+ {
+ "id":256,
+ "type":"Tile"
+ },
+ {
+ "id":257,
+ "type":"Tile"
+ },
+ {
+ "id":258,
+ "type":"Tile"
+ },
+ {
+ "id":259,
+ "type":"Tile"
+ },
+ {
+ "id":260,
+ "type":"Tile"
+ },
+ {
+ "id":261,
+ "type":"Tile"
+ },
+ {
+ "id":262,
+ "type":"Tile"
+ },
+ {
+ "id":263,
+ "type":"Tile"
+ },
+ {
+ "id":264,
+ "type":"Tile"
+ },
+ {
+ "id":265,
+ "type":"Tile"
+ },
+ {
+ "id":266,
+ "type":"Tile"
+ },
+ {
+ "id":267,
+ "type":"Tile"
+ },
+ {
+ "id":268,
+ "type":"Tile"
+ },
+ {
+ "id":269,
+ "type":"Tile"
+ },
+ {
+ "id":270,
+ "type":"Tile"
+ },
+ {
+ "id":271,
+ "type":"Tile"
+ },
+ {
+ "id":272,
+ "type":"Tile"
+ },
+ {
+ "id":273,
+ "type":"Tile"
+ },
+ {
+ "id":274,
+ "type":"Tile"
+ },
+ {
+ "id":275,
+ "type":"Tile"
+ },
+ {
+ "id":276,
+ "type":"Tile"
+ },
+ {
+ "id":277,
+ "type":"Tile"
+ },
+ {
+ "id":278,
+ "type":"Tile"
+ },
+ {
+ "id":279,
+ "type":"Tile"
+ },
+ {
+ "id":280,
+ "type":"Tile"
+ },
+ {
+ "id":281,
+ "type":"Tile"
+ },
+ {
+ "id":282,
+ "type":"Tile"
+ },
+ {
+ "id":283,
+ "type":"Tile"
+ },
+ {
+ "id":284,
+ "type":"Tile"
+ },
+ {
+ "id":285,
+ "type":"Tile"
+ },
+ {
+ "id":286,
+ "type":"Tile"
+ },
+ {
+ "id":287,
+ "type":"Tile"
+ },
+ {
+ "id":288,
+ "type":"Tile"
+ },
+ {
+ "id":289,
+ "type":"Tile"
+ },
+ {
+ "id":290,
+ "type":"Tile"
+ },
+ {
+ "id":291,
+ "type":"Tile"
+ },
+ {
+ "id":292,
+ "type":"Tile"
+ },
+ {
+ "id":293,
+ "type":"Tile"
+ },
+ {
+ "id":294,
+ "type":"Tile"
+ },
+ {
+ "id":295,
+ "type":"Tile"
+ },
+ {
+ "id":296,
+ "type":"Tile"
+ },
+ {
+ "id":297,
+ "type":"Tile"
+ },
+ {
+ "id":298,
+ "type":"Tile"
+ },
+ {
+ "id":299,
+ "type":"Tile"
+ },
+ {
+ "id":300,
+ "type":"Tile"
+ },
+ {
+ "id":301,
+ "type":"Tile"
+ },
+ {
+ "id":302,
+ "type":"Tile"
+ },
+ {
+ "id":303,
+ "type":"Tile"
+ },
+ {
+ "id":304,
+ "type":"Tile"
+ },
+ {
+ "id":305,
+ "type":"Tile"
+ },
+ {
+ "id":306,
+ "type":"Tile"
+ },
+ {
+ "id":307,
+ "type":"Tile"
+ },
+ {
+ "id":308,
+ "type":"Tile"
+ },
+ {
+ "id":309,
+ "type":"Tile"
+ },
+ {
+ "id":310,
+ "type":"Tile"
+ },
+ {
+ "id":311,
+ "type":"Tile"
+ },
+ {
+ "id":312,
+ "type":"Tile"
+ },
+ {
+ "id":313,
+ "type":"Tile"
+ },
+ {
+ "id":314,
+ "type":"Tile"
+ },
+ {
+ "id":315,
+ "type":"Tile"
+ },
+ {
+ "id":316,
+ "type":"Tile"
+ },
+ {
+ "id":317,
+ "type":"Tile"
+ },
+ {
+ "id":318,
+ "type":"Tile"
+ },
+ {
+ "id":319,
+ "type":"Tile"
+ },
+ {
+ "id":320,
+ "type":"Tile"
+ },
+ {
+ "id":321,
+ "type":"Tile"
+ },
+ {
+ "id":322,
+ "type":"Tile"
+ },
+ {
+ "id":323,
+ "type":"Tile"
+ },
+ {
+ "id":324,
+ "type":"Tile"
+ },
+ {
+ "id":325,
+ "type":"Tile"
+ },
+ {
+ "id":326,
+ "type":"Tile"
+ },
+ {
+ "id":327,
+ "type":"Tile"
+ },
+ {
+ "id":328,
+ "type":"Tile"
+ },
+ {
+ "id":329,
+ "type":"Tile"
+ },
+ {
+ "id":330,
+ "type":"Tile"
+ },
+ {
+ "id":331,
+ "type":"Tile"
+ },
+ {
+ "id":332,
+ "type":"Tile"
+ },
+ {
+ "id":333,
+ "type":"Tile"
+ },
+ {
+ "id":334,
+ "type":"Tile"
+ },
+ {
+ "id":335,
+ "type":"Tile"
+ },
+ {
+ "id":336,
+ "type":"Tile"
+ },
+ {
+ "id":337,
+ "type":"Tile"
+ },
+ {
+ "id":338,
+ "type":"Tile"
+ },
+ {
+ "id":339,
+ "type":"Tile"
+ },
+ {
+ "id":340,
+ "type":"Tile"
+ },
+ {
+ "id":341,
+ "type":"Tile"
+ },
+ {
+ "id":342,
+ "type":"Tile"
+ },
+ {
+ "id":343,
+ "type":"Tile"
+ },
+ {
+ "id":344,
+ "type":"Tile"
+ },
+ {
+ "id":345,
+ "type":"Tile"
+ },
+ {
+ "id":346,
+ "type":"Tile"
+ },
+ {
+ "id":347,
+ "type":"Tile"
+ },
+ {
+ "id":348,
+ "type":"Tile"
+ },
+ {
+ "id":349,
+ "type":"Tile"
+ },
+ {
+ "id":350,
+ "type":"Tile"
+ },
+ {
+ "id":351,
+ "type":"Tile"
+ },
+ {
+ "id":352,
+ "type":"Tile"
+ },
+ {
+ "id":353,
+ "type":"Tile"
+ },
+ {
+ "id":354,
+ "type":"Tile"
+ },
+ {
+ "id":355,
+ "type":"Tile"
+ },
+ {
+ "id":356,
+ "type":"Tile"
+ },
+ {
+ "id":357,
+ "type":"Tile"
+ },
+ {
+ "id":358,
+ "type":"Tile"
+ },
+ {
+ "id":359,
+ "type":"Tile"
+ },
+ {
+ "id":360,
+ "type":"Tile"
+ },
+ {
+ "id":361,
+ "type":"Tile"
+ },
+ {
+ "id":362,
+ "type":"Tile"
+ },
+ {
+ "id":363,
+ "type":"Tile"
+ },
+ {
+ "id":364,
+ "type":"Tile"
+ },
+ {
+ "id":365,
+ "type":"Tile"
+ },
+ {
+ "id":366,
+ "type":"Tile"
+ },
+ {
+ "id":367,
+ "type":"Tile"
+ },
+ {
+ "id":368,
+ "type":"Tile"
+ },
+ {
+ "id":369,
+ "type":"Tile"
+ },
+ {
+ "id":370,
+ "type":"Tile"
+ },
+ {
+ "id":371,
+ "type":"Tile"
+ },
+ {
+ "id":372,
+ "type":"Tile"
+ },
+ {
+ "id":373,
+ "type":"Tile"
+ },
+ {
+ "id":374,
+ "type":"Tile"
+ },
+ {
+ "id":375,
+ "type":"Tile"
+ },
+ {
+ "id":376,
+ "type":"Tile"
+ },
+ {
+ "id":377,
+ "type":"Tile"
+ },
+ {
+ "id":378,
+ "type":"Tile"
+ },
+ {
+ "id":379,
+ "type":"Tile"
+ },
+ {
+ "id":380,
+ "type":"Tile"
+ },
+ {
+ "id":381,
+ "type":"Tile"
+ },
+ {
+ "id":382,
+ "type":"Tile"
+ },
+ {
+ "id":383,
+ "type":"Tile"
+ },
+ {
+ "id":384,
+ "type":"Tile"
+ },
+ {
+ "id":385,
+ "type":"Tile"
+ },
+ {
+ "id":386,
+ "type":"Tile"
+ },
+ {
+ "id":387,
+ "type":"Tile"
+ },
+ {
+ "id":388,
+ "type":"Tile"
+ },
+ {
+ "id":389,
+ "type":"Tile"
+ },
+ {
+ "id":390,
+ "type":"Tile"
+ },
+ {
+ "id":391,
+ "type":"Tile"
+ },
+ {
+ "id":392,
+ "type":"Tile"
+ },
+ {
+ "id":393,
+ "type":"Tile"
+ },
+ {
+ "id":394,
+ "type":"Tile"
+ },
+ {
+ "id":395,
+ "type":"Tile"
+ },
+ {
+ "id":396,
+ "type":"Tile"
+ },
+ {
+ "id":397,
+ "type":"Tile"
+ },
+ {
+ "id":398,
+ "type":"Tile"
+ },
+ {
+ "id":399,
+ "type":"Tile"
+ },
+ {
+ "id":400,
+ "type":"Tile"
+ },
+ {
+ "id":401,
+ "type":"Tile"
+ },
+ {
+ "id":402,
+ "type":"Tile"
+ },
+ {
+ "id":403,
+ "type":"Tile"
+ },
+ {
+ "id":404,
+ "type":"Tile"
+ },
+ {
+ "id":405,
+ "type":"Tile"
+ },
+ {
+ "id":406,
+ "type":"Tile"
+ },
+ {
+ "id":407,
+ "type":"Tile"
+ },
+ {
+ "id":408,
+ "type":"Tile"
+ },
+ {
+ "id":409,
+ "type":"Tile"
+ },
+ {
+ "id":410,
+ "type":"Tile"
+ },
+ {
+ "id":411,
+ "type":"Tile"
+ },
+ {
+ "id":412,
+ "type":"Tile"
+ },
+ {
+ "id":413,
+ "type":"Tile"
+ },
+ {
+ "id":414,
+ "type":"Tile"
+ },
+ {
+ "id":415,
+ "type":"Tile"
+ },
+ {
+ "id":416,
+ "type":"Tile"
+ },
+ {
+ "id":417,
+ "type":"Tile"
+ },
+ {
+ "id":418,
+ "type":"Tile"
+ },
+ {
+ "id":419,
+ "type":"Tile"
+ },
+ {
+ "id":420,
+ "type":"Tile"
+ },
+ {
+ "id":421,
+ "type":"Tile"
+ },
+ {
+ "id":422,
+ "type":"Tile"
+ },
+ {
+ "id":423,
+ "type":"Tile"
+ },
+ {
+ "id":424,
+ "type":"Tile"
+ },
+ {
+ "id":425,
+ "type":"Tile"
+ },
+ {
+ "id":426,
+ "type":"Tile"
+ },
+ {
+ "id":427,
+ "type":"Tile"
+ },
+ {
+ "id":428,
+ "type":"Tile"
+ },
+ {
+ "id":429,
+ "type":"Tile"
+ },
+ {
+ "id":430,
+ "type":"Tile"
+ },
+ {
+ "id":431,
+ "type":"Tile"
+ },
+ {
+ "id":432,
+ "type":"Tile"
+ },
+ {
+ "id":433,
+ "type":"Tile"
+ },
+ {
+ "id":434,
+ "type":"Tile"
+ },
+ {
+ "id":435,
+ "type":"Tile"
+ },
+ {
+ "id":436,
+ "type":"Tile"
+ },
+ {
+ "id":437,
+ "type":"Tile"
+ },
+ {
+ "id":438,
+ "type":"Tile"
+ },
+ {
+ "id":439,
+ "type":"Tile"
+ },
+ {
+ "id":440,
+ "type":"Tile"
+ },
+ {
+ "id":441,
+ "type":"Tile"
+ },
+ {
+ "id":442,
+ "type":"Tile"
+ },
+ {
+ "id":443,
+ "type":"Tile"
+ },
+ {
+ "id":444,
+ "type":"Tile"
+ },
+ {
+ "id":445,
+ "type":"Tile"
+ },
+ {
+ "id":446,
+ "type":"Tile"
+ },
+ {
+ "id":447,
+ "type":"Tile"
+ },
+ {
+ "id":448,
+ "type":"Tile"
+ },
+ {
+ "id":449,
+ "type":"Tile"
+ },
+ {
+ "id":450,
+ "type":"Tile"
+ },
+ {
+ "id":451,
+ "type":"Tile"
+ },
+ {
+ "id":452,
+ "type":"Tile"
+ },
+ {
+ "id":453,
+ "type":"Tile"
+ },
+ {
+ "id":454,
+ "type":"Tile"
+ },
+ {
+ "id":455,
+ "type":"Tile"
+ },
+ {
+ "id":456,
+ "type":"Tile"
+ },
+ {
+ "id":457,
+ "type":"Tile"
+ },
+ {
+ "id":458,
+ "type":"Tile"
+ },
+ {
+ "id":459,
+ "type":"Tile"
+ },
+ {
+ "id":460,
+ "type":"Tile"
+ },
+ {
+ "id":461,
+ "type":"Tile"
+ },
+ {
+ "id":462,
+ "type":"Tile"
+ },
+ {
+ "id":463,
+ "type":"Tile"
+ },
+ {
+ "id":464,
+ "type":"Tile"
+ },
+ {
+ "id":465,
+ "type":"Tile"
+ },
+ {
+ "id":466,
+ "type":"Tile"
+ },
+ {
+ "id":467,
+ "type":"Tile"
+ },
+ {
+ "id":468,
+ "type":"Tile"
+ },
+ {
+ "id":469,
+ "type":"Tile"
+ },
+ {
+ "id":470,
+ "type":"Tile"
+ },
+ {
+ "id":471,
+ "type":"Tile"
+ },
+ {
+ "id":472,
+ "type":"Tile"
+ },
+ {
+ "id":473,
+ "type":"Tile"
+ },
+ {
+ "id":474,
+ "type":"Tile"
+ },
+ {
+ "id":475,
+ "type":"Tile"
+ },
+ {
+ "id":476,
+ "type":"Tile"
+ },
+ {
+ "id":477,
+ "type":"Tile"
+ },
+ {
+ "id":478,
+ "type":"Tile"
+ },
+ {
+ "id":479,
+ "type":"Tile"
+ },
+ {
+ "id":480,
+ "type":"Tile"
+ },
+ {
+ "id":481,
+ "type":"Tile"
+ },
+ {
+ "id":482,
+ "type":"Tile"
+ },
+ {
+ "id":483,
+ "type":"Tile"
+ },
+ {
+ "id":484,
+ "type":"Tile"
+ },
+ {
+ "id":485,
+ "type":"Tile"
+ },
+ {
+ "id":486,
+ "type":"Tile"
+ },
+ {
+ "id":487,
+ "type":"Tile"
+ },
+ {
+ "id":488,
+ "type":"Tile"
+ },
+ {
+ "id":489,
+ "type":"Tile"
+ },
+ {
+ "id":490,
+ "type":"Tile"
+ },
+ {
+ "id":491,
+ "type":"Tile"
+ },
+ {
+ "id":492,
+ "type":"Tile"
+ },
+ {
+ "id":493,
+ "type":"Tile"
+ },
+ {
+ "id":494,
+ "type":"Tile"
+ },
+ {
+ "id":495,
+ "type":"Tile"
+ },
+ {
+ "id":496,
+ "type":"Tile"
+ },
+ {
+ "id":497,
+ "type":"Tile"
+ },
+ {
+ "id":498,
+ "type":"Tile"
+ },
+ {
+ "id":499,
+ "type":"Tile"
+ },
+ {
+ "id":500,
+ "type":"Tile"
+ },
+ {
+ "id":501,
+ "type":"Tile"
+ },
+ {
+ "id":502,
+ "type":"Tile"
+ },
+ {
+ "id":503,
+ "type":"Tile"
+ },
+ {
+ "id":504,
+ "type":"Tile"
+ },
+ {
+ "id":505,
+ "type":"Tile"
+ },
+ {
+ "id":506,
+ "type":"Tile"
+ },
+ {
+ "id":507,
+ "type":"Tile"
+ },
+ {
+ "id":508,
+ "type":"Tile"
+ },
+ {
+ "id":509,
+ "type":"Tile"
+ },
+ {
+ "id":510,
+ "type":"Tile"
+ },
+ {
+ "id":511,
+ "type":"Tile"
+ },
+ {
+ "id":512,
+ "type":"Tile"
+ },
+ {
+ "id":513,
+ "type":"Tile"
+ },
+ {
+ "id":514,
+ "type":"Tile"
+ },
+ {
+ "id":515,
+ "type":"Tile"
+ },
+ {
+ "id":516,
+ "type":"Tile"
+ },
+ {
+ "id":517,
+ "type":"Tile"
+ },
+ {
+ "id":518,
+ "type":"Tile"
+ },
+ {
+ "id":519,
+ "type":"Tile"
+ },
+ {
+ "id":520,
+ "type":"Tile"
+ },
+ {
+ "id":521,
+ "type":"Tile"
+ },
+ {
+ "id":522,
+ "type":"Tile"
+ },
+ {
+ "id":523,
+ "type":"Tile"
+ },
+ {
+ "id":524,
+ "type":"Tile"
+ },
+ {
+ "id":525,
+ "type":"Tile"
+ },
+ {
+ "id":526,
+ "type":"Tile"
+ },
+ {
+ "id":527,
+ "type":"Tile"
+ },
+ {
+ "id":528,
+ "type":"Tile"
+ },
+ {
+ "id":529,
+ "type":"Tile"
+ },
+ {
+ "id":530,
+ "type":"Tile"
+ },
+ {
+ "id":531,
+ "type":"Tile"
+ },
+ {
+ "id":532,
+ "type":"Tile"
+ },
+ {
+ "id":533,
+ "type":"Tile"
+ },
+ {
+ "id":534,
+ "type":"Tile"
+ },
+ {
+ "id":535,
+ "type":"Tile"
+ },
+ {
+ "id":536,
+ "type":"Tile"
+ },
+ {
+ "id":537,
+ "type":"Tile"
+ },
+ {
+ "id":538,
+ "type":"Tile"
+ },
+ {
+ "id":539,
+ "type":"Tile"
+ },
+ {
+ "id":540,
+ "type":"Tile"
+ },
+ {
+ "id":541,
+ "type":"Tile"
+ },
+ {
+ "id":542,
+ "type":"Tile"
+ },
+ {
+ "id":543,
+ "type":"Tile"
+ },
+ {
+ "id":544,
+ "type":"Tile"
+ },
+ {
+ "id":545,
+ "type":"Tile"
+ },
+ {
+ "id":546,
+ "type":"Tile"
+ },
+ {
+ "id":547,
+ "type":"Tile"
+ },
+ {
+ "id":548,
+ "type":"Tile"
+ },
+ {
+ "id":549,
+ "type":"Tile"
+ },
+ {
+ "id":550,
+ "type":"Tile"
+ },
+ {
+ "id":551,
+ "type":"Tile"
+ },
+ {
+ "id":552,
+ "type":"Tile"
+ },
+ {
+ "id":553,
+ "type":"Tile"
+ },
+ {
+ "id":554,
+ "type":"Tile"
+ },
+ {
+ "id":555,
+ "type":"Tile"
+ },
+ {
+ "id":556,
+ "type":"Tile"
+ },
+ {
+ "id":557,
+ "type":"Tile"
+ },
+ {
+ "id":558,
+ "type":"Tile"
+ },
+ {
+ "id":559,
+ "type":"Tile"
+ },
+ {
+ "id":560,
+ "type":"Tile"
+ },
+ {
+ "id":561,
+ "type":"Tile"
+ },
+ {
+ "id":562,
+ "type":"Tile"
+ },
+ {
+ "id":563,
+ "type":"Tile"
+ },
+ {
+ "id":564,
+ "type":"Tile"
+ },
+ {
+ "id":565,
+ "type":"Tile"
+ },
+ {
+ "id":566,
+ "type":"Tile"
+ },
+ {
+ "id":567,
+ "type":"Tile"
+ },
+ {
+ "id":568,
+ "type":"Tile"
+ },
+ {
+ "id":569,
+ "type":"Tile"
+ },
+ {
+ "id":570,
+ "type":"Tile"
+ },
+ {
+ "id":571,
+ "type":"Tile"
+ }],
+ "tilewidth":16,
+ "type":"tileset",
+ "version":"1.10",
+ "wangsets":[
+ {
+ "colors":[
+ {
+ "color":"#ff0000",
+ "name":"Sand",
+ "probability":1,
+ "tile":23
+ },
+ {
+ "color":"#00ff00",
+ "name":"SandStone",
+ "probability":0.3,
+ "tile":110
+ }],
+ "name":"\u041f\u0435\u0441\u0447\u0430\u043d\u044b\u0439",
+ "tile":-1,
+ "type":"corner",
+ "wangtiles":[
+ {
+ "tileid":0,
+ "wangid":[0, 2, 0, 1, 0, 2, 0, 2]
+ },
+ {
+ "tileid":1,
+ "wangid":[0, 2, 0, 1, 0, 1, 0, 2]
+ },
+ {
+ "tileid":2,
+ "wangid":[0, 2, 0, 2, 0, 1, 0, 2]
+ },
+ {
+ "tileid":9,
+ "wangid":[0, 2, 0, 1, 0, 2, 0, 1]
+ },
+ {
+ "tileid":22,
+ "wangid":[0, 1, 0, 1, 0, 2, 0, 2]
+ },
+ {
+ "tileid":23,
+ "wangid":[0, 1, 0, 1, 0, 1, 0, 1]
+ },
+ {
+ "tileid":24,
+ "wangid":[0, 2, 0, 2, 0, 1, 0, 1]
+ },
+ {
+ "tileid":27,
+ "wangid":[0, 1, 0, 2, 0, 1, 0, 1]
+ },
+ {
+ "tileid":28,
+ "wangid":[0, 1, 0, 1, 0, 2, 0, 1]
+ },
+ {
+ "tileid":31,
+ "wangid":[0, 1, 0, 2, 0, 1, 0, 2]
+ },
+ {
+ "tileid":44,
+ "wangid":[0, 1, 0, 2, 0, 2, 0, 2]
+ },
+ {
+ "tileid":45,
+ "wangid":[0, 1, 0, 2, 0, 2, 0, 1]
+ },
+ {
+ "tileid":46,
+ "wangid":[0, 2, 0, 2, 0, 2, 0, 1]
+ },
+ {
+ "tileid":49,
+ "wangid":[0, 2, 0, 1, 0, 1, 0, 1]
+ },
+ {
+ "tileid":50,
+ "wangid":[0, 1, 0, 1, 0, 1, 0, 2]
+ },
+ {
+ "tileid":88,
+ "wangid":[0, 1, 0, 1, 0, 1, 0, 1]
+ },
+ {
+ "tileid":89,
+ "wangid":[0, 1, 0, 1, 0, 1, 0, 1]
+ },
+ {
+ "tileid":110,
+ "wangid":[0, 2, 0, 2, 0, 2, 0, 2]
+ },
+ {
+ "tileid":111,
+ "wangid":[0, 2, 0, 2, 0, 2, 0, 2]
+ },
+ {
+ "tileid":112,
+ "wangid":[0, 2, 0, 2, 0, 2, 0, 2]
+ },
+ {
+ "tileid":113,
+ "wangid":[0, 2, 0, 2, 0, 2, 0, 2]
+ },
+ {
+ "tileid":114,
+ "wangid":[0, 2, 0, 2, 0, 2, 0, 2]
+ }]
+ }]
+}
\ No newline at end of file
diff --git a/ZoFo/Content/MapData/TileSets/TilesetNature.tsj b/ZoFo/Content/MapData/TileSets/TilesetNature.tsj
new file mode 100644
index 0000000..28b7c1d
--- /dev/null
+++ b/ZoFo/Content/MapData/TileSets/TilesetNature.tsj
@@ -0,0 +1,2537 @@
+{ "columns":24,
+ "image":"..\/..\/Textures\/TileSetImages\/TilesetNature.png",
+ "imageheight":336,
+ "imagewidth":384,
+ "margin":0,
+ "name":"TilesetNature",
+ "spacing":0,
+ "tilecount":504,
+ "tiledversion":"1.10.2",
+ "tileheight":16,
+ "tiles":[
+ {
+ "id":0,
+ "type":"StopObject"
+ },
+ {
+ "id":1,
+ "type":"StopObject"
+ },
+ {
+ "id":2,
+ "type":"StopObject"
+ },
+ {
+ "id":3,
+ "type":"StopObject"
+ },
+ {
+ "id":4,
+ "type":"StopObject"
+ },
+ {
+ "id":5,
+ "type":"StopObject"
+ },
+ {
+ "id":6,
+ "type":"StopObject"
+ },
+ {
+ "id":7,
+ "type":"StopObject"
+ },
+ {
+ "id":8,
+ "type":"StopObject"
+ },
+ {
+ "id":9,
+ "type":"StopObject"
+ },
+ {
+ "id":10,
+ "type":"StopObject"
+ },
+ {
+ "id":11,
+ "type":"StopObject"
+ },
+ {
+ "id":12,
+ "type":"StopObject"
+ },
+ {
+ "id":13,
+ "type":"StopObject"
+ },
+ {
+ "id":14,
+ "type":"StopObject"
+ },
+ {
+ "id":15,
+ "type":"StopObject"
+ },
+ {
+ "id":16,
+ "type":"StopObject"
+ },
+ {
+ "id":17,
+ "type":"StopObject"
+ },
+ {
+ "id":18,
+ "type":"StopObject"
+ },
+ {
+ "id":19,
+ "type":"StopObject"
+ },
+ {
+ "id":20,
+ "type":"StopObject"
+ },
+ {
+ "id":21,
+ "type":"StopObject"
+ },
+ {
+ "id":22,
+ "type":"StopObject"
+ },
+ {
+ "id":23,
+ "type":"StopObject"
+ },
+ {
+ "id":24,
+ "type":"StopObject"
+ },
+ {
+ "id":25,
+ "type":"StopObject"
+ },
+ {
+ "id":26,
+ "type":"StopObject"
+ },
+ {
+ "id":27,
+ "type":"StopObject"
+ },
+ {
+ "id":28,
+ "type":"StopObject"
+ },
+ {
+ "id":29,
+ "type":"StopObject"
+ },
+ {
+ "id":30,
+ "type":"StopObject"
+ },
+ {
+ "id":31,
+ "type":"StopObject"
+ },
+ {
+ "id":32,
+ "type":"StopObject"
+ },
+ {
+ "id":33,
+ "type":"StopObject"
+ },
+ {
+ "id":34,
+ "type":"StopObject"
+ },
+ {
+ "id":35,
+ "type":"StopObject"
+ },
+ {
+ "id":36,
+ "type":"StopObject"
+ },
+ {
+ "id":37,
+ "type":"StopObject"
+ },
+ {
+ "id":38,
+ "type":"StopObject"
+ },
+ {
+ "id":39,
+ "type":"StopObject"
+ },
+ {
+ "id":40,
+ "type":"StopObject"
+ },
+ {
+ "id":41,
+ "type":"StopObject"
+ },
+ {
+ "id":42,
+ "type":"StopObject"
+ },
+ {
+ "id":43,
+ "type":"StopObject"
+ },
+ {
+ "id":44,
+ "type":"StopObject"
+ },
+ {
+ "id":45,
+ "type":"StopObject"
+ },
+ {
+ "id":46,
+ "type":"StopObject"
+ },
+ {
+ "id":47,
+ "type":"StopObject"
+ },
+ {
+ "id":48,
+ "type":"StopObject"
+ },
+ {
+ "id":49,
+ "type":"StopObject"
+ },
+ {
+ "id":50,
+ "type":"StopObject"
+ },
+ {
+ "id":51,
+ "type":"StopObject"
+ },
+ {
+ "id":52,
+ "type":"StopObject"
+ },
+ {
+ "id":53,
+ "type":"StopObject"
+ },
+ {
+ "id":54,
+ "type":"StopObject"
+ },
+ {
+ "id":55,
+ "type":"StopObject"
+ },
+ {
+ "id":56,
+ "type":"StopObject"
+ },
+ {
+ "id":57,
+ "type":"StopObject"
+ },
+ {
+ "id":58,
+ "type":"StopObject"
+ },
+ {
+ "id":59,
+ "type":"StopObject"
+ },
+ {
+ "id":60,
+ "type":"StopObject"
+ },
+ {
+ "id":61,
+ "type":"StopObject"
+ },
+ {
+ "id":62,
+ "type":"StopObject"
+ },
+ {
+ "id":63,
+ "type":"StopObject"
+ },
+ {
+ "id":64,
+ "type":"StopObject"
+ },
+ {
+ "id":65,
+ "type":"StopObject"
+ },
+ {
+ "id":66,
+ "type":"StopObject"
+ },
+ {
+ "id":67,
+ "type":"StopObject"
+ },
+ {
+ "id":68,
+ "type":"StopObject"
+ },
+ {
+ "id":69,
+ "type":"StopObject"
+ },
+ {
+ "id":70,
+ "type":"StopObject"
+ },
+ {
+ "id":71,
+ "type":"StopObject"
+ },
+ {
+ "id":72,
+ "type":"StopObject"
+ },
+ {
+ "id":73,
+ "type":"StopObject"
+ },
+ {
+ "id":74,
+ "type":"StopObject"
+ },
+ {
+ "id":75,
+ "type":"StopObject"
+ },
+ {
+ "id":76,
+ "type":"StopObject"
+ },
+ {
+ "id":77,
+ "type":"StopObject"
+ },
+ {
+ "id":78,
+ "type":"StopObject"
+ },
+ {
+ "id":79,
+ "type":"StopObject"
+ },
+ {
+ "id":80,
+ "type":"StopObject"
+ },
+ {
+ "id":81,
+ "type":"StopObject"
+ },
+ {
+ "id":82,
+ "type":"StopObject"
+ },
+ {
+ "id":83,
+ "type":"StopObject"
+ },
+ {
+ "id":84,
+ "type":"StopObject"
+ },
+ {
+ "id":85,
+ "type":"StopObject"
+ },
+ {
+ "id":86,
+ "type":"StopObject"
+ },
+ {
+ "id":87,
+ "type":"StopObject"
+ },
+ {
+ "id":88,
+ "type":"StopObject"
+ },
+ {
+ "id":89,
+ "type":"StopObject"
+ },
+ {
+ "id":90,
+ "type":"StopObject"
+ },
+ {
+ "id":91,
+ "type":"StopObject"
+ },
+ {
+ "id":92,
+ "type":"StopObject"
+ },
+ {
+ "id":93,
+ "type":"StopObject"
+ },
+ {
+ "id":94,
+ "type":"StopObject"
+ },
+ {
+ "id":95,
+ "type":"StopObject"
+ },
+ {
+ "id":96,
+ "type":"StopObject"
+ },
+ {
+ "id":97,
+ "type":"StopObject"
+ },
+ {
+ "id":98,
+ "type":"StopObject"
+ },
+ {
+ "id":99,
+ "type":"StopObject"
+ },
+ {
+ "id":100,
+ "type":"StopObject"
+ },
+ {
+ "id":101,
+ "type":"StopObject"
+ },
+ {
+ "id":102,
+ "type":"StopObject"
+ },
+ {
+ "id":103,
+ "type":"StopObject"
+ },
+ {
+ "id":104,
+ "type":"StopObject"
+ },
+ {
+ "id":105,
+ "type":"StopObject"
+ },
+ {
+ "id":106,
+ "type":"StopObject"
+ },
+ {
+ "id":107,
+ "type":"StopObject"
+ },
+ {
+ "id":108,
+ "type":"StopObject"
+ },
+ {
+ "id":109,
+ "type":"StopObject"
+ },
+ {
+ "id":110,
+ "type":"StopObject"
+ },
+ {
+ "id":111,
+ "type":"StopObject"
+ },
+ {
+ "id":112,
+ "type":"StopObject"
+ },
+ {
+ "id":113,
+ "type":"StopObject"
+ },
+ {
+ "id":114,
+ "type":"StopObject"
+ },
+ {
+ "id":115,
+ "type":"StopObject"
+ },
+ {
+ "id":116,
+ "type":"StopObject"
+ },
+ {
+ "id":117,
+ "type":"StopObject"
+ },
+ {
+ "id":118,
+ "type":"StopObject"
+ },
+ {
+ "id":119,
+ "type":"StopObject"
+ },
+ {
+ "id":120,
+ "type":"StopObject"
+ },
+ {
+ "id":121,
+ "type":"StopObject"
+ },
+ {
+ "id":122,
+ "type":"StopObject"
+ },
+ {
+ "id":123,
+ "type":"StopObject"
+ },
+ {
+ "id":124,
+ "type":"StopObject"
+ },
+ {
+ "id":125,
+ "type":"StopObject"
+ },
+ {
+ "id":126,
+ "type":"StopObject"
+ },
+ {
+ "id":127,
+ "type":"StopObject"
+ },
+ {
+ "id":128,
+ "type":"StopObject"
+ },
+ {
+ "id":129,
+ "type":"StopObject"
+ },
+ {
+ "id":130,
+ "type":"StopObject"
+ },
+ {
+ "id":131,
+ "type":"StopObject"
+ },
+ {
+ "id":132,
+ "type":"StopObject"
+ },
+ {
+ "id":133,
+ "type":"StopObject"
+ },
+ {
+ "id":134,
+ "type":"StopObject"
+ },
+ {
+ "id":135,
+ "type":"StopObject"
+ },
+ {
+ "id":136,
+ "type":"StopObject"
+ },
+ {
+ "id":137,
+ "type":"StopObject"
+ },
+ {
+ "id":138,
+ "type":"StopObject"
+ },
+ {
+ "id":139,
+ "type":"StopObject"
+ },
+ {
+ "id":140,
+ "type":"StopObject"
+ },
+ {
+ "id":141,
+ "type":"StopObject"
+ },
+ {
+ "id":142,
+ "type":"StopObject"
+ },
+ {
+ "id":143,
+ "type":"StopObject"
+ },
+ {
+ "id":144,
+ "type":"StopObject"
+ },
+ {
+ "id":145,
+ "type":"StopObject"
+ },
+ {
+ "id":146,
+ "type":"StopObject"
+ },
+ {
+ "id":147,
+ "type":"StopObject"
+ },
+ {
+ "id":148,
+ "type":"StopObject"
+ },
+ {
+ "id":149,
+ "type":"StopObject"
+ },
+ {
+ "id":150,
+ "type":"StopObject"
+ },
+ {
+ "id":151,
+ "type":"StopObject"
+ },
+ {
+ "id":152,
+ "type":"StopObject"
+ },
+ {
+ "id":153,
+ "type":"StopObject"
+ },
+ {
+ "id":154,
+ "type":"StopObject"
+ },
+ {
+ "id":155,
+ "type":"StopObject"
+ },
+ {
+ "id":156,
+ "type":"StopObject"
+ },
+ {
+ "id":157,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ "type":"StopObject"
+ },
+ {
+ "id":158,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ "type":"StopObject"
+ },
+ {
+ "id":159,
+ "type":"StopObject"
+ },
+ {
+ "id":160,
+ "type":"StopObject"
+ },
+ {
+ "id":161,
+ "type":"StopObject"
+ },
+ {
+ "id":162,
+ "type":"StopObject"
+ },
+ {
+ "id":163,
+ "type":"StopObject"
+ },
+ {
+ "id":164,
+ "type":"StopObject"
+ },
+ {
+ "id":165,
+ "type":"StopObject"
+ },
+ {
+ "id":166,
+ "type":"StopObject"
+ },
+ {
+ "id":167,
+ "type":"StopObject"
+ },
+ {
+ "id":168,
+ "type":"StopObject"
+ },
+ {
+ "id":169,
+ "type":"StopObject"
+ },
+ {
+ "id":170,
+ "type":"StopObject"
+ },
+ {
+ "id":171,
+ "type":"StopObject"
+ },
+ {
+ "id":172,
+ "type":"StopObject"
+ },
+ {
+ "id":173,
+ "type":"StopObject"
+ },
+ {
+ "id":174,
+ "type":"StopObject"
+ },
+ {
+ "id":175,
+ "type":"StopObject"
+ },
+ {
+ "id":176,
+ "type":"StopObject"
+ },
+ {
+ "id":177,
+ "type":"StopObject"
+ },
+ {
+ "id":178,
+ "type":"StopObject"
+ },
+ {
+ "id":179,
+ "type":"StopObject"
+ },
+ {
+ "id":180,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ "type":"StopObject"
+ },
+ {
+ "id":181,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ "type":"StopObject"
+ },
+ {
+ "id":182,
+ "type":"StopObject"
+ },
+ {
+ "id":183,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ "type":"StopObject"
+ },
+ {
+ "id":184,
+ "type":"StopObject"
+ },
+ {
+ "id":185,
+ "type":"StopObject"
+ },
+ {
+ "id":186,
+ "type":"StopObject"
+ },
+ {
+ "id":187,
+ "type":"StopObject"
+ },
+ {
+ "id":188,
+ "type":"StopObject"
+ },
+ {
+ "id":189,
+ "type":"StopObject"
+ },
+ {
+ "id":190,
+ "type":"StopObject"
+ },
+ {
+ "id":191,
+ "type":"StopObject"
+ },
+ {
+ "id":192,
+ "type":"StopObject"
+ },
+ {
+ "id":193,
+ "type":"StopObject"
+ },
+ {
+ "id":194,
+ "type":"StopObject"
+ },
+ {
+ "id":195,
+ "type":"StopObject"
+ },
+ {
+ "id":196,
+ "type":"StopObject"
+ },
+ {
+ "id":197,
+ "type":"StopObject"
+ },
+ {
+ "id":198,
+ "type":"StopObject"
+ },
+ {
+ "id":199,
+ "type":"StopObject"
+ },
+ {
+ "id":200,
+ "type":"StopObject"
+ },
+ {
+ "id":201,
+ "type":"StopObject"
+ },
+ {
+ "id":202,
+ "type":"StopObject"
+ },
+ {
+ "id":203,
+ "type":"StopObject"
+ },
+ {
+ "id":204,
+ "type":"StopObject"
+ },
+ {
+ "id":205,
+ "type":"StopObject"
+ },
+ {
+ "id":206,
+ "type":"StopObject"
+ },
+ {
+ "id":207,
+ "type":"StopObject"
+ },
+ {
+ "id":208,
+ "type":"StopObject"
+ },
+ {
+ "id":209,
+ "type":"StopObject"
+ },
+ {
+ "id":210,
+ "type":"StopObject"
+ },
+ {
+ "id":211,
+ "type":"StopObject"
+ },
+ {
+ "id":212,
+ "type":"StopObject"
+ },
+ {
+ "id":213,
+ "type":"StopObject"
+ },
+ {
+ "id":214,
+ "type":"StopObject"
+ },
+ {
+ "id":215,
+ "type":"StopObject"
+ },
+ {
+ "id":216,
+ "type":"StopObject"
+ },
+ {
+ "id":217,
+ "type":"StopObject"
+ },
+ {
+ "id":218,
+ "type":"StopObject"
+ },
+ {
+ "id":219,
+ "type":"StopObject"
+ },
+ {
+ "id":220,
+ "type":"StopObject"
+ },
+ {
+ "id":221,
+ "type":"StopObject"
+ },
+ {
+ "id":222,
+ "type":"StopObject"
+ },
+ {
+ "id":223,
+ "type":"StopObject"
+ },
+ {
+ "id":224,
+ "type":"StopObject"
+ },
+ {
+ "id":225,
+ "type":"StopObject"
+ },
+ {
+ "id":226,
+ "type":"StopObject"
+ },
+ {
+ "id":227,
+ "type":"StopObject"
+ },
+ {
+ "id":228,
+ "type":"StopObject"
+ },
+ {
+ "id":229,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ "type":"StopObject"
+ },
+ {
+ "id":230,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ "type":"StopObject"
+ },
+ {
+ "id":231,
+ "type":"StopObject"
+ },
+ {
+ "id":232,
+ "type":"StopObject"
+ },
+ {
+ "id":233,
+ "type":"StopObject"
+ },
+ {
+ "id":234,
+ "type":"StopObject"
+ },
+ {
+ "id":235,
+ "type":"StopObject"
+ },
+ {
+ "id":236,
+ "type":"StopObject"
+ },
+ {
+ "id":237,
+ "type":"StopObject"
+ },
+ {
+ "id":238,
+ "type":"StopObject"
+ },
+ {
+ "id":239,
+ "type":"StopObject"
+ },
+ {
+ "id":240,
+ "type":"StopObject"
+ },
+ {
+ "id":241,
+ "type":"StopObject"
+ },
+ {
+ "id":242,
+ "type":"StopObject"
+ },
+ {
+ "id":243,
+ "type":"StopObject"
+ },
+ {
+ "id":244,
+ "type":"StopObject"
+ },
+ {
+ "id":245,
+ "type":"StopObject"
+ },
+ {
+ "id":246,
+ "type":"StopObject"
+ },
+ {
+ "id":247,
+ "type":"StopObject"
+ },
+ {
+ "id":248,
+ "type":"StopObject"
+ },
+ {
+ "id":249,
+ "type":"StopObject"
+ },
+ {
+ "id":250,
+ "type":"StopObject"
+ },
+ {
+ "id":251,
+ "type":"StopObject"
+ },
+ {
+ "id":252,
+ "type":"StopObject"
+ },
+ {
+ "id":253,
+ "type":"StopObject"
+ },
+ {
+ "id":254,
+ "type":"StopObject"
+ },
+ {
+ "id":255,
+ "type":"StopObject"
+ },
+ {
+ "id":256,
+ "type":"StopObject"
+ },
+ {
+ "id":257,
+ "type":"StopObject"
+ },
+ {
+ "id":258,
+ "type":"StopObject"
+ },
+ {
+ "id":259,
+ "type":"StopObject"
+ },
+ {
+ "id":260,
+ "type":"StopObject"
+ },
+ {
+ "id":261,
+ "type":"StopObject"
+ },
+ {
+ "id":262,
+ "type":"StopObject"
+ },
+ {
+ "id":263,
+ "type":"StopObject"
+ },
+ {
+ "id":264,
+ "type":"StopObject"
+ },
+ {
+ "id":265,
+ "type":"StopObject"
+ },
+ {
+ "id":266,
+ "type":"StopObject"
+ },
+ {
+ "id":267,
+ "type":"StopObject"
+ },
+ {
+ "id":268,
+ "type":"StopObject"
+ },
+ {
+ "id":269,
+ "type":"StopObject"
+ },
+ {
+ "id":270,
+ "type":"StopObject"
+ },
+ {
+ "id":271,
+ "type":"StopObject"
+ },
+ {
+ "id":272,
+ "type":"StopObject"
+ },
+ {
+ "id":273,
+ "type":"StopObject"
+ },
+ {
+ "id":274,
+ "type":"StopObject"
+ },
+ {
+ "id":275,
+ "type":"StopObject"
+ },
+ {
+ "id":276,
+ "type":"StopObject"
+ },
+ {
+ "id":277,
+ "type":"StopObject"
+ },
+ {
+ "id":278,
+ "type":"StopObject"
+ },
+ {
+ "id":279,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ "type":"StopObject"
+ },
+ {
+ "id":280,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ "type":"StopObject"
+ },
+ {
+ "id":281,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ "type":"StopObject"
+ },
+ {
+ "id":282,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ "type":"StopObject"
+ },
+ {
+ "id":283,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":9.25,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":15.75,
+ "x":0,
+ "y":6.75
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ "type":"StopObject"
+ },
+ {
+ "id":284,
+ "type":"StopObject"
+ },
+ {
+ "id":285,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ "type":"StopObject"
+ },
+ {
+ "id":286,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ "type":"StopObject"
+ },
+ {
+ "id":287,
+ "type":"StopObject"
+ },
+ {
+ "id":288,
+ "type":"StopObject"
+ },
+ {
+ "id":289,
+ "type":"StopObject"
+ },
+ {
+ "id":290,
+ "type":"StopObject"
+ },
+ {
+ "id":291,
+ "type":"StopObject"
+ },
+ {
+ "id":292,
+ "type":"StopObject"
+ },
+ {
+ "id":293,
+ "type":"StopObject"
+ },
+ {
+ "id":294,
+ "type":"StopObject"
+ },
+ {
+ "id":295,
+ "type":"StopObject"
+ },
+ {
+ "id":296,
+ "type":"StopObject"
+ },
+ {
+ "id":297,
+ "type":"StopObject"
+ },
+ {
+ "id":298,
+ "type":"StopObject"
+ },
+ {
+ "id":299,
+ "type":"StopObject"
+ },
+ {
+ "id":300,
+ "type":"StopObject"
+ },
+ {
+ "id":301,
+ "type":"StopObject"
+ },
+ {
+ "id":302,
+ "type":"StopObject"
+ },
+ {
+ "id":303,
+ "type":"StopObject"
+ },
+ {
+ "id":304,
+ "type":"StopObject"
+ },
+ {
+ "id":305,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ "type":"StopObject"
+ },
+ {
+ "id":306,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ "type":"StopObject"
+ },
+ {
+ "id":307,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ "type":"StopObject"
+ },
+ {
+ "id":308,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ "type":"StopObject"
+ },
+ {
+ "id":309,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ "type":"StopObject"
+ },
+ {
+ "id":310,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ "type":"StopObject"
+ },
+ {
+ "id":311,
+ "type":"StopObject"
+ },
+ {
+ "id":312,
+ "type":"StopObject"
+ },
+ {
+ "id":313,
+ "type":"StopObject"
+ },
+ {
+ "id":314,
+ "type":"StopObject"
+ },
+ {
+ "id":315,
+ "type":"StopObject"
+ },
+ {
+ "id":316,
+ "type":"StopObject"
+ },
+ {
+ "id":317,
+ "type":"StopObject"
+ },
+ {
+ "id":318,
+ "type":"StopObject"
+ },
+ {
+ "id":319,
+ "type":"StopObject"
+ },
+ {
+ "id":320,
+ "type":"StopObject"
+ },
+ {
+ "id":321,
+ "type":"StopObject"
+ },
+ {
+ "id":322,
+ "type":"StopObject"
+ },
+ {
+ "id":323,
+ "type":"StopObject"
+ },
+ {
+ "id":324,
+ "type":"StopObject"
+ },
+ {
+ "id":325,
+ "type":"StopObject"
+ },
+ {
+ "id":326,
+ "type":"StopObject"
+ },
+ {
+ "id":327,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ "type":"StopObject"
+ },
+ {
+ "id":328,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ "type":"StopObject"
+ },
+ {
+ "id":329,
+ "type":"StopObject"
+ },
+ {
+ "id":330,
+ "type":"StopObject"
+ },
+ {
+ "id":331,
+ "type":"StopObject"
+ },
+ {
+ "id":332,
+ "type":"StopObject"
+ },
+ {
+ "id":333,
+ "type":"StopObject"
+ },
+ {
+ "id":334,
+ "type":"StopObject"
+ },
+ {
+ "id":335,
+ "type":"StopObject"
+ },
+ {
+ "id":336,
+ "type":"StopObject"
+ },
+ {
+ "id":337,
+ "type":"StopObject"
+ },
+ {
+ "id":338,
+ "type":"StopObject"
+ },
+ {
+ "id":339,
+ "type":"StopObject"
+ },
+ {
+ "id":340,
+ "type":"StopObject"
+ },
+ {
+ "id":341,
+ "type":"StopObject"
+ },
+ {
+ "id":342,
+ "type":"StopObject"
+ },
+ {
+ "id":343,
+ "type":"StopObject"
+ },
+ {
+ "id":344,
+ "type":"StopObject"
+ },
+ {
+ "id":345,
+ "type":"StopObject"
+ },
+ {
+ "id":346,
+ "type":"StopObject"
+ },
+ {
+ "id":347,
+ "type":"StopObject"
+ },
+ {
+ "id":348,
+ "type":"StopObject"
+ },
+ {
+ "id":349,
+ "type":"StopObject"
+ },
+ {
+ "id":350,
+ "type":"StopObject"
+ },
+ {
+ "id":351,
+ "type":"StopObject"
+ },
+ {
+ "id":352,
+ "type":"StopObject"
+ },
+ {
+ "id":353,
+ "type":"StopObject"
+ },
+ {
+ "id":354,
+ "type":"StopObject"
+ },
+ {
+ "id":355,
+ "type":"StopObject"
+ },
+ {
+ "id":356,
+ "type":"StopObject"
+ },
+ {
+ "id":357,
+ "type":"StopObject"
+ },
+ {
+ "id":358,
+ "type":"StopObject"
+ },
+ {
+ "id":359,
+ "type":"StopObject"
+ },
+ {
+ "id":360,
+ "type":"StopObject"
+ },
+ {
+ "id":361,
+ "type":"StopObject"
+ },
+ {
+ "id":362,
+ "type":"StopObject"
+ },
+ {
+ "id":363,
+ "type":"StopObject"
+ },
+ {
+ "id":364,
+ "type":"StopObject"
+ },
+ {
+ "id":365,
+ "type":"StopObject"
+ },
+ {
+ "id":366,
+ "type":"StopObject"
+ },
+ {
+ "id":367,
+ "type":"StopObject"
+ },
+ {
+ "id":368,
+ "type":"StopObject"
+ },
+ {
+ "id":369,
+ "type":"StopObject"
+ },
+ {
+ "id":370,
+ "type":"StopObject"
+ },
+ {
+ "id":371,
+ "type":"StopObject"
+ },
+ {
+ "id":372,
+ "type":"StopObject"
+ },
+ {
+ "id":373,
+ "type":"StopObject"
+ },
+ {
+ "id":374,
+ "type":"StopObject"
+ },
+ {
+ "id":375,
+ "type":"StopObject"
+ },
+ {
+ "id":376,
+ "type":"StopObject"
+ },
+ {
+ "id":377,
+ "type":"StopObject"
+ },
+ {
+ "id":378,
+ "type":"StopObject"
+ },
+ {
+ "id":379,
+ "type":"StopObject"
+ },
+ {
+ "id":380,
+ "type":"StopObject"
+ },
+ {
+ "id":381,
+ "type":"StopObject"
+ },
+ {
+ "id":382,
+ "type":"StopObject"
+ },
+ {
+ "id":383,
+ "type":"StopObject"
+ },
+ {
+ "id":384,
+ "type":"StopObject"
+ },
+ {
+ "id":385,
+ "type":"StopObject"
+ },
+ {
+ "id":386,
+ "type":"StopObject"
+ },
+ {
+ "id":387,
+ "type":"StopObject"
+ },
+ {
+ "id":388,
+ "type":"StopObject"
+ },
+ {
+ "id":389,
+ "type":"StopObject"
+ },
+ {
+ "id":390,
+ "type":"StopObject"
+ },
+ {
+ "id":391,
+ "type":"StopObject"
+ },
+ {
+ "id":392,
+ "type":"StopObject"
+ },
+ {
+ "id":393,
+ "type":"StopObject"
+ },
+ {
+ "id":394,
+ "type":"StopObject"
+ },
+ {
+ "id":395,
+ "type":"StopObject"
+ },
+ {
+ "id":396,
+ "type":"StopObject"
+ },
+ {
+ "id":397,
+ "type":"StopObject"
+ },
+ {
+ "id":398,
+ "type":"StopObject"
+ },
+ {
+ "id":399,
+ "type":"StopObject"
+ },
+ {
+ "id":400,
+ "type":"StopObject"
+ },
+ {
+ "id":401,
+ "type":"StopObject"
+ },
+ {
+ "id":402,
+ "type":"StopObject"
+ },
+ {
+ "id":403,
+ "type":"StopObject"
+ },
+ {
+ "id":404,
+ "type":"StopObject"
+ },
+ {
+ "id":405,
+ "type":"StopObject"
+ },
+ {
+ "id":406,
+ "type":"StopObject"
+ },
+ {
+ "id":407,
+ "type":"StopObject"
+ },
+ {
+ "id":408,
+ "type":"StopObject"
+ },
+ {
+ "id":409,
+ "type":"StopObject"
+ },
+ {
+ "id":410,
+ "type":"StopObject"
+ },
+ {
+ "id":411,
+ "type":"StopObject"
+ },
+ {
+ "id":412,
+ "type":"StopObject"
+ },
+ {
+ "id":413,
+ "type":"StopObject"
+ },
+ {
+ "id":414,
+ "type":"StopObject"
+ },
+ {
+ "id":415,
+ "type":"StopObject"
+ },
+ {
+ "id":416,
+ "type":"StopObject"
+ },
+ {
+ "id":417,
+ "type":"StopObject"
+ },
+ {
+ "id":418,
+ "type":"StopObject"
+ },
+ {
+ "id":419,
+ "type":"StopObject"
+ },
+ {
+ "id":420,
+ "type":"StopObject"
+ },
+ {
+ "id":421,
+ "type":"StopObject"
+ },
+ {
+ "id":422,
+ "type":"StopObject"
+ },
+ {
+ "id":423,
+ "type":"StopObject"
+ },
+ {
+ "id":424,
+ "type":"StopObject"
+ },
+ {
+ "id":425,
+ "type":"StopObject"
+ },
+ {
+ "id":426,
+ "type":"StopObject"
+ },
+ {
+ "id":427,
+ "type":"StopObject"
+ },
+ {
+ "id":428,
+ "type":"StopObject"
+ },
+ {
+ "id":429,
+ "type":"StopObject"
+ },
+ {
+ "id":430,
+ "type":"StopObject"
+ },
+ {
+ "id":431,
+ "type":"StopObject"
+ },
+ {
+ "id":432,
+ "type":"StopObject"
+ },
+ {
+ "id":433,
+ "type":"StopObject"
+ },
+ {
+ "id":434,
+ "type":"StopObject"
+ },
+ {
+ "id":435,
+ "type":"StopObject"
+ },
+ {
+ "id":436,
+ "type":"StopObject"
+ },
+ {
+ "id":437,
+ "type":"StopObject"
+ },
+ {
+ "id":438,
+ "type":"StopObject"
+ },
+ {
+ "id":439,
+ "type":"StopObject"
+ },
+ {
+ "id":440,
+ "type":"StopObject"
+ },
+ {
+ "id":441,
+ "type":"StopObject"
+ },
+ {
+ "id":442,
+ "type":"StopObject"
+ },
+ {
+ "id":443,
+ "type":"StopObject"
+ },
+ {
+ "id":444,
+ "type":"StopObject"
+ },
+ {
+ "id":445,
+ "type":"StopObject"
+ },
+ {
+ "id":446,
+ "type":"StopObject"
+ },
+ {
+ "id":447,
+ "type":"StopObject"
+ },
+ {
+ "id":448,
+ "type":"StopObject"
+ },
+ {
+ "id":449,
+ "type":"StopObject"
+ },
+ {
+ "id":450,
+ "type":"StopObject"
+ },
+ {
+ "id":451,
+ "type":"StopObject"
+ },
+ {
+ "id":452,
+ "type":"StopObject"
+ },
+ {
+ "id":453,
+ "type":"StopObject"
+ },
+ {
+ "id":454,
+ "type":"StopObject"
+ },
+ {
+ "id":455,
+ "type":"StopObject"
+ },
+ {
+ "id":456,
+ "type":"StopObject"
+ },
+ {
+ "id":457,
+ "type":"StopObject"
+ },
+ {
+ "id":458,
+ "type":"StopObject"
+ },
+ {
+ "id":459,
+ "type":"StopObject"
+ },
+ {
+ "id":460,
+ "type":"StopObject"
+ },
+ {
+ "id":461,
+ "type":"StopObject"
+ },
+ {
+ "id":462,
+ "type":"StopObject"
+ },
+ {
+ "id":463,
+ "type":"StopObject"
+ },
+ {
+ "id":464,
+ "type":"StopObject"
+ },
+ {
+ "id":465,
+ "type":"StopObject"
+ },
+ {
+ "id":466,
+ "type":"StopObject"
+ },
+ {
+ "id":467,
+ "type":"StopObject"
+ },
+ {
+ "id":468,
+ "type":"StopObject"
+ },
+ {
+ "id":469,
+ "type":"StopObject"
+ },
+ {
+ "id":470,
+ "type":"StopObject"
+ },
+ {
+ "id":471,
+ "type":"StopObject"
+ },
+ {
+ "id":472,
+ "type":"StopObject"
+ },
+ {
+ "id":473,
+ "type":"StopObject"
+ },
+ {
+ "id":474,
+ "type":"StopObject"
+ },
+ {
+ "id":475,
+ "type":"StopObject"
+ },
+ {
+ "id":476,
+ "type":"StopObject"
+ },
+ {
+ "id":477,
+ "type":"StopObject"
+ },
+ {
+ "id":478,
+ "type":"StopObject"
+ },
+ {
+ "id":479,
+ "type":"StopObject"
+ },
+ {
+ "id":480,
+ "type":"StopObject"
+ },
+ {
+ "id":481,
+ "type":"StopObject"
+ },
+ {
+ "id":482,
+ "type":"StopObject"
+ },
+ {
+ "id":483,
+ "type":"StopObject"
+ },
+ {
+ "id":484,
+ "type":"StopObject"
+ },
+ {
+ "id":485,
+ "type":"StopObject"
+ },
+ {
+ "id":486,
+ "type":"StopObject"
+ },
+ {
+ "id":487,
+ "type":"StopObject"
+ },
+ {
+ "id":488,
+ "type":"StopObject"
+ },
+ {
+ "id":489,
+ "type":"StopObject"
+ },
+ {
+ "id":490,
+ "type":"StopObject"
+ },
+ {
+ "id":491,
+ "type":"StopObject"
+ },
+ {
+ "id":492,
+ "type":"StopObject"
+ },
+ {
+ "id":493,
+ "type":"StopObject"
+ },
+ {
+ "id":494,
+ "type":"StopObject"
+ },
+ {
+ "id":495,
+ "type":"StopObject"
+ },
+ {
+ "id":496,
+ "type":"StopObject"
+ },
+ {
+ "id":497,
+ "type":"StopObject"
+ },
+ {
+ "id":498,
+ "type":"StopObject"
+ },
+ {
+ "id":499,
+ "type":"StopObject"
+ },
+ {
+ "id":500,
+ "type":"StopObject"
+ },
+ {
+ "id":501,
+ "type":"StopObject"
+ },
+ {
+ "id":502,
+ "type":"StopObject"
+ },
+ {
+ "id":503,
+ "type":"StopObject"
+ }],
+ "tilewidth":16,
+ "type":"tileset",
+ "version":"1.10"
+}
\ No newline at end of file
diff --git a/ZoFo/Content/MapData/TileSets/tileset 1 collision.tsj b/ZoFo/Content/MapData/TileSets/tileset 1 collision.tsj
new file mode 100644
index 0000000..f13aafa
--- /dev/null
+++ b/ZoFo/Content/MapData/TileSets/tileset 1 collision.tsj
@@ -0,0 +1,1658 @@
+{ "columns":20,
+ "image":"..\/..\/Textures\/TileSetImages\/TilesetVillageAbandoned.png",
+ "imageheight":192,
+ "imagewidth":320,
+ "margin":0,
+ "name":"tileset 1 collision",
+ "spacing":0,
+ "tilecount":240,
+ "tiledversion":"1.10.2",
+ "tileheight":16,
+ "tiles":[
+ {
+ "id":0,
+ "probability":0.100000001490116,
+ "type":"StopObject"
+ },
+ {
+ "id":1,
+ "probability":0.100000001490116,
+ "type":"StopObject"
+ },
+ {
+ "id":2,
+ "probability":0.100000001490116,
+ "type":"StopObject"
+ },
+ {
+ "id":3,
+ "probability":0.100000001490116,
+ "type":"StopObject"
+ },
+ {
+ "id":4,
+ "probability":0.100000001490116,
+ "type":"StopObject"
+ },
+ {
+ "id":5,
+ "probability":0.100000001490116,
+ "type":"StopObject"
+ },
+ {
+ "id":6,
+ "probability":0.100000001490116,
+ "type":"StopObject"
+ },
+ {
+ "id":7,
+ "probability":0.100000001490116,
+ "type":"StopObject"
+ },
+ {
+ "id":8,
+ "probability":0.100000001490116,
+ "type":"StopObject"
+ },
+ {
+ "id":9,
+ "probability":0.100000001490116,
+ "type":"StopObject"
+ },
+ {
+ "id":10,
+ "probability":0.100000001490116,
+ "type":"StopObject"
+ },
+ {
+ "id":11,
+ "type":"StopObject"
+ },
+ {
+ "id":12,
+ "type":"StopObject"
+ },
+ {
+ "id":13,
+ "type":"StopObject"
+ },
+ {
+ "id":14,
+ "type":"StopObject"
+ },
+ {
+ "id":15,
+ "type":"StopObject"
+ },
+ {
+ "id":16,
+ "type":"StopObject"
+ },
+ {
+ "id":17,
+ "type":"StopObject"
+ },
+ {
+ "id":18,
+ "type":"StopObject"
+ },
+ {
+ "id":19,
+ "type":"StopObject"
+ },
+ {
+ "id":20,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ "probability":0.100000001490116,
+ "type":"StopObject"
+ },
+ {
+ "id":21,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ "probability":0.100000001490116,
+ "type":"StopObject"
+ },
+ {
+ "id":22,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ "probability":0.100000001490116,
+ "type":"StopObject"
+ },
+ {
+ "id":23,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ "probability":0.100000001490116,
+ "type":"StopObject"
+ },
+ {
+ "id":24,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ "probability":0.100000001490116,
+ "type":"StopObject"
+ },
+ {
+ "id":25,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ "probability":0.100000001490116,
+ "type":"StopObject"
+ },
+ {
+ "id":26,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ "probability":0.100000001490116,
+ "type":"StopObject"
+ },
+ {
+ "id":27,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ "probability":0.100000001490116,
+ "type":"StopObject"
+ },
+ {
+ "id":28,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ "probability":0.100000001490116,
+ "type":"StopObject"
+ },
+ {
+ "id":29,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ "probability":0.100000001490116,
+ "type":"StopObject"
+ },
+ {
+ "id":30,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ "probability":0.100000001490116,
+ "type":"StopObject"
+ },
+ {
+ "id":31,
+ "type":"StopObject"
+ },
+ {
+ "id":32,
+ "type":"StopObject"
+ },
+ {
+ "id":33,
+ "type":"StopObject"
+ },
+ {
+ "id":34,
+ "type":"StopObject"
+ },
+ {
+ "id":35,
+ "type":"StopObject"
+ },
+ {
+ "id":36,
+ "type":"StopObject"
+ },
+ {
+ "id":37,
+ "type":"StopObject"
+ },
+ {
+ "id":38,
+ "type":"StopObject"
+ },
+ {
+ "id":39,
+ "type":"StopObject"
+ },
+ {
+ "id":40,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ "probability":0.100000001490116,
+ "type":"StopObject"
+ },
+ {
+ "id":41,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ "probability":0.100000001490116,
+ "type":"StopObject"
+ },
+ {
+ "id":42,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ "probability":0.100000001490116,
+ "type":"StopObject"
+ },
+ {
+ "id":43,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ "probability":0.100000001490116,
+ "type":"StopObject"
+ },
+ {
+ "id":44,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ "probability":0.100000001490116,
+ "type":"StopObject"
+ },
+ {
+ "id":45,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ "probability":0.100000001490116,
+ "type":"StopObject"
+ },
+ {
+ "id":46,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ "probability":0.100000001490116,
+ "type":"StopObject"
+ },
+ {
+ "id":47,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ "probability":0.100000001490116,
+ "type":"StopObject"
+ },
+ {
+ "id":48,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ "probability":0.100000001490116,
+ "type":"StopObject"
+ },
+ {
+ "id":49,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ "probability":0.100000001490116,
+ "type":"StopObject"
+ },
+ {
+ "id":50,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ "probability":0.100000001490116,
+ "type":"StopObject"
+ },
+ {
+ "id":51,
+ "type":"StopObject"
+ },
+ {
+ "id":52,
+ "type":"StopObject"
+ },
+ {
+ "id":53,
+ "type":"StopObject"
+ },
+ {
+ "id":54,
+ "type":"StopObject"
+ },
+ {
+ "id":55,
+ "type":"StopObject"
+ },
+ {
+ "id":56,
+ "type":"StopObject"
+ },
+ {
+ "id":57,
+ "type":"StopObject"
+ },
+ {
+ "id":58,
+ "type":"StopObject"
+ },
+ {
+ "id":59,
+ "type":"StopObject"
+ },
+ {
+ "id":60,
+ "type":"StopObject"
+ },
+ {
+ "id":61,
+ "type":"StopObject"
+ },
+ {
+ "id":62,
+ "type":"StopObject"
+ },
+ {
+ "id":63,
+ "type":"StopObject"
+ },
+ {
+ "id":64,
+ "type":"StopObject"
+ },
+ {
+ "id":65,
+ "type":"StopObject"
+ },
+ {
+ "id":66,
+ "type":"StopObject"
+ },
+ {
+ "id":67,
+ "type":"StopObject"
+ },
+ {
+ "id":68,
+ "type":"StopObject"
+ },
+ {
+ "id":69,
+ "type":"StopObject"
+ },
+ {
+ "id":70,
+ "type":"StopObject"
+ },
+ {
+ "id":71,
+ "type":"StopObject"
+ },
+ {
+ "id":72,
+ "type":"StopObject"
+ },
+ {
+ "id":73,
+ "type":"StopObject"
+ },
+ {
+ "id":74,
+ "type":"StopObject"
+ },
+ {
+ "id":75,
+ "type":"StopObject"
+ },
+ {
+ "id":76,
+ "type":"StopObject"
+ },
+ {
+ "id":77,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":8,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":15.5,
+ "x":0.5,
+ "y":8
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ "probability":0.100000001490116,
+ "type":"StopObject"
+ },
+ {
+ "id":78,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":8.5,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":15.75,
+ "x":0.25,
+ "y":7.5
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ "probability":0.100000001490116,
+ "type":"StopObject"
+ },
+ {
+ "id":79,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":9,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":15.75,
+ "x":0.25,
+ "y":7
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ "probability":0.100000001490116,
+ "type":"StopObject"
+ },
+ {
+ "id":80,
+ "type":"StopObject"
+ },
+ {
+ "id":81,
+ "type":"StopObject"
+ },
+ {
+ "id":82,
+ "type":"StopObject"
+ },
+ {
+ "id":83,
+ "type":"StopObject"
+ },
+ {
+ "id":84,
+ "type":"StopObject"
+ },
+ {
+ "id":85,
+ "type":"StopObject"
+ },
+ {
+ "id":86,
+ "type":"StopObject"
+ },
+ {
+ "id":87,
+ "type":"StopObject"
+ },
+ {
+ "id":88,
+ "type":"StopObject"
+ },
+ {
+ "id":89,
+ "type":"StopObject"
+ },
+ {
+ "id":90,
+ "type":"StopObject"
+ },
+ {
+ "id":91,
+ "type":"StopObject"
+ },
+ {
+ "id":92,
+ "type":"StopObject"
+ },
+ {
+ "id":93,
+ "type":"StopObject"
+ },
+ {
+ "id":94,
+ "type":"StopObject"
+ },
+ {
+ "id":95,
+ "type":"StopObject"
+ },
+ {
+ "id":96,
+ "type":"StopObject"
+ },
+ {
+ "id":97,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ "probability":0.100000001490116,
+ "type":"StopObject"
+ },
+ {
+ "id":98,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ "probability":0.100000001490116,
+ "type":"StopObject"
+ },
+ {
+ "id":99,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ "probability":0.100000001490116,
+ "type":"StopObject"
+ },
+ {
+ "id":100,
+ "type":"StopObject"
+ },
+ {
+ "id":101,
+ "type":"StopObject"
+ },
+ {
+ "id":102,
+ "type":"StopObject"
+ },
+ {
+ "id":103,
+ "type":"StopObject"
+ },
+ {
+ "id":104,
+ "type":"StopObject"
+ },
+ {
+ "id":105,
+ "type":"StopObject"
+ },
+ {
+ "id":106,
+ "type":"StopObject"
+ },
+ {
+ "id":107,
+ "type":"StopObject"
+ },
+ {
+ "id":108,
+ "type":"StopObject"
+ },
+ {
+ "id":109,
+ "type":"StopObject"
+ },
+ {
+ "id":110,
+ "type":"StopObject"
+ },
+ {
+ "id":111,
+ "type":"StopObject"
+ },
+ {
+ "id":112,
+ "type":"StopObject"
+ },
+ {
+ "id":113,
+ "type":"StopObject"
+ },
+ {
+ "id":114,
+ "type":"StopObject"
+ },
+ {
+ "id":115,
+ "type":"StopObject"
+ },
+ {
+ "id":116,
+ "type":"StopObject"
+ },
+ {
+ "id":117,
+ "type":"StopObject"
+ },
+ {
+ "id":118,
+ "type":"StopObject"
+ },
+ {
+ "id":119,
+ "type":"StopObject"
+ },
+ {
+ "id":120,
+ "type":"StopObject"
+ },
+ {
+ "id":121,
+ "type":"StopObject"
+ },
+ {
+ "id":122,
+ "type":"StopObject"
+ },
+ {
+ "id":123,
+ "type":"StopObject"
+ },
+ {
+ "id":124,
+ "type":"StopObject"
+ },
+ {
+ "id":125,
+ "type":"StopObject"
+ },
+ {
+ "id":126,
+ "type":"StopObject"
+ },
+ {
+ "id":127,
+ "type":"StopObject"
+ },
+ {
+ "id":128,
+ "type":"StopObject"
+ },
+ {
+ "id":129,
+ "type":"StopObject"
+ },
+ {
+ "id":130,
+ "type":"StopObject"
+ },
+ {
+ "id":131,
+ "type":"StopObject"
+ },
+ {
+ "id":132,
+ "type":"StopObject"
+ },
+ {
+ "id":133,
+ "type":"StopObject"
+ },
+ {
+ "id":134,
+ "type":"StopObject"
+ },
+ {
+ "id":135,
+ "type":"StopObject"
+ },
+ {
+ "id":136,
+ "type":"StopObject"
+ },
+ {
+ "id":137,
+ "type":"StopObject"
+ },
+ {
+ "id":138,
+ "type":"StopObject"
+ },
+ {
+ "id":139,
+ "type":"StopObject"
+ },
+ {
+ "id":140,
+ "type":"StopObject"
+ },
+ {
+ "id":141,
+ "type":"StopObject"
+ },
+ {
+ "id":142,
+ "type":"StopObject"
+ },
+ {
+ "id":143,
+ "type":"StopObject"
+ },
+ {
+ "id":144,
+ "type":"StopObject"
+ },
+ {
+ "id":145,
+ "type":"StopObject"
+ },
+ {
+ "id":146,
+ "type":"StopObject"
+ },
+ {
+ "id":147,
+ "type":"StopObject"
+ },
+ {
+ "id":148,
+ "type":"StopObject"
+ },
+ {
+ "id":149,
+ "type":"StopObject"
+ },
+ {
+ "id":150,
+ "type":"StopObject"
+ },
+ {
+ "id":151,
+ "type":"StopObject"
+ },
+ {
+ "id":152,
+ "type":"StopObject"
+ },
+ {
+ "id":153,
+ "type":"StopObject"
+ },
+ {
+ "id":154,
+ "type":"StopObject"
+ },
+ {
+ "id":155,
+ "type":"StopObject"
+ },
+ {
+ "id":156,
+ "type":"StopObject"
+ },
+ {
+ "id":157,
+ "type":"StopObject"
+ },
+ {
+ "id":158,
+ "type":"StopObject"
+ },
+ {
+ "id":159,
+ "type":"StopObject"
+ },
+ {
+ "id":160,
+ "type":"StopObject"
+ },
+ {
+ "id":161,
+ "type":"StopObject"
+ },
+ {
+ "id":162,
+ "type":"StopObject"
+ },
+ {
+ "id":163,
+ "type":"StopObject"
+ },
+ {
+ "id":164,
+ "type":"StopObject"
+ },
+ {
+ "id":165,
+ "type":"StopObject"
+ },
+ {
+ "id":166,
+ "type":"StopObject"
+ },
+ {
+ "id":167,
+ "type":"StopObject"
+ },
+ {
+ "id":168,
+ "type":"StopObject"
+ },
+ {
+ "id":169,
+ "type":"StopObject"
+ },
+ {
+ "id":170,
+ "type":"StopObject"
+ },
+ {
+ "id":171,
+ "type":"StopObject"
+ },
+ {
+ "id":172,
+ "type":"StopObject"
+ },
+ {
+ "id":173,
+ "type":"StopObject"
+ },
+ {
+ "id":174,
+ "type":"StopObject"
+ },
+ {
+ "id":175,
+ "type":"StopObject"
+ },
+ {
+ "id":176,
+ "type":"StopObject"
+ },
+ {
+ "id":177,
+ "type":"StopObject"
+ },
+ {
+ "id":178,
+ "type":"StopObject"
+ },
+ {
+ "id":179,
+ "type":"StopObject"
+ },
+ {
+ "id":180,
+ "type":"StopObject"
+ },
+ {
+ "id":181,
+ "type":"StopObject"
+ },
+ {
+ "id":182,
+ "type":"StopObject"
+ },
+ {
+ "id":183,
+ "type":"StopObject"
+ },
+ {
+ "id":184,
+ "type":"StopObject"
+ },
+ {
+ "id":185,
+ "type":"StopObject"
+ },
+ {
+ "id":186,
+ "type":"StopObject"
+ },
+ {
+ "id":187,
+ "type":"StopObject"
+ },
+ {
+ "id":188,
+ "type":"StopObject"
+ },
+ {
+ "id":189,
+ "type":"StopObject"
+ },
+ {
+ "id":190,
+ "type":"StopObject"
+ },
+ {
+ "id":191,
+ "type":"StopObject"
+ },
+ {
+ "id":192,
+ "type":"StopObject"
+ },
+ {
+ "id":193,
+ "type":"StopObject"
+ },
+ {
+ "id":194,
+ "type":"StopObject"
+ },
+ {
+ "id":195,
+ "type":"StopObject"
+ },
+ {
+ "id":196,
+ "type":"StopObject"
+ },
+ {
+ "id":197,
+ "type":"StopObject"
+ },
+ {
+ "id":198,
+ "type":"StopObject"
+ },
+ {
+ "id":199,
+ "type":"StopObject"
+ },
+ {
+ "id":200,
+ "type":"StopObject"
+ },
+ {
+ "id":201,
+ "type":"StopObject"
+ },
+ {
+ "id":202,
+ "type":"StopObject"
+ },
+ {
+ "id":203,
+ "type":"StopObject"
+ },
+ {
+ "id":204,
+ "type":"StopObject"
+ },
+ {
+ "id":205,
+ "type":"StopObject"
+ },
+ {
+ "id":206,
+ "type":"StopObject"
+ },
+ {
+ "id":207,
+ "type":"StopObject"
+ },
+ {
+ "id":208,
+ "type":"StopObject"
+ },
+ {
+ "id":209,
+ "type":"StopObject"
+ },
+ {
+ "id":210,
+ "type":"StopObject"
+ },
+ {
+ "id":211,
+ "type":"StopObject"
+ },
+ {
+ "id":212,
+ "type":"StopObject"
+ },
+ {
+ "id":213,
+ "type":"StopObject"
+ },
+ {
+ "id":214,
+ "type":"StopObject"
+ },
+ {
+ "id":215,
+ "type":"StopObject"
+ },
+ {
+ "id":216,
+ "type":"StopObject"
+ },
+ {
+ "id":217,
+ "type":"StopObject"
+ },
+ {
+ "id":218,
+ "type":"StopObject"
+ },
+ {
+ "id":219,
+ "type":"StopObject"
+ },
+ {
+ "id":220,
+ "type":"StopObject"
+ },
+ {
+ "id":221,
+ "type":"StopObject"
+ },
+ {
+ "id":222,
+ "type":"StopObject"
+ },
+ {
+ "id":223,
+ "type":"StopObject"
+ },
+ {
+ "id":224,
+ "type":"StopObject"
+ },
+ {
+ "id":225,
+ "type":"StopObject"
+ },
+ {
+ "id":226,
+ "type":"StopObject"
+ },
+ {
+ "id":227,
+ "type":"StopObject"
+ },
+ {
+ "id":228,
+ "type":"StopObject"
+ },
+ {
+ "id":229,
+ "type":"StopObject"
+ },
+ {
+ "id":230,
+ "type":"StopObject"
+ },
+ {
+ "id":231,
+ "type":"StopObject"
+ },
+ {
+ "id":232,
+ "type":"StopObject"
+ },
+ {
+ "id":233,
+ "type":"StopObject"
+ },
+ {
+ "id":234,
+ "type":"StopObject"
+ },
+ {
+ "id":235,
+ "type":"StopObject"
+ },
+ {
+ "id":236,
+ "type":"StopObject"
+ },
+ {
+ "id":237,
+ "type":"StopObject"
+ },
+ {
+ "id":238,
+ "type":"StopObject"
+ },
+ {
+ "id":239,
+ "type":"StopObject"
+ }],
+ "tilewidth":16,
+ "type":"tileset",
+ "version":"1.10"
+}
\ No newline at end of file
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_down-left_idle.animation b/ZoFo/Content/Textures/Animations/player_down-left_idle.animation
new file mode 100644
index 0000000..6c2a6c7
--- /dev/null
+++ b/ZoFo/Content/Textures/Animations/player_down-left_idle.animation
@@ -0,0 +1,21 @@
+{
+ "id": "player_down-left_idle",
+ "textureName": "Textures/AnimationTextures/Character/hr-level1_idle",
+ "startSpriteRectangle": {
+ "X": 0,
+ "Y": 560,
+ "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_down-right_idle.animation b/ZoFo/Content/Textures/Animations/player_down-right_idle.animation
new file mode 100644
index 0000000..016a3f2
--- /dev/null
+++ b/ZoFo/Content/Textures/Animations/player_down-right_idle.animation
@@ -0,0 +1,20 @@
+{
+ "id": "player_down-right_idle",
+ "textureName": "Textures/AnimationTextures/Character/hr-level1_idle",
+ "startSpriteRectangle": {
+ "X": 0,
+ "Y": 358,
+ "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_down_idle.animation b/ZoFo/Content/Textures/Animations/player_down_idle.animation
new file mode 100644
index 0000000..243946c
--- /dev/null
+++ b/ZoFo/Content/Textures/Animations/player_down_idle.animation
@@ -0,0 +1,20 @@
+{
+ "id": "player_down_idle",
+ "textureName": "Textures/AnimationTextures/Character/hr-level1_idle",
+ "startSpriteRectangle": {
+ "X": 0,
+ "Y": 464,
+ "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_down-left_mining.animation b/ZoFo/Content/Textures/Animations/player_idle_down-left_mining.animation
new file mode 100644
index 0000000..ba1b3c9
--- /dev/null
+++ b/ZoFo/Content/Textures/Animations/player_idle_down-left_mining.animation
@@ -0,0 +1,21 @@
+{
+ "id": "player_idle_down-left_mining",
+ "textureName": "Textures/AnimationTextures/Character/hr-level1_mining_tool-1",
+ "startSpriteRectangle": {
+ "X": 0,
+ "Y": 776,
+ "Width": 196,
+ "Height": 194
+ },
+ "frameSecond": [
+ {
+ "Item1": 0,
+ "Item2": 5
+ }
+ ],
+ "textureFrameInterval": 0,
+ "framesCount": 13,
+ "isCycle": true,
+ "offset": "0, 0"
+
+}
diff --git a/ZoFo/Content/Textures/Animations/player_idle_down_mining.animation b/ZoFo/Content/Textures/Animations/player_idle_down_mining.animation
new file mode 100644
index 0000000..92bda6c
--- /dev/null
+++ b/ZoFo/Content/Textures/Animations/player_idle_down_mining.animation
@@ -0,0 +1,21 @@
+{
+ "id": "player_idle_down_mining",
+ "textureName": "Textures/AnimationTextures/Character/hr-level1_mining_tool-1",
+ "startSpriteRectangle": {
+ "X": 0,
+ "Y": 582,
+ "Width": 196,
+ "Height": 194
+ },
+ "frameSecond": [
+ {
+ "Item1": 0,
+ "Item2": 5
+ }
+ ],
+ "textureFrameInterval": 0,
+ "framesCount": 13,
+ "isCycle": true,
+ "offset": "0, 0"
+
+}
diff --git a/ZoFo/Content/Textures/Animations/player_idle_left_mining.animation b/ZoFo/Content/Textures/Animations/player_idle_left_mining.animation
new file mode 100644
index 0000000..81f9629
--- /dev/null
+++ b/ZoFo/Content/Textures/Animations/player_idle_left_mining.animation
@@ -0,0 +1,21 @@
+{
+ "id": "player_idle_left_mining",
+ "textureName": "Textures/AnimationTextures/Character/hr-level1_mining_tool-1",
+ "startSpriteRectangle": {
+ "X": 0,
+ "Y": 1358,
+ "Width": 196,
+ "Height": 194
+ },
+ "frameSecond": [
+ {
+ "Item1": 0,
+ "Item2": 5
+ }
+ ],
+ "textureFrameInterval": 0,
+ "framesCount": 13,
+ "isCycle": true,
+ "offset": "0, 0"
+
+}
diff --git a/ZoFo/Content/Textures/Animations/player_idle_rights_mining.animation b/ZoFo/Content/Textures/Animations/player_idle_rights_mining.animation
new file mode 100644
index 0000000..6570cce
--- /dev/null
+++ b/ZoFo/Content/Textures/Animations/player_idle_rights_mining.animation
@@ -0,0 +1,21 @@
+{
+ "id": "player_idle_rights_mining",
+ "textureName": "Textures/AnimationTextures/Character/hr-level1_mining_tool-1",
+ "startSpriteRectangle": {
+ "X": 0,
+ "Y": 388,
+ "Width": 196,
+ "Height": 194
+ },
+ "frameSecond": [
+ {
+ "Item1": 0,
+ "Item2": 5
+ }
+ ],
+ "textureFrameInterval": 0,
+ "framesCount": 13,
+ "isCycle": false,
+ "offset": "0, 0"
+
+}
diff --git a/ZoFo/Content/Textures/Animations/player_idle_top-left_mining.animation b/ZoFo/Content/Textures/Animations/player_idle_top-left_mining.animation
new file mode 100644
index 0000000..3dfef38
--- /dev/null
+++ b/ZoFo/Content/Textures/Animations/player_idle_top-left_mining.animation
@@ -0,0 +1,21 @@
+{
+ "id": "player_idle_top-left_mining",
+ "textureName": "Textures/AnimationTextures/Character/hr-level1_mining_tool-1",
+ "startSpriteRectangle": {
+ "X": 0,
+ "Y": 1552,
+ "Width": 196,
+ "Height": 194
+ },
+ "frameSecond": [
+ {
+ "Item1": 0,
+ "Item2": 5
+ }
+ ],
+ "textureFrameInterval": 0,
+ "framesCount": 13,
+ "isCycle": true,
+ "offset": "0, 0"
+
+}
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-rights_mining.animation b/ZoFo/Content/Textures/Animations/player_idle_top-rights_mining.animation
new file mode 100644
index 0000000..d4a5828
--- /dev/null
+++ b/ZoFo/Content/Textures/Animations/player_idle_top-rights_mining.animation
@@ -0,0 +1,20 @@
+{
+ "id": "player_idle_top-rights_mining",
+ "textureName": "Textures/AnimationTextures/Character/hr-level1_mining_tool-1",
+ "startSpriteRectangle": {
+ "X": 0,
+ "Y": 194,
+ "Width": 196,
+ "Height": 194
+ },
+ "frameSecond": [
+ {
+ "Item1": 0,
+ "Item2": 5
+ }
+ ],
+ "textureFrameInterval": 0,
+ "framesCount": 13,
+ "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/player_left_idle.animation b/ZoFo/Content/Textures/Animations/player_left_idle.animation
new file mode 100644
index 0000000..8906cb3
--- /dev/null
+++ b/ZoFo/Content/Textures/Animations/player_left_idle.animation
@@ -0,0 +1,21 @@
+{
+ "id": "player_left_idle",
+ "textureName": "Textures/AnimationTextures/Character/hr-level1_idle",
+ "startSpriteRectangle": {
+ "X": 0,
+ "Y": 696,
+ "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_look_down.animation b/ZoFo/Content/Textures/Animations/player_look_down.animation
new file mode 100644
index 0000000..0b4e385
--- /dev/null
+++ b/ZoFo/Content/Textures/Animations/player_look_down.animation
@@ -0,0 +1,20 @@
+{
+ "id": "player_look_down",
+ "textureName": "Textures/AnimationTextures/Character/hr-level1_idle",
+ "startSpriteRectangle": {
+ "X": 0,
+ "Y": 464,
+ "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_look_down_weapon.animation b/ZoFo/Content/Textures/Animations/player_look_down_weapon.animation
new file mode 100644
index 0000000..76f9b07
--- /dev/null
+++ b/ZoFo/Content/Textures/Animations/player_look_down_weapon.animation
@@ -0,0 +1 @@
+{"id":"player_look_down_weapon","textureName":"Textures/AnimationTextures/Character/hr-level1_idle_gun","startSpriteRectangle":{"X":0,"Y":512,"Width":110,"Height":128},"frameSecond":[{"Item1":0,"Item2":5}],"textureFrameInterval":0,"framesCount":22,"isCycle":true,"offset":"0, 0"}
diff --git a/ZoFo/Content/Textures/Animations/player_look_left.animation b/ZoFo/Content/Textures/Animations/player_look_left.animation
new file mode 100644
index 0000000..13e8f0e
--- /dev/null
+++ b/ZoFo/Content/Textures/Animations/player_look_left.animation
@@ -0,0 +1 @@
+{"id":"player_look_left","textureName":"Textures/AnimationTextures/Character/hr-level1_idle","startSpriteRectangle":{"X":0,"Y":696,"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_look_left_down.animation b/ZoFo/Content/Textures/Animations/player_look_left_down.animation
new file mode 100644
index 0000000..78f5150
--- /dev/null
+++ b/ZoFo/Content/Textures/Animations/player_look_left_down.animation
@@ -0,0 +1 @@
+{"id":"player_look_left_down","textureName":"Textures/AnimationTextures/Character/hr-level1_idle","startSpriteRectangle":{"X":0,"Y":580,"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_look_left_down_weapon.animation b/ZoFo/Content/Textures/Animations/player_look_left_down_weapon.animation
new file mode 100644
index 0000000..5d7468b
--- /dev/null
+++ b/ZoFo/Content/Textures/Animations/player_look_left_down_weapon.animation
@@ -0,0 +1,20 @@
+{
+ "id": "player_look_left_down_weapon",
+ "textureName": "Textures/AnimationTextures/Character/hr-level1_idle_gun",
+ "startSpriteRectangle": {
+ "X": 0,
+ "Y": 640,
+ "Width": 110,
+ "Height": 128
+ },
+ "frameSecond": [
+ {
+ "Item1": 0,
+ "Item2": 5
+ }
+ ],
+ "textureFrameInterval": 0,
+ "framesCount": 22,
+ "isCycle": true,
+ "offset": "0, 0"
+}
diff --git a/ZoFo/Content/Textures/Animations/player_look_left_up.animation b/ZoFo/Content/Textures/Animations/player_look_left_up.animation
new file mode 100644
index 0000000..9fc0cf6
--- /dev/null
+++ b/ZoFo/Content/Textures/Animations/player_look_left_up.animation
@@ -0,0 +1 @@
+{"id":"player_look_left_up","textureName":"Textures/AnimationTextures/Character/hr-level1_idle","startSpriteRectangle":{"X":0,"Y":812,"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_look_left_up_weapon.animation b/ZoFo/Content/Textures/Animations/player_look_left_up_weapon.animation
new file mode 100644
index 0000000..68ddc46
--- /dev/null
+++ b/ZoFo/Content/Textures/Animations/player_look_left_up_weapon.animation
@@ -0,0 +1 @@
+{"id":"player_look_left_up_weapon","textureName":"Textures/AnimationTextures/Character/hr-level1_idle_gun","startSpriteRectangle":{"X":0,"Y":896,"Width":110,"Height":128},"frameSecond":[{"Item1":0,"Item2":5}],"textureFrameInterval":0,"framesCount":22,"isCycle":true,"offset":"0, 0"}
diff --git a/ZoFo/Content/Textures/Animations/player_look_left_weapon.animation b/ZoFo/Content/Textures/Animations/player_look_left_weapon.animation
new file mode 100644
index 0000000..638f33a
--- /dev/null
+++ b/ZoFo/Content/Textures/Animations/player_look_left_weapon.animation
@@ -0,0 +1,20 @@
+{
+ "id": "player_look_left_weapon",
+ "textureName": "Textures/AnimationTextures/Character/hr-level1_idle_gun",
+ "startSpriteRectangle": {
+ "X": 0,
+ "Y": 768,
+ "Width": 110,
+ "Height": 128
+ },
+ "frameSecond": [
+ {
+ "Item1": 0,
+ "Item2": 5
+ }
+ ],
+ "textureFrameInterval": 0,
+ "framesCount": 22,
+ "isCycle": true,
+ "offset": "0, 0"
+}
diff --git a/ZoFo/Content/Textures/Animations/player_look_right.animation b/ZoFo/Content/Textures/Animations/player_look_right.animation
new file mode 100644
index 0000000..3d1bf63
--- /dev/null
+++ b/ZoFo/Content/Textures/Animations/player_look_right.animation
@@ -0,0 +1 @@
+{"id":"player_look_right","textureName":"Textures/AnimationTextures/Character/hr-level1_idle","startSpriteRectangle":{"X":0,"Y":232,"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_look_right_down.animation b/ZoFo/Content/Textures/Animations/player_look_right_down.animation
new file mode 100644
index 0000000..fbdbeb9
--- /dev/null
+++ b/ZoFo/Content/Textures/Animations/player_look_right_down.animation
@@ -0,0 +1 @@
+{"id":"player_look_right_down","textureName":"Textures/AnimationTextures/Character/hr-level1_idle","startSpriteRectangle":{"X":0,"Y":348,"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_look_right_down_weapon.animation b/ZoFo/Content/Textures/Animations/player_look_right_down_weapon.animation
new file mode 100644
index 0000000..49ca0c6
--- /dev/null
+++ b/ZoFo/Content/Textures/Animations/player_look_right_down_weapon.animation
@@ -0,0 +1 @@
+{"id":"player_look_right_down_weapon","textureName":"Textures/AnimationTextures/Character/hr-level1_idle_gun","startSpriteRectangle":{"X":0,"Y":384,"Width":110,"Height":128},"frameSecond":[{"Item1":0,"Item2":5}],"textureFrameInterval":0,"framesCount":22,"isCycle":true,"offset":"0, 0"}
diff --git a/ZoFo/Content/Textures/Animations/player_look_right_up.animation b/ZoFo/Content/Textures/Animations/player_look_right_up.animation
new file mode 100644
index 0000000..0fe59d4
--- /dev/null
+++ b/ZoFo/Content/Textures/Animations/player_look_right_up.animation
@@ -0,0 +1 @@
+{"id":"player_look_right_up","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_look_right_up_weapon.animation b/ZoFo/Content/Textures/Animations/player_look_right_up_weapon.animation
new file mode 100644
index 0000000..897c4b5
--- /dev/null
+++ b/ZoFo/Content/Textures/Animations/player_look_right_up_weapon.animation
@@ -0,0 +1 @@
+{"id":"player_look_right_up_weapon","textureName":"Textures/AnimationTextures/Character/hr-level1_idle_gun","startSpriteRectangle":{"X":0,"Y":128,"Width":110,"Height":128},"frameSecond":[{"Item1":0,"Item2":5}],"textureFrameInterval":0,"framesCount":22,"isCycle":true,"offset":"0, 0"}
diff --git a/ZoFo/Content/Textures/Animations/player_look_right_weapon.animation b/ZoFo/Content/Textures/Animations/player_look_right_weapon.animation
new file mode 100644
index 0000000..e7a753c
--- /dev/null
+++ b/ZoFo/Content/Textures/Animations/player_look_right_weapon.animation
@@ -0,0 +1 @@
+{"id":"player_look_right_weapon","textureName":"Textures/AnimationTextures/Character/hr-level1_idle_gun","startSpriteRectangle":{"X":0,"Y":256,"Width":110,"Height":128},"frameSecond":[{"Item1":0,"Item2":5}],"textureFrameInterval":0,"framesCount":22,"isCycle":true,"offset":"0, 0"}
diff --git a/ZoFo/Content/Textures/Animations/player_look_up.animation b/ZoFo/Content/Textures/Animations/player_look_up.animation
new file mode 100644
index 0000000..3b24dca
--- /dev/null
+++ b/ZoFo/Content/Textures/Animations/player_look_up.animation
@@ -0,0 +1 @@
+{"id":"player_look_up","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/player_look_up_weapon.animation b/ZoFo/Content/Textures/Animations/player_look_up_weapon.animation
new file mode 100644
index 0000000..4f45286
--- /dev/null
+++ b/ZoFo/Content/Textures/Animations/player_look_up_weapon.animation
@@ -0,0 +1 @@
+{"id":"player_look_up_weapon","textureName":"Textures/AnimationTextures/Character/hr-level1_idle_gun","startSpriteRectangle":{"X":0,"Y":0,"Width":110,"Height":128},"frameSecond":[{"Item1":0,"Item2":5}],"textureFrameInterval":0,"framesCount":22,"isCycle":true,"offset":"0, 0"}
diff --git a/ZoFo/Content/Textures/Animations/player_right_idle.animation b/ZoFo/Content/Textures/Animations/player_right_idle.animation
new file mode 100644
index 0000000..a3c1538
--- /dev/null
+++ b/ZoFo/Content/Textures/Animations/player_right_idle.animation
@@ -0,0 +1,21 @@
+{
+ "id": "player_right_idle",
+ "textureName": "Textures/AnimationTextures/Character/hr-level1_idle",
+ "startSpriteRectangle": {
+ "X": 0,
+ "Y": 232,
+ "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_running_top_rotate.animation b/ZoFo/Content/Textures/Animations/player_running_top_rotate.animation
new file mode 100644
index 0000000..47c6d2c
--- /dev/null
+++ b/ZoFo/Content/Textures/Animations/player_running_top_rotate.animation
@@ -0,0 +1 @@
+{"id":"player_running_top_rotate","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/player_top-left_idle.animation b/ZoFo/Content/Textures/Animations/player_top-left_idle.animation
new file mode 100644
index 0000000..feb823e
--- /dev/null
+++ b/ZoFo/Content/Textures/Animations/player_top-left_idle.animation
@@ -0,0 +1,21 @@
+{
+ "id": "player_top-left_idle",
+ "textureName": "Textures/AnimationTextures/Character/hr-level1_idle",
+ "startSpriteRectangle": {
+ "X": 0,
+ "Y": 812,
+ "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_top-right_idle.animation b/ZoFo/Content/Textures/Animations/player_top-right_idle.animation
new file mode 100644
index 0000000..df132a3
--- /dev/null
+++ b/ZoFo/Content/Textures/Animations/player_top-right_idle.animation
@@ -0,0 +1,21 @@
+{
+ "id": "player_top-right_idle",
+ "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_top_mining.animation b/ZoFo/Content/Textures/Animations/player_top_mining.animation
new file mode 100644
index 0000000..061d43a
--- /dev/null
+++ b/ZoFo/Content/Textures/Animations/player_top_mining.animation
@@ -0,0 +1,21 @@
+{
+ "id": "player_top_mining",
+ "textureName": "Textures/AnimationTextures/Character/hr-level1_mining_tool-1",
+ "startSpriteRectangle": {
+ "X": 0,
+ "Y": 0,
+ "Width": 196,
+ "Height": 194
+ },
+ "frameSecond": [
+ {
+ "Item1": 0,
+ "Item2": 5
+ }
+ ],
+ "textureFrameInterval": 0,
+ "framesCount": 13,
+ "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/testAnimation.animation b/ZoFo/Content/Textures/Animations/testAnimation.animation
new file mode 100644
index 0000000..917113d
--- /dev/null
+++ b/ZoFo/Content/Textures/Animations/testAnimation.animation
@@ -0,0 +1,21 @@
+{
+ "id": "testAnimation",
+ "textureName": "Textures/AnimationTextures/Character/hr-level1_idle",
+ "startSpriteRectangle": {
+ "X": 0,
+ "Y": 0,
+ "Width": 53,
+ "Height": 116
+ },
+ "frameSecond": [
+ {
+ "Item1": 0,
+ "Item2": 5
+ }
+ ],
+ "textureFrameInterval": 0,
+ "framesCount": 11,
+ "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..88d3740
--- /dev/null
+++ b/ZoFo/Content/Textures/Animations/testAnimationExample.animation
@@ -0,0 +1,20 @@
+{
+ "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/GUI/MenuBackground.jpg b/ZoFo/Content/Textures/GUI/MenuBackground.jpg
new file mode 100644
index 0000000..79b0abe
Binary files /dev/null and b/ZoFo/Content/Textures/GUI/MenuBackground.jpg differ
diff --git a/ZoFo/Content/Textures/GUI/Switch_backgrownd.png b/ZoFo/Content/Textures/GUI/Switch_backgrownd.png
new file mode 100644
index 0000000..bd9e1d8
Binary files /dev/null and b/ZoFo/Content/Textures/GUI/Switch_backgrownd.png differ
diff --git a/ZoFo/Content/Textures/GUI/background/base.png b/ZoFo/Content/Textures/GUI/background/base.png
new file mode 100644
index 0000000..49a5fb7
Binary files /dev/null and b/ZoFo/Content/Textures/GUI/background/base.png 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
new file mode 100644
index 0000000..c0bb204
Binary files /dev/null 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..7f7665c
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
new file mode 100644
index 0000000..25bc33b
Binary files /dev/null and b/ZoFo/Content/Textures/GUI/background/selectMode.png differ
diff --git a/ZoFo/Content/Textures/GUI/background/waiting.png b/ZoFo/Content/Textures/GUI/background/waiting.png
new file mode 100644
index 0000000..709fb0b
Binary files /dev/null and b/ZoFo/Content/Textures/GUI/background/waiting.png differ
diff --git a/ZoFo/Content/Textures/GUI/checkboxs_off-on.png b/ZoFo/Content/Textures/GUI/checkboxs_off-on.png
new file mode 100644
index 0000000..682b82a
Binary files /dev/null and b/ZoFo/Content/Textures/GUI/checkboxs_off-on.png differ
diff --git a/ZoFo/Content/Textures/GUI/checkboxs_off.png b/ZoFo/Content/Textures/GUI/checkboxs_off.png
new file mode 100644
index 0000000..f6533ba
Binary files /dev/null and b/ZoFo/Content/Textures/GUI/checkboxs_off.png differ
diff --git a/ZoFo/Content/Textures/GUI/checkboxs_on.png b/ZoFo/Content/Textures/GUI/checkboxs_on.png
new file mode 100644
index 0000000..693b0cc
Binary files /dev/null and b/ZoFo/Content/Textures/GUI/checkboxs_on.png differ
diff --git a/ZoFo/Content/Textures/GUI/feature/i (1).webp b/ZoFo/Content/Textures/GUI/feature/i (1).webp
new file mode 100644
index 0000000..751b392
Binary files /dev/null and b/ZoFo/Content/Textures/GUI/feature/i (1).webp differ
diff --git a/ZoFo/Content/Textures/GUI/feature/i (2).webp b/ZoFo/Content/Textures/GUI/feature/i (2).webp
new file mode 100644
index 0000000..a59827e
Binary files /dev/null and b/ZoFo/Content/Textures/GUI/feature/i (2).webp differ
diff --git a/ZoFo/Content/Textures/GUI/feature/i.webp b/ZoFo/Content/Textures/GUI/feature/i.webp
new file mode 100644
index 0000000..69b1f1f
Binary files /dev/null and b/ZoFo/Content/Textures/GUI/feature/i.webp differ
diff --git a/ZoFo/Content/Textures/GUI/feature/огонь-искусства-пиксела-вектора-117929424.webp b/ZoFo/Content/Textures/GUI/feature/огонь-искусства-пиксела-вектора-117929424.webp
new file mode 100644
index 0000000..a2178c4
Binary files /dev/null and b/ZoFo/Content/Textures/GUI/feature/огонь-искусства-пиксела-вектора-117929424.webp differ
diff --git a/ZoFo/Content/Textures/GUI/mouse.png b/ZoFo/Content/Textures/GUI/mouse.png
new file mode 100644
index 0000000..23146e6
Binary files /dev/null and b/ZoFo/Content/Textures/GUI/mouse.png differ
diff --git a/ZoFo/Content/Textures/GUI/switch.png b/ZoFo/Content/Textures/GUI/switch.png
new file mode 100644
index 0000000..a296c61
Binary files /dev/null and b/ZoFo/Content/Textures/GUI/switch.png differ
diff --git a/ZoFo/Content/Textures/Test/pickaxe.webp b/ZoFo/Content/Textures/Test/pickaxe.webp
new file mode 100644
index 0000000..549165d
Binary files /dev/null and b/ZoFo/Content/Textures/Test/pickaxe.webp differ
diff --git a/ZoFo/Content/Textures/Test/rock.jpg b/ZoFo/Content/Textures/Test/rock.jpg
new file mode 100644
index 0000000..e4f78d7
Binary files /dev/null and b/ZoFo/Content/Textures/Test/rock.jpg differ
diff --git a/ZoFo/Content/Textures/Test/steel.png b/ZoFo/Content/Textures/Test/steel.png
new file mode 100644
index 0000000..ca6d643
Binary files /dev/null and b/ZoFo/Content/Textures/Test/steel.png differ
diff --git a/ZoFo/Content/Textures/Test/wood.jpg b/ZoFo/Content/Textures/Test/wood.jpg
new file mode 100644
index 0000000..983d6f5
Binary files /dev/null and b/ZoFo/Content/Textures/Test/wood.jpg differ
diff --git a/ZoFo/Content/Textures/TileSetImages/Pipes.png b/ZoFo/Content/Textures/TileSetImages/Pipes.png
new file mode 100644
index 0000000..bc08a8e
Binary files /dev/null and b/ZoFo/Content/Textures/TileSetImages/Pipes.png differ
diff --git a/ZoFo/Content/Textures/TileSetImages/Tilelist1.png b/ZoFo/Content/Textures/TileSetImages/Tilelist1.png
new file mode 100644
index 0000000..5252c86
Binary files /dev/null and b/ZoFo/Content/Textures/TileSetImages/Tilelist1.png differ
diff --git a/ZoFo/Content/Textures/TileSetImages/Tilelist2.png b/ZoFo/Content/Textures/TileSetImages/Tilelist2.png
new file mode 100644
index 0000000..3ce1921
Binary files /dev/null and b/ZoFo/Content/Textures/TileSetImages/Tilelist2.png differ
diff --git a/ZoFo/Content/Textures/TileSetImages/Tilelist3.png b/ZoFo/Content/Textures/TileSetImages/Tilelist3.png
new file mode 100644
index 0000000..861af90
Binary files /dev/null and b/ZoFo/Content/Textures/TileSetImages/Tilelist3.png differ
diff --git a/ZoFo/Content/Textures/TileSetImages/Tilelist4.png b/ZoFo/Content/Textures/TileSetImages/Tilelist4.png
new file mode 100644
index 0000000..14a4566
Binary files /dev/null and b/ZoFo/Content/Textures/TileSetImages/Tilelist4.png differ
diff --git a/ZoFo/Content/Textures/TileSetImages/TilesetDesert.png b/ZoFo/Content/Textures/TileSetImages/TilesetDesert.png
new file mode 100644
index 0000000..adc8527
Binary files /dev/null and b/ZoFo/Content/Textures/TileSetImages/TilesetDesert.png differ
diff --git a/ZoFo/Content/Textures/TileSetImages/TilesetDungeon.png b/ZoFo/Content/Textures/TileSetImages/TilesetDungeon.png
new file mode 100644
index 0000000..d4f00d3
Binary files /dev/null and b/ZoFo/Content/Textures/TileSetImages/TilesetDungeon.png differ
diff --git a/ZoFo/Content/Textures/TileSetImages/TilesetElement.png b/ZoFo/Content/Textures/TileSetImages/TilesetElement.png
new file mode 100644
index 0000000..372b134
Binary files /dev/null and b/ZoFo/Content/Textures/TileSetImages/TilesetElement.png differ
diff --git a/ZoFo/Content/Textures/TileSetImages/TilesetField.png b/ZoFo/Content/Textures/TileSetImages/TilesetField.png
new file mode 100644
index 0000000..0a88109
Binary files /dev/null and b/ZoFo/Content/Textures/TileSetImages/TilesetField.png differ
diff --git a/ZoFo/Content/Textures/TileSetImages/TilesetFloor.png b/ZoFo/Content/Textures/TileSetImages/TilesetFloor.png
new file mode 100644
index 0000000..abba7bf
Binary files /dev/null and b/ZoFo/Content/Textures/TileSetImages/TilesetFloor.png differ
diff --git a/ZoFo/Content/Textures/TileSetImages/TilesetFloorB.png b/ZoFo/Content/Textures/TileSetImages/TilesetFloorB.png
new file mode 100644
index 0000000..9fb91a7
Binary files /dev/null and b/ZoFo/Content/Textures/TileSetImages/TilesetFloorB.png differ
diff --git a/ZoFo/Content/Textures/TileSetImages/TilesetFloorDetail.png b/ZoFo/Content/Textures/TileSetImages/TilesetFloorDetail.png
new file mode 100644
index 0000000..96be714
Binary files /dev/null and b/ZoFo/Content/Textures/TileSetImages/TilesetFloorDetail.png differ
diff --git a/ZoFo/Content/Textures/TileSetImages/TilesetHole.png b/ZoFo/Content/Textures/TileSetImages/TilesetHole.png
new file mode 100644
index 0000000..14078c1
Binary files /dev/null and b/ZoFo/Content/Textures/TileSetImages/TilesetHole.png differ
diff --git a/ZoFo/Content/Textures/TileSetImages/TilesetHouse.png b/ZoFo/Content/Textures/TileSetImages/TilesetHouse.png
new file mode 100644
index 0000000..fa89397
Binary files /dev/null and b/ZoFo/Content/Textures/TileSetImages/TilesetHouse.png differ
diff --git a/ZoFo/Content/Textures/TileSetImages/TilesetLogic.png b/ZoFo/Content/Textures/TileSetImages/TilesetLogic.png
new file mode 100644
index 0000000..6feb49d
Binary files /dev/null and b/ZoFo/Content/Textures/TileSetImages/TilesetLogic.png differ
diff --git a/ZoFo/Content/Textures/TileSetImages/TilesetNature.png b/ZoFo/Content/Textures/TileSetImages/TilesetNature.png
new file mode 100644
index 0000000..fba9cb6
Binary files /dev/null and b/ZoFo/Content/Textures/TileSetImages/TilesetNature.png differ
diff --git a/ZoFo/Content/Textures/TileSetImages/TilesetRelief.png b/ZoFo/Content/Textures/TileSetImages/TilesetRelief.png
new file mode 100644
index 0000000..f3ec0d5
Binary files /dev/null and b/ZoFo/Content/Textures/TileSetImages/TilesetRelief.png differ
diff --git a/ZoFo/Content/Textures/TileSetImages/TilesetReliefDetail.png b/ZoFo/Content/Textures/TileSetImages/TilesetReliefDetail.png
new file mode 100644
index 0000000..ae72bb6
Binary files /dev/null and b/ZoFo/Content/Textures/TileSetImages/TilesetReliefDetail.png differ
diff --git a/ZoFo/Content/Textures/TileSetImages/TilesetTowers.png b/ZoFo/Content/Textures/TileSetImages/TilesetTowers.png
new file mode 100644
index 0000000..19c4a84
Binary files /dev/null and b/ZoFo/Content/Textures/TileSetImages/TilesetTowers.png differ
diff --git a/ZoFo/Content/Textures/TileSetImages/TilesetVillageAbandoned.png b/ZoFo/Content/Textures/TileSetImages/TilesetVillageAbandoned.png
new file mode 100644
index 0000000..541b26a
Binary files /dev/null and b/ZoFo/Content/Textures/TileSetImages/TilesetVillageAbandoned.png differ
diff --git a/ZoFo/Content/Textures/TileSetImages/TilesetWater.png b/ZoFo/Content/Textures/TileSetImages/TilesetWater.png
new file mode 100644
index 0000000..34127e4
Binary files /dev/null and b/ZoFo/Content/Textures/TileSetImages/TilesetWater.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/Content/sounds/Loot.wav b/ZoFo/Content/sounds/Loot.wav
new file mode 100644
index 0000000..a382185
Binary files /dev/null and b/ZoFo/Content/sounds/Loot.wav differ
diff --git a/ZoFo/Content/sounds/Odevanie odezdi.wav b/ZoFo/Content/sounds/Odevanie odezdi.wav
new file mode 100644
index 0000000..348d8e0
Binary files /dev/null and b/ZoFo/Content/sounds/Odevanie odezdi.wav differ
diff --git a/ZoFo/Content/sounds/Pieot wodichky.wav b/ZoFo/Content/sounds/Pieot wodichky.wav
new file mode 100644
index 0000000..3105cdb
Binary files /dev/null and b/ZoFo/Content/sounds/Pieot wodichky.wav differ
diff --git a/ZoFo/Content/sounds/Sshetchik geigera.wav b/ZoFo/Content/sounds/Sshetchik geigera.wav
new file mode 100644
index 0000000..c57f374
Binary files /dev/null and b/ZoFo/Content/sounds/Sshetchik geigera.wav differ
diff --git a/ZoFo/Content/sounds/Tabletki 2.wav b/ZoFo/Content/sounds/Tabletki 2.wav
new file mode 100644
index 0000000..166f3ca
Binary files /dev/null and b/ZoFo/Content/sounds/Tabletki 2.wav differ
diff --git a/ZoFo/Content/sounds/Zombi napal.wav b/ZoFo/Content/sounds/Zombi napal.wav
new file mode 100644
index 0000000..df0b208
Binary files /dev/null and b/ZoFo/Content/sounds/Zombi napal.wav differ
diff --git a/ZoFo/Content/sounds/Zombi stoit.wav b/ZoFo/Content/sounds/Zombi stoit.wav
new file mode 100644
index 0000000..7b64f89
Binary files /dev/null and b/ZoFo/Content/sounds/Zombi stoit.wav differ
diff --git a/ZoFo/Game1.cs b/ZoFo/Game1.cs
deleted file mode 100644
index 3c35539..0000000
--- a/ZoFo/Game1.cs
+++ /dev/null
@@ -1,52 +0,0 @@
-using Microsoft.Xna.Framework;
-using Microsoft.Xna.Framework.Graphics;
-using Microsoft.Xna.Framework.Input;
-
-namespace ZoFo;
-
-public class Game1 : Game
-{
- private GraphicsDeviceManager _graphics;
- private SpriteBatch _spriteBatch;
-
- public Game1()
- {
- _graphics = new GraphicsDeviceManager(this);
- Content.RootDirectory = "Content";
- IsMouseVisible = true;
- }
-
- protected override void Initialize()
- {
- // TODO: Add your initialization logic here
-
- base.Initialize();
- }
-
- protected override void LoadContent()
- {
- _spriteBatch = new SpriteBatch(GraphicsDevice);
-
- // TODO: use this.Content to load your game content here
- }
-
- protected override void Update(GameTime gameTime)
- {
- if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed ||
- Keyboard.GetState().IsKeyDown(Keys.Escape))
- Exit();
-
- // TODO: Add your update logic here
-
- base.Update(gameTime);
- }
-
- protected override void Draw(GameTime gameTime)
- {
- GraphicsDevice.Clear(Color.CornflowerBlue);
-
- // TODO: Add your drawing code here
-
- base.Draw(gameTime);
- }
-}
\ No newline at end of file
diff --git a/ZoFo/GameCore/Client.cs b/ZoFo/GameCore/Client.cs
new file mode 100644
index 0000000..7274abf
--- /dev/null
+++ b/ZoFo/GameCore/Client.cs
@@ -0,0 +1,191 @@
+
+using System.Collections.Generic;
+using System.Text.Json;
+using ZoFo.GameCore.GameManagers.NetworkManager;
+using ZoFo.GameCore.GameManagers.NetworkManager.Updates;
+
+using Microsoft.Xna.Framework;
+using Microsoft.Xna.Framework.Graphics;
+using System;
+using ZoFo.GameCore.GameObjects;
+using ZoFo.GameCore.GameObjects.MapObjects;
+using ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient;
+using System.Drawing;
+using System.Reflection;
+using ZoFo.GameCore.GameObjects.Entities;
+using System.Net.Sockets;
+using System.Net;
+using ZoFo.GameCore.GameManagers;
+using ZoFo.GameCore.GameManagers.NetworkManager.Updates.ClientToServer;
+using ZoFo.GameCore.GameObjects.Entities.LivingEntities.Player;
+using System.Linq;
+using System.Web;
+using ZoFo.GameCore.GUI;
+using ZoFo.GameCore.GameObjects.Entities.Interactables.Collectables;
+using ZoFo.GameCore.GameObjects.MapObjects.StopObjects;
+using ZoFo.GameCore.GameObjects.Entities.LivingEntities.Enemies;
+using Newtonsoft.Json.Linq;
+using Newtonsoft.Json;
+namespace ZoFo.GameCore
+{
+ public class Client
+ {
+ #region Network part
+
+ ClientNetworkManager networkManager;
+
+ public bool IsConnected { get { return networkManager.IsConnected; } }
+ public IPEndPoint InfoConnect => networkManager.InfoConnect;
+
+ public Client()
+ {
+ networkManager = new ClientNetworkManager();
+ networkManager.GetDataSent += OnDataSend;
+
+ // Подписка на действия инпутменеджера.
+ // Отправляются данные апдейтса с обновлением инпута
+ AppManager.Instance.InputManager.ActionEvent += () =>
+ {
+ networkManager.AddData(new UpdateInput()
+ {
+ InputMovementDirection = AppManager.Instance.InputManager.InputMovementDirection,
+ InputAttackDirection = AppManager.Instance.InputManager.InputAttackDirection
+ });
+ };
+ }
+
+ public void OnDataSend(string data)
+ {
+ //List updateDatas = JsonSerializer.Deserialize>(data);
+ JArray jToken = JsonConvert.DeserializeObject(data) as JArray;
+
+ //string[] brands = jToken.SelectToken("")?.ToObject();
+ foreach (JToken update in jToken.Children())
+ {
+ string a = update.ToString();
+ UpdateTileCreated u = System.Text.Json.JsonSerializer.Deserialize(a);
+ }
+ // тут будет switch
+ AppManager.Instance.debugHud.Log(data);
+ //foreach (var item in updateDatas)
+ //{
+ // GotData(item);
+ //}
+
+ }
+ public void GameEndedUnexpectedly() { }
+
+ public void JoinRoom(string ip, int port)
+ {
+ networkManager.JoinRoom(ip, port);
+ }
+ public void JoinYourself(int port) { networkManager.JoinYourself(port); }
+
+ #endregion
+
+ List mapObjects = new List();
+ List gameObjects = new List();
+ List players = new List();
+ List stopObjects = new List();
+ ///
+ /// Клиент должен обнговлять игру анимаций
+ ///
+ ///
+ internal void Update(GameTime gameTime)
+ {
+ for (int i = 0; i < gameObjects.Count; i++)
+ {
+ AppManager.Instance.debugHud.Set("GameTime", gameTime.TotalGameTime.ToString());
+ 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 < stopObjects.Count; i++)
+ {
+ stopObjects[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.GetPoint().ToVector2(),
+ (update as UpdateTileCreated).sourceRectangle.GetRectangle(),
+ (update as UpdateTileCreated).tileSetName
+ ));
+ }
+ //else if (update is UpdateStopObjectCreated)
+ //{
+ // stopObjects.Add(
+ // new StopObject(
+ // (update as UpdateStopObjectCreated).Position,
+ // (update as UpdateStopObjectCreated).Size.ToVector2(),
+ // (update as UpdateStopObjectCreated).sourceRectangle,
+ // (update as UpdateStopObjectCreated).tileSetName
+ // ));
+ //}
+ else if (update is UpdateGameObjectCreated)
+ {
+ GameObject created_gameObject;
+ if ((update as UpdateGameObjectCreated).GameObjectType == "EntittyForAnimationTests")
+ gameObjects.Add(new EntittyForAnimationTests((update as UpdateGameObjectCreated).position));
+ if ((update as UpdateGameObjectCreated).GameObjectType == "Player")
+ {
+ created_gameObject = new Player((update as UpdateGameObjectCreated).position);
+ players.Add(created_gameObject as Player);
+ gameObjects.Add(created_gameObject);
+ }
+ if ((update as UpdateGameObjectCreated).GameObjectType == "Ammo")
+ gameObjects.Add(new Ammo((update as UpdateGameObjectCreated).position));
+ if ((update as UpdateGameObjectCreated).GameObjectType == "Zombie")
+ gameObjects.Add(new Zombie((update as UpdateGameObjectCreated).position));
+
+
+ (gameObjects.Last() as Entity).SetIdByClient((update as UpdateGameObjectCreated).IdEntity);
+ //var a = Assembly.GetAssembly(typeof(GameObject));
+ //gameObjects.Add( TODO reflection
+ //Activator.CreateInstance(Type.GetType("ZoFo.GameCore.GameObjects.Entities.EntittyForAnimationTests")
+ ///*(update as UpdateGameObjectCreated).GameObjectType*/, new []{ new Vector2(100, 100) })
+ //as GameObject
+ //);
+ }
+ else if (update is UpdatePosition)
+ {
+ var ent = FindEntityById(update.IdEntity);
+
+ ent.position = (update as UpdatePosition).NewPosition;
+ DebugHUD.Instance.Log("newPosition " + ent.position);
+ }
+ }
+
+
+ public Entity FindEntityById(int id)
+ {
+ for (int i = 0; i < gameObjects.Count; i++)
+ {
+ if (gameObjects[i] is Entity)
+ {
+ if ((gameObjects[i] as Entity).Id == id)
+ {
+ return gameObjects[i] as Entity;
+ }
+ }
+ }
+ return null;
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/ZoFo/GameCore/GUI/AbstractGUI.cs b/ZoFo/GameCore/GUI/AbstractGUI.cs
index 5208c96..e8ceb33 100644
--- a/ZoFo/GameCore/GUI/AbstractGUI.cs
+++ b/ZoFo/GameCore/GUI/AbstractGUI.cs
@@ -1,6 +1,58 @@
-namespace ZoFo.GameCore.GUI;
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Xml;
+using Microsoft.Xna.Framework;
+using Microsoft.Xna.Framework.Content;
+using Microsoft.Xna.Framework.Graphics;
+using Microsoft.Xna.Framework.Input;
+using MonogameLibrary.UI.Base;
+using MonogameLibrary.UI.Elements;
+using ZoFo.GameCore.GameManagers;
-public class AbstractGUI
+namespace ZoFo.GameCore.GUI;
+
+public abstract class AbstractGUI
{
-
+ protected UIManager Manager = new();
+ protected List Elements = new();
+ private List ActiveElements;
+ protected DrawableUIElement SelectedElement;
+ private bool isStartedPrint = false;
+ private bool isPressed = false;
+ private Texture2D mouse;
+ private MouseState mouseState;
+
+ public AbstractGUI()
+ {
+ }
+
+ protected abstract void CreateUI();
+ private GraphicsDevice graphicsDevice;
+ public virtual void Initialize()
+ {
+ Manager.Initialize(AppManager.Instance.GraphicsDevice);
+ CreateUI();
+ }
+
+ public virtual void LoadContent()
+ {
+ Manager.LoadContent(AppManager.Instance.Content, "Font");
+ mouse = AppManager.Instance.Content.Load("Textures/GUI/mouse");
+ }
+
+ public virtual void Update(GameTime gameTime)
+ {
+ Manager.Update(gameTime);
+ mouseState = Mouse.GetState();
+ }
+
+ public virtual void Draw(SpriteBatch spriteBatch)
+ {
+ Manager.Draw(spriteBatch);
+ spriteBatch.Begin();
+ spriteBatch.Draw(mouse, new Rectangle(mouseState.Position.X, mouseState.Position.Y, 20, 40), Color.White);
+ spriteBatch.End();
+ }
}
\ No newline at end of file
diff --git a/ZoFo/GameCore/GUI/BaseGUI.cs b/ZoFo/GameCore/GUI/BaseGUI.cs
new file mode 100644
index 0000000..0949412
--- /dev/null
+++ b/ZoFo/GameCore/GUI/BaseGUI.cs
@@ -0,0 +1,127 @@
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Threading;
+using System.Xml;
+using Microsoft.Xna.Framework;
+using Microsoft.Xna.Framework.Content;
+using Microsoft.Xna.Framework.Graphics;
+using Microsoft.Xna.Framework.Input;
+using MonogameLibrary.UI.Base;
+using MonogameLibrary.UI.Elements;
+using ZoFo.GameCore.GameManagers;
+using ZoFo.GameCore.GameManagers.ItemManager;
+
+
+namespace ZoFo.GameCore.GUI;
+
+public class BaseGUI : AbstractGUI
+{
+ private DrawableUIElement menuBackground;
+ private List ItemDisplayButtonsList;
+ private int buttonIndex = 0;
+ private string textureName;
+
+ protected override void CreateUI()
+ {
+ ItemDisplayButtonsList = new List();
+ int width = AppManager.Instance.CurentScreenResolution.X;
+ int height = AppManager.Instance.CurentScreenResolution.Y;
+ Dictionary playerItems = AppManager.Instance.playerData.items;
+ Dictionary items = AppManager.Instance.ItemManager.tagItemPairs;
+
+ menuBackground = new DrawableUIElement(Manager)
+ {
+ rectangle = new Rectangle(0, 0, width, height), mainColor = Color.White,
+ textureName = "Textures\\GUI\\background\\base"
+ };
+ Elements.Add(menuBackground);
+ menuBackground.LoadTexture(AppManager.Instance.Content);
+
+ Elements.Add(new Label(Manager)
+ {
+ rectangle = new Rectangle(width / 2 - (int)(width / 8), height / 15, (int)(width / 4), (int)(height / 20)),
+ text = "Base", fontColor = Color.Black, mainColor = Color.Transparent, scale = 0.9f,
+ fontName = "Fonts\\Font"
+ });
+
+ DrawableUIElement baseHudBack = new DrawableUIElement(Manager)
+ {
+ rectangle = new Rectangle(width / 2 - (int)(width / 1.5) / 2, height / 2 - (int)(height / 1.5) / 2,
+ (int)(width / 1.5), (int)(height / 1.5)),
+ mainColor = Color.LightGray
+ };
+ Elements.Add(baseHudBack);
+
+ //player itams
+ foreach (var item in playerItems)
+ {
+ textureName = AppManager.Instance.ItemManager.GetItemInfo(item.Key).textureName;
+ var temp = new ItemDisplayLabel(Manager)
+ {
+ rectangle = new Rectangle(width / 2 - (int)(width / 1.5) / 2 + height / 80,
+ height / 2 - (int)(height / 1.5) / 2 + height / 80 + (height / 20 + height / 80) * (buttonIndex),
+ (int)(width / 5), (int)(height / 20)),
+ text1 = item.Key,
+ scale1 = 0.4f,
+ count = item.Value,
+ itemTextureName = textureName,
+ fontColor1 = Color.White,
+ mainColor = Color.Gray,
+ fontName1 = "Fonts\\Font3"
+ };
+ Elements.Add(temp);
+ temp.Initialize();
+ temp.LoadTexture(AppManager.Instance.Content);
+ ItemDisplayButtonsList.Add(temp);
+
+ buttonIndex++;
+ }
+
+ // craftable items
+ buttonIndex = 0;
+ foreach (var item in items)
+ {
+ ItemInfo itemInfo = AppManager.Instance.ItemManager.GetItemInfo(item.Key);
+
+ if (itemInfo.isCraftable)
+ {
+ var temp = new ItemDisplayLabel(Manager)
+ {
+ rectangle = new Rectangle(width / 2 - (int)(width / 1.5) / 2 + height / 40 + width / 5,
+ height / 2 - (int)(height / 1.5) / 2 + height / 80 +
+ (height / 20 + height / 80) * (buttonIndex),
+ (int)(width / 5), (int)(height / 20)),
+ text1 = item.Key,
+ scale1 = 0.4f,
+ count = 0,
+ itemTextureName = itemInfo.textureName,
+ fontColor1 = Color.White,
+ mainColor = Color.Gray,
+ fontName1 = "Fonts\\Font3"
+ };
+ Elements.Add(temp);
+ temp.Initialize();
+ temp.LoadTexture(AppManager.Instance.Content);
+ ItemDisplayButtonsList.Add(temp);
+
+ buttonIndex++;
+ }
+ }
+
+ 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"
+ };
+ Elements.Add(bTExit);
+ bTExit.LeftButtonPressed += () => { AppManager.Instance.SetGUI(new MainMenuGUI()); };
+ }
+
+ public override void Update(GameTime gameTime)
+ {
+ base.Update(gameTime);
+ }
+}
\ No newline at end of file
diff --git a/ZoFo/GameCore/GUI/DebugHUD.cs b/ZoFo/GameCore/GUI/DebugHUD.cs
new file mode 100644
index 0000000..294530a
--- /dev/null
+++ b/ZoFo/GameCore/GUI/DebugHUD.cs
@@ -0,0 +1,74 @@
+using System.Collections.Generic;
+using System.Linq;
+using Microsoft.Xna.Framework;
+using Microsoft.Xna.Framework.Graphics;
+using MonogameLibrary.UI.Elements;
+using static System.String;
+using ZoFo.GameCore.GameManagers;
+
+namespace ZoFo.GameCore.GUI;
+
+public class DebugHUD
+{
+ private SpriteFont _spriteFont;
+ private Dictionary _text = new();
+ private List _log = new();
+ public static DebugHUD Instance { get; private set; }
+
+ public void Initialize()
+ {
+ Instance = this;
+ }
+
+ public void LoadContent()
+ {
+ _spriteFont = AppManager.Instance.Content.Load("Fonts/Font2");
+ }
+
+ public void Update(GameTime gameTime)
+ {
+ }
+
+ public void Draw(SpriteBatch spriteBatch)
+ {
+ var keysString = Join("\n", _text.Select(el => el.Key + ": " + el.Value).ToList());
+ spriteBatch.Begin();
+ spriteBatch.DrawString(
+ _spriteFont,
+ keysString,
+ new Vector2(10, 10),
+ Color.Cyan,
+ 0,
+ Vector2.Zero,
+ 1,
+ SpriteEffects.None,
+ 0
+ );
+ spriteBatch.DrawString(
+ _spriteFont,
+ Join("\n", _log),
+ new Vector2(10, 10 + _spriteFont.MeasureString(keysString).Y),
+ Color.Green,
+ 0,
+ Vector2.Zero,
+ 1,
+ SpriteEffects.None,
+ 0
+ );
+ spriteBatch.End();
+ }
+
+ public void Set(string key, string value)
+ {
+ _text[key] = value;
+ }
+
+ public void Log(string value)
+ {
+ _log.Add(value);
+ if (_log.Count > 30)
+ {
+ _log.RemoveAt(0);
+ }
+ }
+}
\ No newline at end of file
diff --git a/ZoFo/GameCore/GUI/GameEndedGUI.cs b/ZoFo/GameCore/GUI/GameEndedGUI.cs
new file mode 100644
index 0000000..03897ea
--- /dev/null
+++ b/ZoFo/GameCore/GUI/GameEndedGUI.cs
@@ -0,0 +1,27 @@
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Xml;
+using Microsoft.Xna.Framework;
+using Microsoft.Xna.Framework.Content;
+using Microsoft.Xna.Framework.Graphics;
+using Microsoft.Xna.Framework.Input;
+using MonogameLibrary.UI.Base;
+using MonogameLibrary.UI.Elements;
+
+namespace ZoFo.GameCore.GUI;
+
+public class GameEndedGUI : AbstractGUI
+{
+ protected override void CreateUI()
+ {
+ // int width = AppManager.Instance.inGameHUDHelperResolution.X;
+ // int height = AppManager.Instance.inGameHUDHelperResolution.Y;
+ }
+
+ public override void Update(GameTime gameTime)
+ {
+
+ }
+}
\ No newline at end of file
diff --git a/ZoFo/GameCore/GUI/HUD.cs b/ZoFo/GameCore/GUI/HUD.cs
new file mode 100644
index 0000000..745453a
--- /dev/null
+++ b/ZoFo/GameCore/GUI/HUD.cs
@@ -0,0 +1,35 @@
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Xml;
+using Microsoft.Xna.Framework;
+using Microsoft.Xna.Framework.Content;
+using Microsoft.Xna.Framework.Graphics;
+using Microsoft.Xna.Framework.Input;
+using MonogameLibrary.UI.Base;
+using MonogameLibrary.UI.Elements;
+using ZoFo.GameCore.GameManagers;
+
+namespace ZoFo.GameCore.GUI;
+
+public class HUD : AbstractGUI
+{
+ protected override void CreateUI()
+ {
+ int width = AppManager.Instance.CurentScreenResolution.X;
+ int height = AppManager.Instance.CurentScreenResolution.Y;
+
+ Button pauseButton = 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"};
+ Elements.Add(pauseButton);
+ pauseButton.LeftButtonPressed += () =>
+ {
+ AppManager.Instance.SetGUI(new PauseGUI());
+ };
+ }
+ public override void Update(GameTime gameTime)
+ {
+ base.Update(gameTime);
+ }
+}
\ No newline at end of file
diff --git a/ZoFo/GameCore/GUI/InventoryGUI.cs b/ZoFo/GameCore/GUI/InventoryGUI.cs
new file mode 100644
index 0000000..c085803
--- /dev/null
+++ b/ZoFo/GameCore/GUI/InventoryGUI.cs
@@ -0,0 +1,27 @@
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Xml;
+using Microsoft.Xna.Framework;
+using Microsoft.Xna.Framework.Content;
+using Microsoft.Xna.Framework.Graphics;
+using Microsoft.Xna.Framework.Input;
+using MonogameLibrary.UI.Base;
+using MonogameLibrary.UI.Elements;
+
+namespace ZoFo.GameCore.GUI;
+
+public class InventoryGUI : AbstractGUI
+{
+ protected override void CreateUI()
+ {
+ // int width = AppManager.Instance.inGameHUDHelperResolution.X;
+ // int height = AppManager.Instance.inGameHUDHelperResolution.Y;
+ }
+
+ public override void Update(GameTime gameTime)
+ {
+
+ }
+}
\ No newline at end of file
diff --git a/ZoFo/GameCore/GUI/MainMenuGUI.cs b/ZoFo/GameCore/GUI/MainMenuGUI.cs
new file mode 100644
index 0000000..645faf8
--- /dev/null
+++ b/ZoFo/GameCore/GUI/MainMenuGUI.cs
@@ -0,0 +1,97 @@
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Threading;
+using System.Xml;
+using Microsoft.Xna.Framework;
+using Microsoft.Xna.Framework.Content;
+using Microsoft.Xna.Framework.Graphics;
+using Microsoft.Xna.Framework.Input;
+using MonogameLibrary.UI.Base;
+using MonogameLibrary.UI.Elements;
+using ZoFo.GameCore.GameManagers;
+
+namespace ZoFo.GameCore.GUI;
+
+public class MainMenuGUI : AbstractGUI
+{
+ private DrawableUIElement menuBackground;
+ protected override void CreateUI()
+ {
+ 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/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.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"
+ };
+ playButton.LeftButtonPressed += () =>
+ {
+ AppManager.Instance.SoundManager.StartAmbientSound("Loot");
+ AppManager.Instance.SetGUI(new SelectModeMenu());
+ };
+ Elements.Add(playButton);
+ Button baseButton = new Button(Manager)
+ {
+ rectangle = new Rectangle(width / 2 - (int)(width / 10), height / 3 + (height / 20 + height / 40) * 2, (int)(width / 5), (int)(height / 20)),
+ text = "Base",
+ scale = 0.2f,
+ fontColor = Color.White,
+ mainColor = Color.Gray,
+ fontName = "Fonts\\Font"
+ };
+ baseButton.LeftButtonPressed += () =>
+ {
+ AppManager.Instance.SetGUI(new BaseGUI());
+ };
+ Elements.Add(baseButton);
+ Button optionButton = new Button(Manager)
+ {
+ rectangle = new Rectangle(width / 2 - (int)(width / 10), height / 3 + (height / 20 + height / 40) * 3, (int)(width / 5), (int)(height / 20)),
+ text = "Options",
+ scale = 0.2f,
+ fontColor = Color.White,
+ mainColor = Color.Gray,
+ fontName = "Fonts/Font"
+ };
+ optionButton.LeftButtonPressed += () =>
+ {
+ AppManager.Instance.SoundManager.StartAmbientSound("Loot");
+ AppManager.Instance.SetGUI(new OptionsGUI());
+ };
+ Elements.Add(optionButton);
+ Button exitButton = new Button(Manager)
+ {
+ rectangle = new Rectangle(width / 2 - (int)(width / 10), height / 3 + (height / 20 + height / 40) * 4, (int)(width / 5), (int)(height / 20)),
+ text = "Exit",
+ scale = 0.2f,
+ fontColor = Color.White,
+ mainColor = Color.Gray,
+ fontName = "Fonts/Font"
+ };
+ exitButton.LeftButtonPressed += () =>
+ {
+ AppManager.Instance.Exit();
+ };
+ Elements.Add(exitButton);
+
+
+ }
+ public override void Update(GameTime gameTime)
+ {
+ base.Update(gameTime);
+ }
+}
\ No newline at end of file
diff --git a/ZoFo/GameCore/GUI/OptionsGUI.cs b/ZoFo/GameCore/GUI/OptionsGUI.cs
new file mode 100644
index 0000000..39db371
--- /dev/null
+++ b/ZoFo/GameCore/GUI/OptionsGUI.cs
@@ -0,0 +1,132 @@
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Xml;
+using Microsoft.Xna.Framework;
+using Microsoft.Xna.Framework.Content;
+using Microsoft.Xna.Framework.Graphics;
+using Microsoft.Xna.Framework.Input;
+using MonogameLibrary.UI.Base;
+using MonogameLibrary.UI.Elements;
+using ZoFo.GameCore.GameManagers;
+
+namespace ZoFo.GameCore.GUI;
+
+public class OptionsGUI : AbstractGUI
+{
+ private DrawableUIElement menuBackground;
+ protected override void CreateUI()
+ {
+ 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/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.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.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 = 7, textureName = "Textures/GUI/Switch_backgrownd", MinValue = 0, MaxValue = 1 };
+ slider_OverallVolume.SetValue(AppManager.Instance.SettingsManager.MainVolume);
+ label_OverallVolume_Percent.text = Math.Round(slider_OverallVolume.GetSliderValue * 100) + "%";
+ 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.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 = 7, textureName = "Textures/GUI/Switch_backgrownd", MinValue = 0, MaxValue = 1 };
+ slider_MusicVolume.SetValue(AppManager.Instance.SettingsManager.MusicVolume);
+ label_MusicVolume_Percent.text = Math.Round(slider_MusicVolume.GetSliderValue * 100) + "%";
+ 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.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 = 7, textureName = "Textures/GUI/Switch_backgrownd", MinValue = 0, MaxValue = 1 };
+ slider_EffectsVolume.SetValue(AppManager.Instance.SettingsManager.SoundEffectsVolume);
+ label_EffectsVolume_Percent.text = Math.Round(slider_EffectsVolume.GetSliderValue * 100) + "%";
+ 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.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) };
+ //button_left_right_mode.Checked += (newCheckState) => { };
+ //Elements.Add(button_left_right_mode);
+
+
+ Label label_IsFullScreen = new Label(Manager)
+ { 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) };
+ button_FullScreen.SetIsChecked(AppManager.Instance.SettingsManager.IsFullScreen);
+ button_FullScreen.Checked += (newCheckState) =>
+ {
+ AppManager.Instance.SettingsManager.SetIsFullScreen(newCheckState);
+ };
+ 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"};
+ Elements.Add(bTExit);
+ bTExit.LeftButtonPressed += () =>
+ {
+ AppManager.Instance.SetGUI(new MainMenuGUI());
+ };
+
+ }
+
+ public override void Update(GameTime gameTime)
+ {
+ base.Update(gameTime);
+ }
+}
\ No newline at end of file
diff --git a/ZoFo/GameCore/GUI/PauseGUI.cs b/ZoFo/GameCore/GUI/PauseGUI.cs
new file mode 100644
index 0000000..d316fb7
--- /dev/null
+++ b/ZoFo/GameCore/GUI/PauseGUI.cs
@@ -0,0 +1,57 @@
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Xml;
+using Microsoft.Xna.Framework;
+using Microsoft.Xna.Framework.Content;
+using Microsoft.Xna.Framework.Graphics;
+using Microsoft.Xna.Framework.Input;
+using MonogameLibrary.UI.Base;
+using MonogameLibrary.UI.Elements;
+using ZoFo.GameCore.GameManagers;
+
+namespace ZoFo.GameCore.GUI;
+
+public class PauseGUI : AbstractGUI
+{
+ protected override void CreateUI()
+ {
+ int width = AppManager.Instance.CurentScreenResolution.X;
+ int height = AppManager.Instance.CurentScreenResolution.Y;
+
+ Button continueButton = new Button(Manager)
+ {
+ rectangle = new Rectangle(width / 2 - (int)(width / 10), height / 3 + height / 20 + height / 40, (int)(width / 5), (int)(height / 20)),
+ text = "Continue",
+ scale = 0.2f,
+ fontColor = Color.White,
+ mainColor = Color.Gray,
+ fontName = "Fonts\\Font"
+ };
+ continueButton.LeftButtonPressed += () =>
+ {
+ AppManager.Instance.SetGUI(new HUD());
+ };
+ Elements.Add(continueButton);
+ Button exitButton = new Button(Manager)
+ {
+ rectangle = new Rectangle(width / 2 - (int)(width / 10), height / 3 + (height / 20 + height / 40) * 2, (int)(width / 5), (int)(height / 20)),
+ text = "Exit",
+ scale = 0.2f,
+ fontColor = Color.White,
+ mainColor = Color.Gray,
+ fontName = "Fonts\\Font"
+ };
+ exitButton.LeftButtonPressed += () =>
+ {
+ AppManager.Instance.SetGUI(new MainMenuGUI());
+ };
+ Elements.Add(exitButton);
+ }
+
+ public override void Update(GameTime gameTime)
+ {
+ base.Update(gameTime);
+ }
+}
\ No newline at end of file
diff --git a/ZoFo/GameCore/GUI/SelectModeMenu.cs b/ZoFo/GameCore/GUI/SelectModeMenu.cs
new file mode 100644
index 0000000..5b1320b
--- /dev/null
+++ b/ZoFo/GameCore/GUI/SelectModeMenu.cs
@@ -0,0 +1,91 @@
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Xml;
+using Microsoft.Xna.Framework;
+using Microsoft.Xna.Framework.Content;
+using Microsoft.Xna.Framework.Graphics;
+using Microsoft.Xna.Framework.Input;
+using MonogameLibrary.UI.Base;
+using MonogameLibrary.UI.Elements;
+using ZoFo.GameCore.GameManagers;
+
+namespace ZoFo.GameCore.GUI;
+
+public class SelectModeMenu : AbstractGUI
+{
+ private DrawableUIElement menuBackground;
+ protected override void CreateUI()
+ {
+ 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" };
+ 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"});
+
+ Button singleButton = new Button(Manager)
+ {
+ rectangle = new Rectangle(width / 4 - (width / 7) / 2, height / 2, (int)(width / 7), (int)(height / 20)),
+ text = "singleplayer",
+ scale = 0.3f,
+ fontColor = Color.White,
+ mainColor = Color.Gray,
+ fontName = "Fonts/Font"
+ };
+ singleButton.LeftButtonPressed += () =>
+ {
+ // single
+ Server server = new Server();
+ Client client = new Client();
+ server.CreateRoom(1);
+ client.JoinYourself(server.MyIp.Port);
+ 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");
+ // ваш код здесь
+ };
+ Elements.Add(singleButton);
+ Button optionButton = new Button(Manager)
+ {
+ rectangle = new Rectangle(width / 2 + width / 4 - (width / 7) / 2, height / 2, (int)(width / 7), (int)(height / 20)),
+ text = "multiplayer",
+ scale = 0.3f,
+ fontColor = Color.White,
+ mainColor = Color.Gray,
+ fontName = "Fonts/Font"
+ };
+ optionButton.LeftButtonPressed += () =>
+ {
+ AppManager.Instance.SetGUI(new SelectingServerGUI());
+ // multi
+
+ // ваш код здесь
+ };
+ 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"};
+ Elements.Add(bTExit);
+ bTExit.LeftButtonPressed += () =>
+ {
+ AppManager.Instance.SetGUI(new MainMenuGUI());
+ };
+ }
+
+ public override void Update(GameTime gameTime)
+ {
+ base.Update(gameTime);
+ }
+}
\ No newline at end of file
diff --git a/ZoFo/GameCore/GUI/SelectingServerGUI.cs b/ZoFo/GameCore/GUI/SelectingServerGUI.cs
new file mode 100644
index 0000000..9460341
--- /dev/null
+++ b/ZoFo/GameCore/GUI/SelectingServerGUI.cs
@@ -0,0 +1,130 @@
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Net;
+using System.Xml;
+using Microsoft.Xna.Framework;
+using Microsoft.Xna.Framework.Content;
+using Microsoft.Xna.Framework.Graphics;
+using Microsoft.Xna.Framework.Input;
+using MonogameLibrary.UI.Base;
+using MonogameLibrary.UI.Elements;
+using ZoFo.GameCore.GameManagers;
+
+namespace ZoFo.GameCore.GUI;
+
+public class SelectingServerGUI : AbstractGUI
+{
+ private DrawableUIElement menuBackground;
+ protected override void CreateUI()
+ {
+ 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" };
+ 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" });
+
+ TextBox ipBox = new TextBox(Manager)
+ {
+ rectangle = new Rectangle(width / 4 - (width / 4) / 2, height / 4, (int)(width / 4), (int)(height / 20)),
+ text = "ip",
+ scale = 0.5f,
+ fontColor = Color.White,
+ mainColor = Color.Gray,
+ textAligment = MonogameLibrary.UI.Enums.TextAligment.Left,
+ fontName = "Fonts/Font3"
+ };
+ ipBox.TextChanged += input =>
+ {
+ if (input == "ip")
+ {
+ ipBox.text = ""; ipBox.fontColor = Color.White;
+ }
+ };
+ ipBox.StopChanging += input =>
+ {
+ if (input.Length == 0)
+ {
+ ipBox.fontColor = Color.White;
+ ipBox.text = "ip";
+ }
+ };
+ Elements.Add(ipBox);
+ Button joinButton = new Button(Manager)
+ {
+ rectangle = new Rectangle(width / 4 + (width / 4) / 2, height / 4, (int)(width / 15), (int)(height / 20)),
+ text = "Join",
+ scale = 0.3f,
+ fontColor = Color.White,
+ mainColor = Color.Gray,
+ fontName = "Fonts/Font"
+ };
+ joinButton.LeftButtonPressed += () =>
+ {
+
+ // join
+ Client client = new Client();
+ var endpoint = ipBox.text.Split(':');
+ int port;
+ try
+ {
+ if (int.TryParse(endpoint[1], out port))
+ {
+ client.JoinRoom(endpoint[0], port);
+ AppManager.Instance.SetClient(client);
+ AppManager.Instance.SetGUI(new WaitingForPlayersGUI(false));
+ }
+ }
+ catch (Exception)
+ {
+
+ // throw;
+ }
+
+ // ваш код здесь
+ };
+ Elements.Add(joinButton);
+ Button hostButton = new Button(Manager)
+ {
+ rectangle = new Rectangle(width / 4 + (width / 4) / 2 + (width / 15), height / 4, (int)(width / 15), (int)(height / 20)),
+ text = "Host",
+ scale = 0.3f,
+ fontColor = Color.White,
+ mainColor = Color.Gray,
+ fontName = "Fonts/Font"
+ };
+ hostButton.LeftButtonPressed += () =>
+ {
+
+ // host
+ Server server = new Server(); //Server Logic MultiPlayer
+ Client client = new Client();
+ server.CreateRoom(2);
+ client.JoinYourself(server.MyIp.Port);
+ AppManager.Instance.SetServer(server);
+ AppManager.Instance.SetClient(client);
+ string key = server.MyIp.ToString();
+ AppManager.Instance.debugHud.Set(key, "MultiPlayer");
+ // ваш код здесь
+ AppManager.Instance.SetGUI(new WaitingForPlayersGUI(true));
+ };
+ 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" };
+ Elements.Add(bTExit);
+ bTExit.LeftButtonPressed += () =>
+ {
+ AppManager.Instance.SetGUI(new SelectModeMenu());
+ };
+ }
+
+ public override void Update(GameTime gameTime)
+ {
+ base.Update(gameTime);
+ }
+}
\ No newline at end of file
diff --git a/ZoFo/GameCore/GUI/WaitingForPlayersGUI.cs b/ZoFo/GameCore/GUI/WaitingForPlayersGUI.cs
new file mode 100644
index 0000000..2764fb1
--- /dev/null
+++ b/ZoFo/GameCore/GUI/WaitingForPlayersGUI.cs
@@ -0,0 +1,94 @@
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Xml;
+using Microsoft.Xna.Framework;
+using Microsoft.Xna.Framework.Content;
+using Microsoft.Xna.Framework.Graphics;
+using Microsoft.Xna.Framework.Input;
+using MonogameLibrary.UI.Base;
+using MonogameLibrary.UI.Elements;
+using ZoFo.GameCore.GameManagers;
+
+namespace ZoFo.GameCore.GUI;
+
+public class WaitingForPlayersGUI : AbstractGUI
+{
+ private DrawableUIElement menuBackground;
+ private bool isHost;
+ private Label ip;
+
+ public WaitingForPlayersGUI(bool isHost)
+ {
+ this.isHost = isHost;
+ }
+ protected override void CreateUI()
+ {
+ 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" };
+ Elements.Add(menuBackground);
+ menuBackground.LoadTexture(AppManager.Instance.Content);
+ // string pcIp =
+
+ // string pcIp =
+ ip = new Label(Manager) { rectangle = new Rectangle(width / 2 - (int)(width / 8), height / 7, (int)(width / 4), (int)(height / 20)), text = AppManager.Instance.server.MyIp.ToString(), fontColor = Color.White, mainColor = Color.Transparent, scale = 0.9f, fontName = "Fonts/Font3" };
+ Elements.Add(ip);
+ if (isHost)
+ {
+ ip = new Label(Manager) { rectangle = new Rectangle(width / 2 - (int)(width / 8), height / 7, (int)(width / 4), (int)(height / 20)), text = AppManager.Instance.server.MyIp.ToString(), fontColor = Color.White, mainColor = Color.Transparent, scale = 0.9f, fontName = "Fonts\\Font3" };
+ Elements.Add(ip);
+ Button startButton = new Button(Manager)
+ {
+ rectangle = new Rectangle(width / 2 - (width / 15) / 2, height / 2 + height / 4, (int)(width / 15), (int)(height / 20)),
+ text = "Start",
+ scale = 0.3f,
+ fontColor = Color.White,
+ mainColor = Color.Gray,
+ fontName = "Fonts/Font"
+ };
+ startButton.LeftButtonPressed += () =>
+ {
+ // start
+ AppManager.Instance.ChangeState(GameState.HostPlaying);
+ // ваш код здесь
+ };
+ Elements.Add(startButton);
+ }
+ else {
+ ip = new Label(Manager) { rectangle = new Rectangle(width / 2 - (int)(width / 8), height / 7, (int)(width / 4), (int)(height / 20)), text = AppManager.Instance.client.InfoConnect.ToString(), fontColor = Color.White, mainColor = Color.Transparent, scale = 0.9f, fontName = "Fonts\\Font3" };
+ Elements.Add(ip);
+ Button waitButton = new Button(Manager)
+ {
+ rectangle = new Rectangle(width / 2 - (width / 15) / 2, height / 2 + height / 4, (int)(width / 15), (int)(height / 20)),
+ text = "WAITING",
+ scale = 0.3f,
+ fontColor = Color.White,
+ mainColor = Color.Gray,
+ fontName = "Fonts/Font"
+ };
+ waitButton.LeftButtonPressed += () =>
+ {
+ // start
+ AppManager.Instance.ChangeState(GameState.ClientPlaying);
+ // ваш код здесь
+ };
+ Elements.Add(waitButton);
+ }
+
+ 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"};
+ Elements.Add(bTExit);
+ bTExit.LeftButtonPressed += () =>
+ {
+ AppManager.Instance.SetGUI(new SelectingServerGUI());
+ };
+ }
+
+ public override void Update(GameTime gameTime)
+ {
+ base.Update(gameTime);
+ }
+}
\ No newline at end of file
diff --git a/ZoFo/GameCore/GameManagers/AppManager.cs b/ZoFo/GameCore/GameManagers/AppManager.cs
new file mode 100644
index 0000000..b129359
--- /dev/null
+++ b/ZoFo/GameCore/GameManagers/AppManager.cs
@@ -0,0 +1,185 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Reflection.Metadata;
+using System.Text;
+using System.Threading.Tasks;
+using ZoFo.GameCore.Graphics;
+using Microsoft.Xna.Framework;
+using Microsoft.Xna.Framework.Graphics;
+using Microsoft.Xna.Framework.Input;
+using ZoFo.GameCore.GameManagers.ItemManager;
+using ZoFo.GameCore.GUI;
+using static System.Collections.Specialized.BitVector32;
+using MonogameLibrary.UI.Base;
+using ZoFo.GameCore.GameObjects;
+
+namespace ZoFo.GameCore.GameManagers
+{
+ public enum GameState { NotPlaying, HostPlaying, ClientPlaying }
+ public class AppManager : Game
+ {
+ private GraphicsDeviceManager _graphics;
+ private SpriteBatch _spriteBatch;
+
+
+
+ public static AppManager Instance { get; private set; }
+ public GameState gamestate;
+ public AbstractGUI currentGUI;
+ public DebugHUD debugHud;
+ public Point CurentScreenResolution;
+ public Client client;
+ public Server server;
+ public PlayerData playerData;
+
+
+ #region Managers
+
+ public InputManager InputManager;
+ public ItemManager.ItemManager ItemManager;
+ public SettingsManager SettingsManager;
+ public SoundManager SoundManager;
+
+ public AnimationBuilder animationBuilder { get; set; }
+
+ #endregion
+
+ public AppManager()
+ {
+ _graphics = new GraphicsDeviceManager(this);
+ CurentScreenResolution = new Point(GraphicsAdapter.DefaultAdapter.CurrentDisplayMode.Width, GraphicsAdapter.DefaultAdapter.CurrentDisplayMode.Height);
+ SetResolution(CurentScreenResolution.X, CurentScreenResolution.Y);
+ //FulscrreenSwitch();
+
+
+ Content.RootDirectory = "Content";
+ IsMouseVisible = true;
+
+ playerData = new PlayerData();
+ ItemManager = new ItemManager.ItemManager();
+ Instance = this;
+ InputManager = new InputManager();
+ SettingsManager = new SettingsManager();
+ SettingsManager.LoadSettings();
+ SoundManager = new SoundManager();
+ SoundManager.LoadSounds();
+
+
+ currentGUI = new MainMenuGUI();
+ debugHud = new DebugHUD();
+ IsMouseVisible = false;
+
+ }
+
+ protected override void Initialize()
+ {
+ currentGUI.Initialize();
+
+ debugHud.Initialize();
+ ItemManager.Initialize();
+
+
+ base.Initialize();
+ }
+
+ protected override void LoadContent()
+ {
+ _spriteBatch = new SpriteBatch(GraphicsDevice);
+ debugHud.LoadContent();
+ currentGUI.LoadContent();
+ ItemManager.LoadItemTextures();
+
+
+
+ animationBuilder = new AnimationBuilder();
+ animationBuilder.LoadAnimations();
+ GameObject.debugTexture = new Texture2D(GraphicsDevice, 1, 1);
+ GameObject.debugTexture.SetData(new Color[] { Color.White });
+ }
+
+ protected override void Update(GameTime gameTime)
+ {
+ if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed ||
+ Keyboard.GetState().IsKeyDown(Keys.Escape)) { server.CloseConnection(); Exit(); }
+
+
+ // debugHud.Set("key", "value");
+
+ InputManager.Update();
+ currentGUI.Update(gameTime);
+ switch (gamestate)
+ {
+ case GameState.NotPlaying:
+ break;
+ case GameState.HostPlaying:
+ server.Update(gameTime);
+ client.Update(gameTime);
+ break;
+ case GameState.ClientPlaying:
+ client.Update(gameTime);
+ break;
+ default:
+ break;
+ }
+
+ base.Update(gameTime);
+ }
+
+ protected override void Draw(GameTime gameTime)
+ {
+ GraphicsDevice.Clear(Color.CornflowerBlue);
+
+
+ // Pointwrap
+ _spriteBatch.Begin(samplerState: SamplerState.PointWrap);
+ switch (gamestate)
+ {
+ case GameState.ClientPlaying:
+ case GameState.HostPlaying:
+ client.Draw(_spriteBatch);
+ break;
+ case GameState.NotPlaying:
+ default:
+ break;
+ }
+
+ _spriteBatch.End();
+ currentGUI.Draw(_spriteBatch);
+ debugHud.Draw(_spriteBatch);
+
+ base.Draw(gameTime);
+ }
+ public void ChangeState(GameState gameState)
+ {
+ this.gamestate = gameState;
+ }
+ public void SetGUI(AbstractGUI gui)
+ {
+ currentGUI = gui;
+ currentGUI.Initialize();
+ currentGUI.LoadContent();
+
+ //TODO
+ }
+
+ public void GameEnded(Dictionary lootIGot)
+ {
+ //TODO
+ }
+
+ public void SetResolution(int x, int y)
+ {
+ _graphics.PreferredBackBufferWidth = x;
+ _graphics.PreferredBackBufferHeight = y;
+ }
+
+ public void FulscrreenSwitch()
+ {
+ _graphics.IsFullScreen = !_graphics.IsFullScreen;
+ }
+
+ public void SetServer(Server server) { this.server = server; }
+ public void SetClient(Client client) { this.client = client; }
+ }
+}
diff --git a/ZoFo/GameCore/GameManagers/CollisionManager/CollisionComponent.cs b/ZoFo/GameCore/GameManagers/CollisionManager/CollisionComponent.cs
new file mode 100644
index 0000000..fa9f9d6
--- /dev/null
+++ b/ZoFo/GameCore/GameManagers/CollisionManager/CollisionComponent.cs
@@ -0,0 +1,70 @@
+using Microsoft.Win32;
+using Microsoft.Xna.Framework;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Reflection.Metadata;
+using System.Text;
+using System.Threading.Tasks;
+using ZoFo.GameCore.GameObjects;
+using ZoFo.GameCore.GameObjects.Entities.LivingEntities.Player;
+
+namespace ZoFo.GameCore.GameManagers.CollisionManager
+{
+ public class CollisionComponent
+ {
+ //==КОНСТРУКТОР==
+ public CollisionComponent(GameObject gameObject)
+ {
+
+ this.gameObject = gameObject;
+ hasCollision = false;
+ this.isTrigger = false;
+ }
+
+ public CollisionComponent(GameObject gameObject, bool hasCollision = false, Rectangle? collisionRectangle = null, bool isTrigger = false, Rectangle? triggerRectangle = null)
+ {
+ this.gameObject = gameObject;
+
+ this.hasCollision = hasCollision;
+ this.isTrigger = isTrigger;
+ if (hasCollision)
+ this.stopRectangle = collisionRectangle.Value;
+ if (isTrigger)
+ this.triggerRectangle = triggerRectangle.Value;
+
+
+
+
+ }
+
+ //==ПОЛЯ==
+
+ public GameObject gameObject { get; set; }
+
+
+ bool doesStop;
+ bool hasCollision;
+ public Rectangle stopRectangle;
+
+ // triggers for rectangle
+ bool isTrigger;
+ public Rectangle triggerRectangle;
+
+ //delegate
+ public delegate void EventHandler(object sender, EventArgs e);
+
+
+
+
+ //events DoorInteraction
+ public event EventHandler OnTriggerEnter;
+ public event EventHandler OnTriggerZone;
+ public event EventHandler OnTriggerExit;
+
+ public event EventHandler OnCollision;
+
+
+
+ }
+}
diff --git a/ZoFo/GameCore/GameManagers/CollisionManager/CollisionManager.cs b/ZoFo/GameCore/GameManagers/CollisionManager/CollisionManager.cs
new file mode 100644
index 0000000..25736fe
--- /dev/null
+++ b/ZoFo/GameCore/GameManagers/CollisionManager/CollisionManager.cs
@@ -0,0 +1,153 @@
+using Microsoft.VisualBasic;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using ZoFo.GameCore.GameObjects;
+using ZoFo.GameCore.GameManagers.CollisionManager;
+using Microsoft.Xna.Framework;
+using ZoFo.GameCore.GameManagers.MapManager.MapElements;
+using ZoFo.GameCore.GameObjects.Entities;
+using ZoFo.GameCore.GameObjects.Entities.LivingEntities;
+using ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient;
+using ZoFo.GameCore.Graphics;
+
+namespace ZoFo.GameCore.GameManagers.CollisionManager
+{
+ public class CollisionManager
+ {
+ //листики
+
+ public List ObjectsWithCollisions;
+ public List EntitiesWithMovements;
+ public List ObjectsWithTriggers;
+
+
+ //чекаем коллизии в листе
+ public void CheckComponentCollision(CollisionComponent componentOfEntity)
+ {
+ var entity = componentOfEntity.gameObject as LivingEntity;
+ //for (int i = 0; i < ObjectsWithCollisions.Count; i++)
+ //{
+ var currentRect = entity.collisionComponent.stopRectangle;//задаём РЕК
+ currentRect.X+=(int)entity.position.X;
+ currentRect.Y+=(int)entity.position.Y;
+
+ var newRect = currentRect; // задаём значение старого РЕК новому РЕК
+
+
+ var collidedX = false; // соприкосновение
+ var tryingRectX = currentRect;//переменная для попытки перемещения по X
+
+ tryingRectX.Offset((int)(entity.velocity.X), 0);//задаём значения для tryingRectX по X и по Y
+
+ foreach (var item in ObjectsWithCollisions)//фильтрация
+ {
+ if (item == componentOfEntity) continue;
+
+ Rectangle rectChecking = item.stopRectangle.SetOrigin(item.gameObject.position);
+ if (Math.Abs(item.gameObject.position.X - componentOfEntity.gameObject.position.X) < 550
+ && Math.Abs(item.gameObject.position.Y - componentOfEntity.gameObject.position.Y) < 550
+ && tryingRectX.Intersects(rectChecking))
+
+ {
+ collidedX = true;// меняем значение соприкосновения на true
+ entity.OnCollision(item);//подписываем entity на ивент коллизии
+
+ break;// выход
+ }
+ }
+
+ if (collidedX)// срабатывает, если перемещение блокируется
+ {
+ entity.velocity.X = 0;// задаём значение смещения entity на 0
+ }
+ else
+ {
+ entity.position.X += entity.velocity.X; //update player position
+ newRect.X = tryingRectX.X;//значение по X для нового РЕК приравниваем к значению испытуемого РЕК
+ }
+
+ //==ПОВТОРЯЕМ ТОЖЕ САМОЕ ДЛЯ Y==
+
+ var collidedY = false; // соприкосновение
+ var tryingRectY = currentRect;//переменная для попытки перемещения по X
+
+ tryingRectY.Offset(new Point(0, (int)entity.velocity.Y));//задаём значения для tryingRectX по X и по Y
+
+ foreach (var item in ObjectsWithCollisions)//фильтрация
+ {
+ if (item == componentOfEntity) continue;
+ Rectangle rectChecking = item.stopRectangle.SetOrigin(item.gameObject.position);
+ if (Math.Abs(item.gameObject.position.X - componentOfEntity.gameObject.position.X) < 550
+ && Math.Abs(item.gameObject.position.Y - componentOfEntity.gameObject.position.Y) < 550
+ && tryingRectY.Intersects(rectChecking))
+
+ {
+ collidedY = true;// меняем значение соприкосновения на true
+ entity.OnCollision(item);//подписываем entity на ивент коллизии
+
+ break;// выход
+ }
+ }
+
+ if (collidedY)// срабатывает, если перемещение блокируется
+ {
+ entity.velocity.Y = 0;// задаём значение смещения entity на 0
+ }
+ else
+ {
+ entity.position.Y += entity.velocity.Y;
+ newRect.Y = tryingRectY.Y;//значение по X для нового РЕК приравниваем к значению испытуемого РЕК
+ }
+
+ entity.graphicsComponent.ObjectDrawRectangle.X = (int)entity.position.X;
+ entity.graphicsComponent.ObjectDrawRectangle.Y = (int)entity.position.Y;
+ AppManager.Instance.server.AddData(new UpdatePosition() { NewPosition = entity.position, IdEntity = entity.Id });
+ AppManager.Instance.debugHud.Set("testPos", entity.position.ToString()); //TODO remove
+ entity.velocity = Vector2.Zero;
+ }
+
+ //обновление позиции объекта
+
+ public void UpdatePositions()
+ {
+ foreach (var item in EntitiesWithMovements)
+ {
+ CheckComponentCollision(item);
+ }
+ }
+
+
+ public CollisionManager()
+ {
+ //graphicsComponent
+ //.ObjectDrawRectangle = new Rectangle(0, 0, 16 * 12, 16 * 16);
+ EntitiesWithMovements = new List();
+ ObjectsWithCollisions = new List();
+ }
+ //регистрация компонента(его коллизии)
+ public void Register(CollisionComponent component)
+ {
+ ObjectsWithCollisions.Add(component);
+ if (component.gameObject is LivingEntity)
+ {
+ EntitiesWithMovements.Add(component);
+ }
+ }
+
+
+
+ }
+ public static class ExtentionClass
+ {
+ public static Rectangle SetOrigin(this Rectangle rectangle, Vector2 origin)
+ {
+ rectangle.X = (int)origin.X;
+ rectangle.Y = (int)origin.Y;
+ return rectangle;
+ }
+ }
+
+}
diff --git a/ZoFo/GameCore/GameManagers/InputManager.cs b/ZoFo/GameCore/GameManagers/InputManager.cs
new file mode 100644
index 0000000..dd13535
--- /dev/null
+++ b/ZoFo/GameCore/GameManagers/InputManager.cs
@@ -0,0 +1,252 @@
+using Microsoft.Xna.Framework;
+using Microsoft.Xna.Framework.Graphics.PackedVector;
+using Microsoft.Xna.Framework.Input;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Formats.Tar;
+using System.Linq;
+using System.Reflection.Metadata.Ecma335;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace ZoFo.GameCore.GameManagers
+{
+ public enum ScopeState { Idle, Left, Right, Straight, Back, StraightLeft, StraightRight, BackLeft, BackRight }
+
+ public class InputManager
+ {
+ public event Action ShootEvent; // событие удара(когда нажат X, событие срабатывает)
+
+ public event Action OnInteract; // событие взаимодействия с collectable(например, лутом)
+ //с помощью кнопки E.
+
+ public event Action ActionEvent;
+ public Vector2 InputMovementDirection;
+ private Vector2 prevInputMovementDirection;
+ public Vector2 InputAttackDirection;
+ private Vector2 prevInputAttackDirection;
+
+ public event Action TalkEvent;
+
+ public ScopeState currentScopeState; // Положение оружия. Left, Right, Straight, Back, StraightLeft, StraightRight, BackLeft, BackRight.
+ private ScopeState prevCurrentScopeState;
+ private bool _cheatsEnabled = false;
+ public bool InvincibilityCheat { get; private set; } = false;
+ public bool CollisionsCheat { get; private set; } = false;
+ public bool InfiniteAmmoCheat { get; private set; } = false;
+
+ private bool isShoot;
+ private bool isInteract;
+
+ private KeyboardState lastKeyboardState;
+ private GamePadState lastGamePadState;
+ public ScopeState ScopeState { get => currentScopeState; }
+ public string currentControlsState;
+ public ScopeState CurrentScopeState { get => currentScopeState; } // получить текущее состояние
+
+ public InputManager()
+ {
+ InputMovementDirection = new Vector2(0, 0);
+ InputAttackDirection = new Vector2(0, 0);
+ this.isShoot = false;
+ currentScopeState = ScopeState.Idle;
+ }
+ public void Update()
+ {
+ if (_cheatsEnabled)
+ {
+ AppManager.Instance.debugHud.Set("cheats", _cheatsEnabled.ToString());
+ AppManager.Instance.debugHud.Set("invincible", InvincibilityCheat.ToString());
+ AppManager.Instance.debugHud.Set("infinite ammo", InfiniteAmmoCheat.ToString()); //TODO
+ }
+
+ #region Работа с GamePad
+ #region Обработка гейм-пада. Задает Vector2 vectorMovementDirection являющийся вектором отклонения левого стика.
+ GamePadState gamePadState = GamePad.GetState(0);
+ InputMovementDirection = gamePadState.ThumbSticks.Left;
+ InputAttackDirection = gamePadState.ThumbSticks.Right;
+ #endregion
+
+ #region читы
+ if (gamePadState.Triggers.Left >= 0.9 && gamePadState.Triggers.Right >= 0.9)
+ _cheatsEnabled = true;
+ if (_cheatsEnabled)
+ {
+ if (gamePadState.Buttons.Y == ButtonState.Pressed && lastGamePadState.Buttons.Y == ButtonState.Released)
+ InvincibilityCheat = !InvincibilityCheat;
+ if (gamePadState.Buttons.B == ButtonState.Pressed && lastGamePadState.Buttons.B == ButtonState.Released)
+ CollisionsCheat = !CollisionsCheat;
+ //TODO: infinite ammo cheat by gamepad
+ }
+ #endregion // Cheats
+
+ #region set ScopeState
+ int currentSection = (int)Math.Ceiling(Math.Atan2(InputMovementDirection.Y,
+ InputMovementDirection.X) * 180 / Math.PI * 16 / 360);
+ switch(currentSection){
+ case 1 or 0 or 16:
+ currentScopeState = ScopeState.Right;
+ break;
+ case 2 or 3:
+ currentScopeState = ScopeState.StraightRight;
+ break;
+ case 4 or 5:
+ currentScopeState = ScopeState.Straight;
+ break;
+ case 6 or 7:
+ currentScopeState = ScopeState.StraightLeft;
+ break;
+ case 8 or 9:
+ currentScopeState = ScopeState.Left;
+ break;
+ case 10 or 11:
+ currentScopeState = ScopeState.BackLeft;
+ break;
+ case 12 or 13:
+ currentScopeState = ScopeState.Back;
+ break;
+ case 14 or 15:
+ currentScopeState = ScopeState.BackRight;
+ break;
+ default:
+ break;
+ }
+
+ #endregion
+
+ #region Обработка нажатия выстрела. Вызывает событие ShootEvent
+ if (gamePadState.Buttons.X == ButtonState.Pressed && !isShoot)
+ {
+ isShoot = true;
+ ShootEvent?.Invoke();
+ Debug.WriteLine("Выстрел");
+ }
+ else if (gamePadState.Buttons.X == ButtonState.Released)
+ {
+ isShoot = false;
+ }
+ #endregion
+
+ lastGamePadState = gamePadState;
+ #endregion
+ #region Работа с KeyBoard
+
+ #region InputAttack with mouse
+ MouseState mouseState = Mouse.GetState();
+ AppManager.Instance.debugHud.Set("mouse position", $"({mouseState.X}, {mouseState.Y}");
+ // TODO: CurentScreenResolution
+ Vector2 a = (AppManager.Instance.CurentScreenResolution / new Point(2, 2)).ToVector2();
+
+ InputAttackDirection = Vector2.Normalize(new Vector2(mouseState.X - a.X, mouseState.Y - a.Y));
+ AppManager.Instance.debugHud.Set("AttackDir(normalize)", $"({a.X}, {a.Y})");
+ #endregion
+
+ #region Состояние клавиатуры
+ KeyboardState keyBoardState = Keyboard.GetState(); // Состояние клавиатуры
+ #endregion
+
+ #region читы
+ if (keyBoardState.IsKeyDown(Keys.LeftShift) && keyBoardState.IsKeyDown(Keys.RightShift))
+ _cheatsEnabled = true;
+ if (_cheatsEnabled)
+ {
+ if (keyBoardState.IsKeyDown(Keys.I) && lastKeyboardState.IsKeyUp(Keys.I))
+ InvincibilityCheat = !InvincibilityCheat;
+ if (keyBoardState.IsKeyDown(Keys.C) && lastKeyboardState.IsKeyUp(Keys.C))
+ CollisionsCheat = !CollisionsCheat;
+ if (keyBoardState.IsKeyDown(Keys.N) && lastKeyboardState.IsKeyUp(Keys.N))
+ InfiniteAmmoCheat = !InfiniteAmmoCheat;
+
+ List lvls = new List() { Keys.D0, Keys.D1, Keys.D2, Keys.D3, Keys.D4, Keys.D5, Keys.D6, Keys.D7, Keys.D8, Keys.D9 };
+
+ for (int i = 0; i < lvls.Count; i++)
+ {
+ //if (keyBoardState.IsKeyDown(lvls[i]) && lastKeyboardState.IsKeyUp(lvls[i])) //TODO
+ // AppManager.Instance.Restart($"lvl{i}");
+ }
+ }
+ #endregion // Cheats
+
+ #region Обработка состояния объекта. Задает значение полю scopeState.
+ if (keyBoardState.IsKeyDown(Keys.Up) || keyBoardState.IsKeyDown(Keys.W))
+ {
+ currentScopeState = ScopeState.Straight;
+ }
+ else if (keyBoardState.IsKeyDown(Keys.Down) || keyBoardState.IsKeyDown(Keys.S))
+ {
+ currentScopeState = ScopeState.Back;
+ }
+ else if(keyBoardState.IsKeyDown(Keys.Left) || keyBoardState.IsKeyDown(Keys.A))
+ {
+ currentScopeState = ScopeState.Left;
+ }
+ else if(keyBoardState.IsKeyDown(Keys.Right) || keyBoardState.IsKeyDown(Keys.D))
+ {
+ currentScopeState = ScopeState.Right;
+ }
+ else if(keyBoardState.IsKeyDown(Keys.Right) && keyBoardState.IsKeyDown(Keys.Up) ||
+ keyBoardState.IsKeyDown(Keys.D) && keyBoardState.IsKeyDown(Keys.W))
+ {
+ currentScopeState = ScopeState.StraightRight;
+ }
+ else if(keyBoardState.IsKeyDown(Keys.Left) && keyBoardState.IsKeyDown(Keys.Up) ||
+ keyBoardState.IsKeyDown(Keys.A) && keyBoardState.IsKeyDown(Keys.W))
+ {
+ currentScopeState = ScopeState.StraightLeft;
+ }
+ else if(keyBoardState.IsKeyDown(Keys.Right) && keyBoardState.IsKeyDown(Keys.Down) ||
+ keyBoardState.IsKeyDown(Keys.D) && keyBoardState.IsKeyDown(Keys.S))
+ {
+ currentScopeState = ScopeState.BackRight;
+ }
+ else if(keyBoardState.IsKeyDown(Keys.Left) && keyBoardState.IsKeyDown(Keys.Down) ||
+ keyBoardState.IsKeyDown(Keys.A) && keyBoardState.IsKeyDown(Keys.S))
+ {
+ currentScopeState = ScopeState.BackLeft;
+ }
+ #endregion
+
+ #region Обработка нажатия выстрела. Вызывает событие ShootEvent
+ if (keyBoardState.IsKeyDown(Keys.P) && !isShoot)
+ {
+ isShoot = true;
+ ShootEvent?.Invoke();
+ Debug.WriteLine("Выстрел");
+ }
+ else if (keyBoardState.IsKeyUp(Keys.P))
+ {
+ isShoot = false;
+ }
+ #endregion
+
+ #region Обработка взаимодействия с collectable(например лутом). Вызывает событие OnInteract
+ if (keyBoardState.IsKeyDown(Keys.E) && !isInteract)
+ {
+
+ OnInteract?.Invoke();
+ Debug.WriteLine("взаимодействие с Collectable");
+ }
+ else if (keyBoardState.IsKeyUp(Keys.E))
+ {
+ isInteract = false;
+ }
+ #endregion
+ lastKeyboardState = keyBoardState;
+
+ #endregion
+ #region ActionEvent
+ if(InputMovementDirection != prevInputMovementDirection ||
+ InputAttackDirection != prevInputAttackDirection ||
+ currentScopeState != prevCurrentScopeState)
+ {
+ ActionEvent?.Invoke();
+ }
+ prevInputMovementDirection = InputMovementDirection;
+ prevInputAttackDirection = InputAttackDirection;
+ prevCurrentScopeState = currentScopeState;
+ #endregion
+ }
+ }
+}
diff --git a/ZoFo/GameCore/GameManagers/ItemManager/EquippableItemInfo.cs b/ZoFo/GameCore/GameManagers/ItemManager/EquippableItemInfo.cs
new file mode 100644
index 0000000..5bffce5
--- /dev/null
+++ b/ZoFo/GameCore/GameManagers/ItemManager/EquippableItemInfo.cs
@@ -0,0 +1,17 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace ZoFo.GameCore.GameManagers.ItemManager
+{
+ class EquippableItemInfo : ItemInfo
+ {
+ bool IsEquiped; //экипирован ли предмет
+ public EquippableItemInfo(string tag) : base(tag)
+ {
+
+ }
+ }
+}
diff --git a/ZoFo/GameCore/GameManagers/ItemManager/ItemInfo.cs b/ZoFo/GameCore/GameManagers/ItemManager/ItemInfo.cs
new file mode 100644
index 0000000..6461dc6
--- /dev/null
+++ b/ZoFo/GameCore/GameManagers/ItemManager/ItemInfo.cs
@@ -0,0 +1,37 @@
+using Microsoft.Xna.Framework.Graphics;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace ZoFo.GameCore.GameManagers.ItemManager
+{
+ public class ItemInfo
+ {
+ //поля
+ string tag;
+ public string textureName;
+ Texture2D itemTexture;
+ public bool isCraftable;
+ public Dictionary resourcesNeededToCraft;
+ public ItemInfo (string tag)
+ {
+ this.tag = tag;
+ }
+ public ItemInfo(string tag,string textureName,bool isCraftable, Dictionary resourcesNeededToCraft)
+ {
+ this.tag = tag;
+ this.textureName = textureName;
+
+ this.isCraftable = isCraftable;
+ this.resourcesNeededToCraft = resourcesNeededToCraft;
+ }
+ //методы
+ public void LoadTexture()
+ {
+ //я что-то хз как это
+ itemTexture=AppManager.Instance.Content.Load(textureName);
+ }
+ }
+}
diff --git a/ZoFo/GameCore/GameManagers/ItemManager/ItemManager.cs b/ZoFo/GameCore/GameManagers/ItemManager/ItemManager.cs
new file mode 100644
index 0000000..3b982e6
--- /dev/null
+++ b/ZoFo/GameCore/GameManagers/ItemManager/ItemManager.cs
@@ -0,0 +1,39 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace ZoFo.GameCore.GameManagers.ItemManager
+{
+ public class ItemManager
+ {
+ //поля
+ public Dictionary tagItemPairs;
+ //методы
+ public ItemInfo GetItemInfo(string tag)
+ {
+ return tagItemPairs[tag];
+ }
+ public void LoadItemTextures()
+ {
+ foreach (var item in tagItemPairs)
+ {
+ item.Value.LoadTexture();
+ }
+ }
+ public void Initialize()
+ {
+ tagItemPairs = new Dictionary();
+ tagItemPairs.Add("wood", new ItemInfo("wood","Textures\\Test\\wood",false,null));
+ tagItemPairs.Add("rock", new ItemInfo("rock", "Textures\\Test\\rock", false, null));
+ tagItemPairs.Add("steel", new ItemInfo("steel", "Textures\\Test\\steel", false, null));
+ tagItemPairs.Add("pickaxe", new ItemInfo("steel", "Textures\\Test\\pickaxe", true, new Dictionary()
+ {
+ {"wood", 2},
+ {"Steel", 3}
+ }));
+ }
+
+ }
+}
diff --git a/ZoFo/GameCore/GameManagers/ItemManager/PlayerData.cs b/ZoFo/GameCore/GameManagers/ItemManager/PlayerData.cs
new file mode 100644
index 0000000..5a6c78e
--- /dev/null
+++ b/ZoFo/GameCore/GameManagers/ItemManager/PlayerData.cs
@@ -0,0 +1,50 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace ZoFo.GameCore.GameManagers.ItemManager
+{
+ ///
+ /// Класс хранит информацю о количестве ресурсов у игрока
+ ///
+ public class PlayerData
+ {
+ public PlayerData()
+ {
+ LoadPlayerData();
+ }
+ public Dictionary items;
+ ///
+ /// Принимает тэг и крафтит этот объект
+ ///
+ ///
+ public bool CraftItem(string itemTag)
+ {
+ Dictionary needToCraft = AppManager.Instance.ItemManager.GetItemInfo(itemTag).resourcesNeededToCraft;
+ foreach (var item in needToCraft)
+ {
+ if (items[item.Key] < item.Value)
+ {
+ return false;
+ }
+ }
+
+ foreach (var item in needToCraft)
+ {
+ items[item.Key] -= item.Value;
+ }
+ return true;
+ }
+
+ public void LoadPlayerData()
+ {
+ //TODO
+ items = new Dictionary();
+ items.Add("wood", 2);
+ items.Add("steel", 110);
+ items.Add("rock", 6);
+ }
+ }
+}
diff --git a/ZoFo/GameCore/GameManagers/ItemManager/WeaponItemInfo.cs b/ZoFo/GameCore/GameManagers/ItemManager/WeaponItemInfo.cs
new file mode 100644
index 0000000..3917575
--- /dev/null
+++ b/ZoFo/GameCore/GameManagers/ItemManager/WeaponItemInfo.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace ZoFo.GameCore.GameManagers.ItemManager
+{
+ class WeaponItemInfo: EquippableItemInfo
+ {
+ //поля
+ float damage;
+
+ public WeaponItemInfo(string tag) : base(tag)
+ {
+ }
+ }
+}
diff --git a/ZoFo/GameCore/GameManagers/MapManager/MapElements/Chunk.cs b/ZoFo/GameCore/GameManagers/MapManager/MapElements/Chunk.cs
new file mode 100644
index 0000000..6337d3c
--- /dev/null
+++ b/ZoFo/GameCore/GameManagers/MapManager/MapElements/Chunk.cs
@@ -0,0 +1,17 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace ZoFo.GameCore.GameManagers.MapManager.MapElements
+{
+ public class Chunk
+ {
+ public int[] Data { get; set; }
+ public int Height { get; set; }
+ public int Width { get; set; }
+ public int X { get; set; }
+ public int Y { get; set; }
+ }
+}
diff --git a/ZoFo/GameCore/GameManagers/MapManager/MapElements/Layer.cs b/ZoFo/GameCore/GameManagers/MapManager/MapElements/Layer.cs
new file mode 100644
index 0000000..cf04682
--- /dev/null
+++ b/ZoFo/GameCore/GameManagers/MapManager/MapElements/Layer.cs
@@ -0,0 +1,20 @@
+using System;
+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
+{
+ public class Layer
+ {
+ public List Chunks { get; set; }
+ public int Height { get; set; }
+ public int Width { get; set; }
+ public int Id { get; set; }
+ public bool Visibility { get; set; }
+ public string Class { get; set; }
+ public string Type { get; set; }
+ }
+}
diff --git a/ZoFo/GameCore/GameManagers/MapManager/MapElements/Object.cs b/ZoFo/GameCore/GameManagers/MapManager/MapElements/Object.cs
new file mode 100644
index 0000000..f4c4336
--- /dev/null
+++ b/ZoFo/GameCore/GameManagers/MapManager/MapElements/Object.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.MapManager.MapElements
+{
+ public class Object
+ {
+ public double Height { get; set; }
+ public double Width { get; set; }
+ public double X { get; set; }
+ public double Y { get; set; }
+ }
+}
diff --git a/ZoFo/GameCore/GameManagers/MapManager/MapElements/ObjectGroup.cs b/ZoFo/GameCore/GameManagers/MapManager/MapElements/ObjectGroup.cs
new file mode 100644
index 0000000..ac77f14
--- /dev/null
+++ b/ZoFo/GameCore/GameManagers/MapManager/MapElements/ObjectGroup.cs
@@ -0,0 +1,14 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace ZoFo.GameCore.GameManagers.MapManager.MapElements
+{
+ public class ObjectGroup
+ {
+ public string Name { get; set; }
+ public List