Merge branch 'DevelopmentX' into Collision

This commit is contained in:
SergoDobro 2024-08-20 14:09:00 +03:00 committed by GitHub
commit d396159e44
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
431 changed files with 18291 additions and 1825 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 1,019 KiB

View file

@ -0,0 +1,635 @@
<mxfile host="Electron" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/24.7.5 Chrome/126.0.6478.183 Electron/31.3.0 Safari/537.36" scale="1" border="0" version="24.7.5">
<diagram name="Page-1" id="vN-Mjpsko5mhnfbVd4ZQ">
<mxGraphModel dx="4050" dy="3084" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="lzB2u7mNdVftqM7OZ14K-120" value="" style="group;strokeColor=#996185;dashed=1;dashPattern=12 12;rounded=1;fillColor=#e6d0de;gradientColor=#d5739d;" parent="1" vertex="1" connectable="0">
<mxGeometry x="380" y="-1350" width="1160" height="1110" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-88" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;shape=flexArrow;strokeColor=default;" parent="lzB2u7mNdVftqM7OZ14K-120" source="lzB2u7mNdVftqM7OZ14K-85" target="lzB2u7mNdVftqM7OZ14K-87" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-89" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;shape=flexArrow;strokeColor=default;" parent="lzB2u7mNdVftqM7OZ14K-120" source="lzB2u7mNdVftqM7OZ14K-85" target="lzB2u7mNdVftqM7OZ14K-86" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="153" y="30" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-100" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;shape=flexArrow;strokeColor=default;" parent="lzB2u7mNdVftqM7OZ14K-120" source="lzB2u7mNdVftqM7OZ14K-85" target="lzB2u7mNdVftqM7OZ14K-99" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-105" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;shape=flexArrow;strokeColor=default;" parent="lzB2u7mNdVftqM7OZ14K-120" source="lzB2u7mNdVftqM7OZ14K-85" target="lzB2u7mNdVftqM7OZ14K-102" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="323" y="30" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-106" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;shape=flexArrow;strokeColor=default;" parent="lzB2u7mNdVftqM7OZ14K-120" source="lzB2u7mNdVftqM7OZ14K-85" target="lzB2u7mNdVftqM7OZ14K-103" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-107" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;shape=flexArrow;strokeColor=default;" parent="lzB2u7mNdVftqM7OZ14K-120" source="lzB2u7mNdVftqM7OZ14K-85" target="lzB2u7mNdVftqM7OZ14K-104" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-109" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;shape=flexArrow;strokeColor=default;" parent="lzB2u7mNdVftqM7OZ14K-120" source="lzB2u7mNdVftqM7OZ14K-85" target="lzB2u7mNdVftqM7OZ14K-108" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-111" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;shape=flexArrow;strokeColor=default;" parent="lzB2u7mNdVftqM7OZ14K-120" source="lzB2u7mNdVftqM7OZ14K-85" target="lzB2u7mNdVftqM7OZ14K-110" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-199" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;shape=flexArrow;" parent="lzB2u7mNdVftqM7OZ14K-120" source="lzB2u7mNdVftqM7OZ14K-85" target="lzB2u7mNdVftqM7OZ14K-198" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-85" value="AbstractGUI&lt;div&gt;&lt;br&gt;&lt;div&gt;Update()&lt;/div&gt;&lt;div&gt;Draw()&lt;/div&gt;&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=default;" parent="lzB2u7mNdVftqM7OZ14K-120" vertex="1">
<mxGeometry width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-86" value="MainMenuGUI" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=default;" parent="lzB2u7mNdVftqM7OZ14K-120" vertex="1">
<mxGeometry x="90" y="150" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-87" value="BaseGUI" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=default;" parent="lzB2u7mNdVftqM7OZ14K-120" vertex="1">
<mxGeometry x="175.5" y="230" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-99" value="GameEndedGUI" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=default;" parent="lzB2u7mNdVftqM7OZ14K-120" vertex="1">
<mxGeometry x="840" y="180" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-159" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;curved=1;dashed=1;" parent="lzB2u7mNdVftqM7OZ14K-120" source="lzB2u7mNdVftqM7OZ14K-103" target="lzB2u7mNdVftqM7OZ14K-158" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="343" y="430" />
<mxPoint x="343" y="730" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-102" value="SelectModeMenu" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=default;" parent="lzB2u7mNdVftqM7OZ14K-120" vertex="1">
<mxGeometry x="282.5" y="320" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-161" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;curved=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;dashed=1;" parent="lzB2u7mNdVftqM7OZ14K-120" source="lzB2u7mNdVftqM7OZ14K-103" target="lzB2u7mNdVftqM7OZ14K-160" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="443" y="850" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-103" value="SelectingServerGUI" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=default;" parent="lzB2u7mNdVftqM7OZ14K-120" vertex="1">
<mxGeometry x="382.5" y="400" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-104" value="WaitingForPlayersGUI&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Host can start game here&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;У хоста здесь будет кнопка старта игры, у других - нет&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=default;" parent="lzB2u7mNdVftqM7OZ14K-120" vertex="1">
<mxGeometry x="481.25" y="480" width="132.5" height="180" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-108" value="InventoryGUI" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=default;" parent="lzB2u7mNdVftqM7OZ14K-120" vertex="1">
<mxGeometry x="740" y="270" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-110" value="HUD" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=default;" parent="lzB2u7mNdVftqM7OZ14K-120" vertex="1">
<mxGeometry x="605" y="400" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-158" value="&lt;div&gt;MultiPlayerStartHosting&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Server.CreateRoom();&lt;/div&gt;&lt;div&gt;Client.JoinRoom(127.0.0.1);&lt;/div&gt;" style="ellipse;whiteSpace=wrap;html=1;" parent="lzB2u7mNdVftqM7OZ14K-120" vertex="1">
<mxGeometry x="5.5" y="670" width="170" height="120" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-138" value="SinglePlayerSelected&lt;div&gt;&lt;br&gt;&lt;div&gt;Server.CreatedRoom();&lt;/div&gt;&lt;div&gt;Client.JoinRoom(127.0.0.1);&lt;/div&gt;&lt;div&gt;Server.StartGame();&lt;/div&gt;&lt;/div&gt;" style="ellipse;whiteSpace=wrap;html=1;" parent="lzB2u7mNdVftqM7OZ14K-120" vertex="1">
<mxGeometry x="5.5" y="540" width="170" height="120" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-157" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=default;curved=1;dashed=1;" parent="lzB2u7mNdVftqM7OZ14K-120" source="lzB2u7mNdVftqM7OZ14K-102" target="lzB2u7mNdVftqM7OZ14K-138" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-160" value="&lt;div&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;Join Room&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;Client.JoinRoom(ip);&lt;/span&gt;&lt;br&gt;&lt;/div&gt;" style="ellipse;whiteSpace=wrap;html=1;" parent="lzB2u7mNdVftqM7OZ14K-120" vertex="1">
<mxGeometry x="10" y="800" width="170" height="120" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-163" value="&lt;div&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;Start Game&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;Server.StartGame();&lt;/span&gt;&lt;br&gt;&lt;/div&gt;" style="ellipse;whiteSpace=wrap;html=1;" parent="lzB2u7mNdVftqM7OZ14K-120" vertex="1">
<mxGeometry x="10" y="930" width="170" height="120" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-164" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;curved=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="lzB2u7mNdVftqM7OZ14K-120" source="lzB2u7mNdVftqM7OZ14K-104" target="lzB2u7mNdVftqM7OZ14K-163" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-184" value="Обращается к игроку и выводит/ изменяет его данные на экране" style="ellipse;shape=cloud;whiteSpace=wrap;html=1;" parent="lzB2u7mNdVftqM7OZ14K-120" vertex="1">
<mxGeometry x="760" y="300" width="160" height="120" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-198" value="OptionsGUI" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=default;" parent="lzB2u7mNdVftqM7OZ14K-120" vertex="1">
<mxGeometry x="980" y="120" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="TA6NM5vga4TUYUKUYXcC-36" value="" style="group;strokeColor=#b85450;dashed=1;rounded=1;glass=1;fillColor=#f8cecc;" parent="1" vertex="1" connectable="0">
<mxGeometry x="-200" y="-220" width="490" height="630" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-10" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="TA6NM5vga4TUYUKUYXcC-36" source="lzB2u7mNdVftqM7OZ14K-1" target="lzB2u7mNdVftqM7OZ14K-8" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="300" y="445" />
<mxPoint x="300" y="605" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-94" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="TA6NM5vga4TUYUKUYXcC-36" source="lzB2u7mNdVftqM7OZ14K-1" target="lzB2u7mNdVftqM7OZ14K-93" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="300" y="445" />
<mxPoint x="300" y="536" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-1" value="Server&lt;div&gt;- Логика игры&lt;/div&gt;&lt;div&gt;- Апдейт монсты&lt;/div&gt;&lt;div&gt;Работает на тиках&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;States:&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;&#x9;&lt;/span&gt;Waiting for Players&lt;br&gt;&lt;/div&gt;&lt;div&gt;InGame&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;CreatedRoom(); - начинает слушать и ожидать новых подключений&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;StartGame();&amp;nbsp;&lt;span style=&quot;background-color: initial;&quot;&gt;- Уведомляет о начале игры, перестает ждать новых подключений&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;EndGame();&amp;nbsp;&lt;span style=&quot;background-color: initial;&quot;&gt;- Уведомляет о конце игры, все прослушки отключаются&lt;/span&gt;&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;" parent="TA6NM5vga4TUYUKUYXcC-36" vertex="1">
<mxGeometry y="40" width="220" height="290" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-8" value="Лист Entity" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;" parent="TA6NM5vga4TUYUKUYXcC-36" vertex="1">
<mxGeometry x="350" y="580" width="110" height="50" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-60" value="Сервер загрузился и все зарегистрировал&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;каждый тик апдейт и отправка данных клиенту&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;" parent="TA6NM5vga4TUYUKUYXcC-36" vertex="1">
<mxGeometry x="240" width="250" height="160" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-93" value="Лист GameObjects" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;" parent="TA6NM5vga4TUYUKUYXcC-36" vertex="1">
<mxGeometry x="350" y="510" width="110" height="52.5" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-47" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="lzB2u7mNdVftqM7OZ14K-1" target="lzB2u7mNdVftqM7OZ14K-46" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-320" y="225" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-139" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="lzB2u7mNdVftqM7OZ14K-1" target="lzB2u7mNdVftqM7OZ14K-6" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="290" y="-35" />
<mxPoint x="290" y="218" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-140" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="lzB2u7mNdVftqM7OZ14K-1" target="lzB2u7mNdVftqM7OZ14K-12" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="393" y="-35" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-135" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="lzB2u7mNdVftqM7OZ14K-2" target="lzB2u7mNdVftqM7OZ14K-1" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-136" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="lzB2u7mNdVftqM7OZ14K-2" target="lzB2u7mNdVftqM7OZ14K-4" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-90" y="-795" />
<mxPoint x="-90" y="-273" />
<mxPoint x="-538" y="-273" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-137" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="lzB2u7mNdVftqM7OZ14K-2" target="lzB2u7mNdVftqM7OZ14K-85" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-90" y="-795" />
<mxPoint x="-90" y="-930" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-168" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="lzB2u7mNdVftqM7OZ14K-2" target="lzB2u7mNdVftqM7OZ14K-90" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-850" y="-795" />
<mxPoint x="-850" y="-1080" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-173" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="lzB2u7mNdVftqM7OZ14K-2" target="lzB2u7mNdVftqM7OZ14K-172" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-850" y="-795" />
<mxPoint x="-850" y="-905" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="TA6NM5vga4TUYUKUYXcC-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="lzB2u7mNdVftqM7OZ14K-2" target="TA6NM5vga4TUYUKUYXcC-1" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-420" y="-1430" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-65" value="Adds Data to send if position has changed" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;curved=1;dashed=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="lzB2u7mNdVftqM7OZ14K-6" target="lzB2u7mNdVftqM7OZ14K-46" edge="1">
<mxGeometry x="0.5191" relative="1" as="geometry">
<Array as="points">
<mxPoint x="-30" y="270" />
<mxPoint x="-30" y="470" />
<mxPoint x="-345" y="320" />
</Array>
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-58" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="lzB2u7mNdVftqM7OZ14K-8" target="lzB2u7mNdVftqM7OZ14K-25" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-12" value="MapManager&lt;div&gt;Система карты&lt;div&gt;- загружает карту (из заранее сделанных)&lt;/div&gt;&lt;/div&gt;" style="rhombus;whiteSpace=wrap;html=1;fillColor=#6d8764;fontColor=#ffffff;strokeColor=#3A5431;" parent="1" vertex="1">
<mxGeometry x="542.5" y="-110" width="230" height="150" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-57" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;shape=link;" parent="1" source="lzB2u7mNdVftqM7OZ14K-49" target="lzB2u7mNdVftqM7OZ14K-50" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-350" y="640" />
<mxPoint x="-1466" y="640" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-90" value="PlayerData&lt;div&gt;Dictionary&amp;lt;string, int&amp;gt; resources&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1090" y="-1110" width="170" height="60" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-95" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="lzB2u7mNdVftqM7OZ14K-93" target="lzB2u7mNdVftqM7OZ14K-39" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-127" value="" style="group;dashed=1;dashPattern=8 8;rounded=1;strokeColor=#d79b00;expand=1;autosize=1;fillColor=#ffe6cc;" parent="1" vertex="1" connectable="0">
<mxGeometry x="-1960" y="820" width="1899.62" height="270" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-123" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;shape=flexArrow;" parent="lzB2u7mNdVftqM7OZ14K-127" source="lzB2u7mNdVftqM7OZ14K-50" target="lzB2u7mNdVftqM7OZ14K-83" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="227.15189873417714" y="30" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-124" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;shape=flexArrow;" parent="lzB2u7mNdVftqM7OZ14K-127" source="lzB2u7mNdVftqM7OZ14K-50" target="lzB2u7mNdVftqM7OZ14K-66" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-125" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;shape=flexArrow;" parent="lzB2u7mNdVftqM7OZ14K-127" source="lzB2u7mNdVftqM7OZ14K-50" target="lzB2u7mNdVftqM7OZ14K-54" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-180" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;shape=flexArrow;" parent="lzB2u7mNdVftqM7OZ14K-127" source="lzB2u7mNdVftqM7OZ14K-50" target="lzB2u7mNdVftqM7OZ14K-177" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-193" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;shape=flexArrow;" parent="lzB2u7mNdVftqM7OZ14K-127" source="lzB2u7mNdVftqM7OZ14K-50" target="lzB2u7mNdVftqM7OZ14K-192" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="TA6NM5vga4TUYUKUYXcC-12" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;shape=flexArrow;" parent="lzB2u7mNdVftqM7OZ14K-127" source="lzB2u7mNdVftqM7OZ14K-50" target="TA6NM5vga4TUYUKUYXcC-10" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="TA6NM5vga4TUYUKUYXcC-13" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;shape=flexArrow;" parent="lzB2u7mNdVftqM7OZ14K-127" source="lzB2u7mNdVftqM7OZ14K-50" target="TA6NM5vga4TUYUKUYXcC-11" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-50" value="IUpdateData&lt;div&gt;id объекта&lt;/div&gt;&lt;div&gt;updatetype&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;" parent="lzB2u7mNdVftqM7OZ14K-127" vertex="1">
<mxGeometry width="147.3417721518987" height="60" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-54" value="UpdateAnimation&lt;div&gt;&lt;div&gt;хранит новую анимации&lt;/div&gt;&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;" parent="lzB2u7mNdVftqM7OZ14K-127" vertex="1">
<mxGeometry x="589.37" y="170" width="130.63" height="90" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-66" value="UpdateGameObjectCreated&lt;div&gt;Хранит объект, который только отправили&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;" parent="lzB2u7mNdVftqM7OZ14K-127" vertex="1">
<mxGeometry x="356.0759493670885" y="170" width="208.73417721518982" height="92.5" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-83" value="UpdateGameEnded&lt;div&gt;Хранит полученный лут и уведомляет о конце игры&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;" parent="lzB2u7mNdVftqM7OZ14K-127" vertex="1">
<mxGeometry x="122.78481012658223" y="170" width="208.73417721518982" height="92.5" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-177" value="UpdatePosition&lt;div&gt;Хранит новую позицию&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;" parent="lzB2u7mNdVftqM7OZ14K-127" vertex="1">
<mxGeometry x="740" y="172.5" width="129.62" height="90" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-52" value="UpdateInput&lt;div&gt;Хранит новую позицию&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;" parent="lzB2u7mNdVftqM7OZ14K-127" vertex="1">
<mxGeometry x="1580" y="172.5" width="129.62" height="90" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-126" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;shape=flexArrow;" parent="lzB2u7mNdVftqM7OZ14K-127" source="lzB2u7mNdVftqM7OZ14K-50" target="lzB2u7mNdVftqM7OZ14K-52" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-182" value="ClientToServer&lt;div&gt;id - это id игрока&lt;/div&gt;" style="ellipse;shape=cloud;whiteSpace=wrap;html=1;" parent="lzB2u7mNdVftqM7OZ14K-127" vertex="1">
<mxGeometry x="1510" y="40" width="130" height="80" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-183" value="ServerToClient" style="ellipse;shape=cloud;whiteSpace=wrap;html=1;" parent="lzB2u7mNdVftqM7OZ14K-127" vertex="1">
<mxGeometry x="1209.62" y="40" width="120" height="80" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-192" value="&lt;div&gt;Update&lt;span style=&quot;background-color: initial;&quot;&gt;Loot&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Хранит лут&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;" parent="lzB2u7mNdVftqM7OZ14K-127" vertex="1">
<mxGeometry x="880" y="172.5" width="129.62" height="90" as="geometry" />
</mxCell>
<mxCell id="TA6NM5vga4TUYUKUYXcC-10" value="UpdatePlayerParametrs&lt;div&gt;Хранит хп, радиацию&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;" parent="lzB2u7mNdVftqM7OZ14K-127" vertex="1">
<mxGeometry x="1020" y="172.5" width="129.62" height="90" as="geometry" />
</mxCell>
<mxCell id="TA6NM5vga4TUYUKUYXcC-11" value="UpdateEntityHealth&lt;div&gt;хранит новое хп entity&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;" parent="lzB2u7mNdVftqM7OZ14K-127" vertex="1">
<mxGeometry x="1160" y="172.5" width="129.62" height="90" as="geometry" />
</mxCell>
<mxCell id="TA6NM5vga4TUYUKUYXcC-6" value="UpdatePlayerExit&lt;div&gt;Пользователь ушел и сообщил&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;" parent="lzB2u7mNdVftqM7OZ14K-127" vertex="1">
<mxGeometry x="1720" y="172.5" width="129.62" height="90" as="geometry" />
</mxCell>
<mxCell id="TA6NM5vga4TUYUKUYXcC-7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;shape=flexArrow;" parent="lzB2u7mNdVftqM7OZ14K-127" source="lzB2u7mNdVftqM7OZ14K-50" target="TA6NM5vga4TUYUKUYXcC-6" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-134" value="" style="group;strokeColor=#82b366;dashed=1;rounded=1;dashPattern=8 8;fillColor=#d5e8d4;" parent="1" vertex="1" connectable="0">
<mxGeometry x="-100" y="1070" width="1020" height="1110" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-43" value="StopObject" style="rounded=0;whiteSpace=wrap;html=1;" parent="lzB2u7mNdVftqM7OZ14K-134" vertex="1">
<mxGeometry x="890" y="570" width="90" height="20" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-72" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;shape=flexArrow;" parent="lzB2u7mNdVftqM7OZ14K-134" source="lzB2u7mNdVftqM7OZ14K-7" target="lzB2u7mNdVftqM7OZ14K-71" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-73" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;shape=flexArrow;" parent="lzB2u7mNdVftqM7OZ14K-134" source="lzB2u7mNdVftqM7OZ14K-7" target="lzB2u7mNdVftqM7OZ14K-70" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="60" y="740" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-7" value="&lt;div&gt;LivingEntity&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;" parent="lzB2u7mNdVftqM7OZ14K-134" vertex="1">
<mxGeometry x="280" y="700" width="185" height="80" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-19" value="Tile" style="rounded=0;whiteSpace=wrap;html=1;" parent="lzB2u7mNdVftqM7OZ14K-134" vertex="1">
<mxGeometry x="780" y="570" width="90" height="20" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-76" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;shape=flexArrow;" parent="lzB2u7mNdVftqM7OZ14K-134" source="lzB2u7mNdVftqM7OZ14K-20" target="lzB2u7mNdVftqM7OZ14K-74" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="770" y="740" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-77" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;shape=flexArrow;" parent="lzB2u7mNdVftqM7OZ14K-134" source="lzB2u7mNdVftqM7OZ14K-20" target="lzB2u7mNdVftqM7OZ14K-75" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="890" y="740" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-20" value="&lt;div&gt;Collectable&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Прописать условия вызова OnInteract&lt;/div&gt;&lt;div&gt;подписывается на OnTriggerZone&lt;/div&gt;&lt;div&gt;OnInteract()&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Это лут&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;" parent="lzB2u7mNdVftqM7OZ14K-134" vertex="1">
<mxGeometry x="480" y="700" width="185" height="160" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-34" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;shape=flexArrow;" parent="lzB2u7mNdVftqM7OZ14K-134" source="lzB2u7mNdVftqM7OZ14K-25" target="lzB2u7mNdVftqM7OZ14K-7" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="533" y="530" />
<mxPoint x="390" y="530" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-38" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;shape=flexArrow;" parent="lzB2u7mNdVftqM7OZ14K-134" source="lzB2u7mNdVftqM7OZ14K-25" target="lzB2u7mNdVftqM7OZ14K-20" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="533" y="530" />
<mxPoint x="573" y="530" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-25" value="Entity&lt;div&gt;id&lt;br&gt;&lt;div&gt;&lt;div&gt;CollisionComponent&lt;/div&gt;&lt;div&gt;AnimationComponent&lt;br&gt;&lt;div&gt;UpdateLogic()&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;- в апдейте может заявляет изменения позиции&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Методы для клиента&lt;/div&gt;&lt;div&gt;&lt;div&gt;UpdateAnimation()&lt;/div&gt;&lt;div&gt;Draw()&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;" parent="lzB2u7mNdVftqM7OZ14K-134" vertex="1">
<mxGeometry x="428" y="140" width="210" height="230" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-32" value="Все Entity будут передаваться клиенту" style="rounded=1;whiteSpace=wrap;html=1;" parent="lzB2u7mNdVftqM7OZ14K-134" vertex="1">
<mxGeometry x="567.5" y="340" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-40" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;shape=flexArrow;" parent="lzB2u7mNdVftqM7OZ14K-134" source="lzB2u7mNdVftqM7OZ14K-39" target="lzB2u7mNdVftqM7OZ14K-25" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-42" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;shape=flexArrow;" parent="lzB2u7mNdVftqM7OZ14K-134" source="lzB2u7mNdVftqM7OZ14K-39" target="lzB2u7mNdVftqM7OZ14K-19" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-44" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;shape=flexArrow;" parent="lzB2u7mNdVftqM7OZ14K-134" source="lzB2u7mNdVftqM7OZ14K-39" target="lzB2u7mNdVftqM7OZ14K-43" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-39" value="&lt;div&gt;GameObject&lt;/div&gt;&lt;div&gt;Штуки с отрисовкой, их мы отправлять будем&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;" parent="lzB2u7mNdVftqM7OZ14K-134" vertex="1">
<mxGeometry x="440.5" width="185" height="80" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-70" value="Player&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;bool isTryingToInteract&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=default;" parent="lzB2u7mNdVftqM7OZ14K-134" vertex="1">
<mxGeometry y="920" width="140" height="60" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-71" value="Enemy" style="rounded=0;whiteSpace=wrap;html=1;" parent="lzB2u7mNdVftqM7OZ14K-134" vertex="1">
<mxGeometry x="150" y="920" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-74" value="Wood" style="rounded=0;whiteSpace=wrap;html=1;" parent="lzB2u7mNdVftqM7OZ14K-134" vertex="1">
<mxGeometry x="710" y="920" width="100" height="40" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-75" value="Ammo" style="rounded=0;whiteSpace=wrap;html=1;" parent="lzB2u7mNdVftqM7OZ14K-134" vertex="1">
<mxGeometry x="840" y="920" width="100" height="40" as="geometry" />
</mxCell>
<mxCell id="TA6NM5vga4TUYUKUYXcC-24" value="Projectile&lt;div&gt;Vector2 velocity&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;" parent="lzB2u7mNdVftqM7OZ14K-134" vertex="1">
<mxGeometry x="312.5" y="900" width="167.5" height="60" as="geometry" />
</mxCell>
<mxCell id="TA6NM5vga4TUYUKUYXcC-25" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;shape=flexArrow;" parent="lzB2u7mNdVftqM7OZ14K-134" source="lzB2u7mNdVftqM7OZ14K-7" target="TA6NM5vga4TUYUKUYXcC-24" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="396" y="820" />
<mxPoint x="396" y="820" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="TA6NM5vga4TUYUKUYXcC-27" value="Bullet" style="rounded=0;whiteSpace=wrap;html=1;" parent="lzB2u7mNdVftqM7OZ14K-134" vertex="1">
<mxGeometry x="270" y="1050" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="TA6NM5vga4TUYUKUYXcC-28" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;shape=flexArrow;" parent="lzB2u7mNdVftqM7OZ14K-134" source="TA6NM5vga4TUYUKUYXcC-24" target="TA6NM5vga4TUYUKUYXcC-27" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="TA6NM5vga4TUYUKUYXcC-26" value="Rock" style="rounded=0;whiteSpace=wrap;html=1;" parent="lzB2u7mNdVftqM7OZ14K-134" vertex="1">
<mxGeometry x="420" y="1050" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="TA6NM5vga4TUYUKUYXcC-29" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;shape=flexArrow;" parent="lzB2u7mNdVftqM7OZ14K-134" source="TA6NM5vga4TUYUKUYXcC-24" target="TA6NM5vga4TUYUKUYXcC-26" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-146" value="" style="group;strokeColor=#d6b656;dashed=1;dashPattern=8 8;rounded=1;fillColor=#fff2cc;" parent="1" vertex="1" connectable="0">
<mxGeometry x="-1490" y="-100" width="656.25" height="561.35" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-69" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;strokeColor=default;" parent="lzB2u7mNdVftqM7OZ14K-146" source="lzB2u7mNdVftqM7OZ14K-4" target="lzB2u7mNdVftqM7OZ14K-68" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-142" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=default;" parent="lzB2u7mNdVftqM7OZ14K-146" source="lzB2u7mNdVftqM7OZ14K-4" target="lzB2u7mNdVftqM7OZ14K-61" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-4" value="Client&lt;br&gt;- Получает данные игры&lt;div&gt;- отправляет инпут игрока&lt;/div&gt;&lt;div&gt;- Рисует все&lt;/div&gt;&lt;div&gt;- всегда сетевой&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;JoinRoom(string ip) - попытка подключиться к комнате&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;OnUpdate(&lt;span style=&quot;background-color: initial;&quot;&gt;IUpdateData&lt;/span&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;GameEndedUnexpectedly() - хост пропал, игра закончилась&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=default;" parent="lzB2u7mNdVftqM7OZ14K-146" vertex="1">
<mxGeometry x="380" width="276.25" height="249.77" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-61" value="&lt;div&gt;ClientNetworkManager&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;StartListening()&lt;/div&gt;&lt;div&gt;SendData() - отправка инпута игрока&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=default;" parent="lzB2u7mNdVftqM7OZ14K-146" vertex="1">
<mxGeometry x="436.8800000000001" y="442.2660305343511" width="162.5" height="119.08396946564885" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-68" value="Листы&lt;div&gt;Tiles - только отрисовка&lt;br&gt;&lt;div&gt;Walls - только отрисовка, но поверх тайлов&lt;/div&gt;&lt;div&gt;Entities - у них обнова аниматора&lt;/div&gt;&lt;/div&gt;" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;strokeColor=default;" parent="lzB2u7mNdVftqM7OZ14K-146" vertex="1">
<mxGeometry y="49.76709923664123" width="150" height="148.85496183206106" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-150" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="lzB2u7mNdVftqM7OZ14K-25" target="lzB2u7mNdVftqM7OZ14K-148" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-1150" y="1430" as="targetPoint" />
<Array as="points">
<mxPoint x="-720" y="1334" />
<mxPoint x="-720" y="1475" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-155" value="" style="group;rounded=1;strokeColor=#b85450;dashed=1;dashPattern=8 8;fillColor=#f8cecc;gradientColor=#ea6b66;" parent="1" vertex="1" connectable="0">
<mxGeometry x="-1670" y="1210" width="630" height="370" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-147" value="AnimationContainer" style="rounded=0;whiteSpace=wrap;html=1;" parent="lzB2u7mNdVftqM7OZ14K-155" vertex="1">
<mxGeometry x="410" y="20" width="220" height="130" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-152" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;shape=link;" parent="lzB2u7mNdVftqM7OZ14K-155" source="lzB2u7mNdVftqM7OZ14K-148" target="lzB2u7mNdVftqM7OZ14K-149" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-148" value="GraphicsComponent&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;StartAnimation()&lt;span style=&quot;color: rgba(0, 0, 0, 0); font-family: monospace; font-size: 0px; text-align: start; text-wrap: nowrap; background-color: initial;&quot;&gt;%3CmxGraphModel%3E%3Croot%3E%3CmxCell%20id%3D%220%22%2F%3E%3CmxCell%20id%3D%221%22%20parent%3D%220%22%2F%3E%3CmxCell%20id%3D%222%22%20value%3D%22AnimationContainer%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%221210%22%20y%3D%221280%22%20width%3D%22220%22%20height%3D%22130%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3C%2Froot%3E%3C%2FmxGraphModel%3E&lt;/span&gt;&lt;/div&gt;&lt;div&gt;UpdateAnimation()&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;TODO перенести кусочек про зацикливание кода&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;" parent="lzB2u7mNdVftqM7OZ14K-155" vertex="1">
<mxGeometry x="70" y="240" width="220" height="130" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-153" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;shape=link;" parent="lzB2u7mNdVftqM7OZ14K-155" source="lzB2u7mNdVftqM7OZ14K-149" target="lzB2u7mNdVftqM7OZ14K-147" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-149" value="AnimationBuilder&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;В начале загружает анимации, а затем распределяет анимации по контейнерам&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;" parent="lzB2u7mNdVftqM7OZ14K-155" vertex="1">
<mxGeometry width="360" height="170" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-154" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.637;entryY=1.017;entryDx=0;entryDy=0;entryPerimeter=0;" parent="lzB2u7mNdVftqM7OZ14K-155" source="lzB2u7mNdVftqM7OZ14K-148" target="lzB2u7mNdVftqM7OZ14K-147" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="550" y="300" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-169" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;dashPattern=8 8;curved=1;" parent="1" source="lzB2u7mNdVftqM7OZ14K-4" target="lzB2u7mNdVftqM7OZ14K-90" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-170" value="Game Over&lt;div&gt;PlayerData.AddLoot()&lt;/div&gt;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="lzB2u7mNdVftqM7OZ14K-169" vertex="1" connectable="0">
<mxGeometry x="-0.0087" y="2" relative="1" as="geometry">
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-172" value="InputManager&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Здесь эвенты нажатий, на которые можно подписываться тем, кому надо&lt;/div&gt;" style="rhombus;whiteSpace=wrap;html=1;fillColor=#6d8764;fontColor=#ffffff;strokeColor=#3A5431;" parent="1" vertex="1">
<mxGeometry x="-1560" y="-1030" width="260" height="250" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-196" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;shape=link;dashed=1;dashPattern=1 4;fillColor=#fff2cc;strokeColor=#d6b656;strokeWidth=8;" parent="1" source="lzB2u7mNdVftqM7OZ14K-61" target="lzB2u7mNdVftqM7OZ14K-46" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="TA6NM5vga4TUYUKUYXcC-30" value="" style="group;rounded=1;dashed=1;dashPattern=8 8;strokeColor=#6c8ebf;fillColor=#dae8fc;" parent="1" vertex="1" connectable="0">
<mxGeometry x="-1150" y="-1530" width="370" height="410" as="geometry" />
</mxCell>
<mxCell id="TA6NM5vga4TUYUKUYXcC-3" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="TA6NM5vga4TUYUKUYXcC-30" source="TA6NM5vga4TUYUKUYXcC-1" target="TA6NM5vga4TUYUKUYXcC-2" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="TA6NM5vga4TUYUKUYXcC-1" value="ItemManager&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Dictionary&amp;lt;string, ItemInfo&amp;gt; tagItemPairs - когда нужно получить инфу о текстуре, зная её таг, ищется это тут&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;ItemInfo GetItemInfo(string tag)&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;div&gt;LoadResourcesTextures()&lt;/div&gt;&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;" parent="TA6NM5vga4TUYUKUYXcC-30" vertex="1">
<mxGeometry width="369" height="150" as="geometry" />
</mxCell>
<mxCell id="TA6NM5vga4TUYUKUYXcC-15" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;shape=flexArrow;" parent="TA6NM5vga4TUYUKUYXcC-30" source="TA6NM5vga4TUYUKUYXcC-2" target="TA6NM5vga4TUYUKUYXcC-14" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="TA6NM5vga4TUYUKUYXcC-2" value="&lt;div&gt;ItemInfo&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;string tag&lt;/div&gt;&lt;div&gt;string TextureName&lt;/div&gt;&lt;div&gt;Texture2D Itemtexture&lt;/div&gt;&lt;div&gt;bool isCraftable&lt;/div&gt;&lt;div&gt;Dictionary&amp;lt;string, int&amp;gt; resourcesNeededToCraft()&lt;/div&gt;&lt;div&gt;LoadTexture()&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;" parent="TA6NM5vga4TUYUKUYXcC-30" vertex="1">
<mxGeometry y="170" width="370" height="150" as="geometry" />
</mxCell>
<mxCell id="TA6NM5vga4TUYUKUYXcC-14" value="&lt;div&gt;WeaponItemInfo&lt;/div&gt;&lt;div&gt;float damage&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;" parent="TA6NM5vga4TUYUKUYXcC-30" vertex="1">
<mxGeometry y="370" width="370" height="40" as="geometry" />
</mxCell>
<mxCell id="TA6NM5vga4TUYUKUYXcC-31" value="" style="group;strokeColor=#82b366;rounded=1;dashed=1;fillColor=#d5e8d4;gradientColor=#97d077;" parent="1" vertex="1" connectable="0">
<mxGeometry x="-560" y="1750" width="380" height="670" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-187" value="LootData&lt;div&gt;Контейнер Лута для удобства использования&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;AddLoot(object lootObject, int quantity)&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;Dictionary&amp;lt;string, int&amp;gt; loots&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;" parent="TA6NM5vga4TUYUKUYXcC-31" vertex="1">
<mxGeometry x="120" width="180" height="130" as="geometry" />
</mxCell>
<mxCell id="TA6NM5vga4TUYUKUYXcC-20" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;shape=flexArrow;" parent="TA6NM5vga4TUYUKUYXcC-31" source="TA6NM5vga4TUYUKUYXcC-16" target="TA6NM5vga4TUYUKUYXcC-18" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="TA6NM5vga4TUYUKUYXcC-21" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;shape=flexArrow;" parent="TA6NM5vga4TUYUKUYXcC-31" source="TA6NM5vga4TUYUKUYXcC-16" target="TA6NM5vga4TUYUKUYXcC-17" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="190.25" y="500" />
<mxPoint x="70.25" y="500" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="TA6NM5vga4TUYUKUYXcC-22" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;shape=flexArrow;" parent="TA6NM5vga4TUYUKUYXcC-31" source="TA6NM5vga4TUYUKUYXcC-16" target="TA6NM5vga4TUYUKUYXcC-19" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="190.25" y="500" />
<mxPoint x="330.25" y="500" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="TA6NM5vga4TUYUKUYXcC-16" value="IPlayerWeapon&lt;div&gt;Attack()&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;" parent="TA6NM5vga4TUYUKUYXcC-31" vertex="1">
<mxGeometry x="130" y="400" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="TA6NM5vga4TUYUKUYXcC-17" value="HandAttack" style="rounded=0;whiteSpace=wrap;html=1;" parent="TA6NM5vga4TUYUKUYXcC-31" vertex="1">
<mxGeometry y="610" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="TA6NM5vga4TUYUKUYXcC-18" value="SwordAttack" style="rounded=0;whiteSpace=wrap;html=1;" parent="TA6NM5vga4TUYUKUYXcC-31" vertex="1">
<mxGeometry x="129.62" y="610" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="TA6NM5vga4TUYUKUYXcC-19" value="GunAttack" style="rounded=0;whiteSpace=wrap;html=1;" parent="TA6NM5vga4TUYUKUYXcC-31" vertex="1">
<mxGeometry x="260" y="610" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-188" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="lzB2u7mNdVftqM7OZ14K-70" target="lzB2u7mNdVftqM7OZ14K-187" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="TA6NM5vga4TUYUKUYXcC-23" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="lzB2u7mNdVftqM7OZ14K-70" target="TA6NM5vga4TUYUKUYXcC-16" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-60" y="2105" />
<mxPoint x="-61" y="2180" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="TA6NM5vga4TUYUKUYXcC-32" value="" style="group;strokeColor=#6c8ebf;rounded=1;fillColor=#dae8fc;gradientColor=#7ea6e0;" parent="1" vertex="1" connectable="0">
<mxGeometry x="540" y="130" width="640" height="800" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-23" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="TA6NM5vga4TUYUKUYXcC-32" source="lzB2u7mNdVftqM7OZ14K-6" target="lzB2u7mNdVftqM7OZ14K-16" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-30" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="TA6NM5vga4TUYUKUYXcC-32" source="lzB2u7mNdVftqM7OZ14K-6" target="lzB2u7mNdVftqM7OZ14K-27" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="230" y="87.5" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-6" value="&lt;div&gt;CollisionManager&lt;/div&gt;Система физики&lt;div&gt;- апедейт позиций, проверив на коллизии&lt;/div&gt;&lt;div&gt;UpdatePositions()&lt;/div&gt;&lt;div&gt;GetObjectsInArea(Rectangle area)&lt;/div&gt;" style="rhombus;whiteSpace=wrap;html=1;" parent="TA6NM5vga4TUYUKUYXcC-32" vertex="1">
<mxGeometry width="230" height="175" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-15" value="&lt;div&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;ColliderComponent&lt;/span&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;Entity myEntity&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;- подключается к объекту&lt;/span&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;- регистрирует себя в CollisionManager&lt;/div&gt;&lt;div&gt;- Rectangle, который не дает на себя пройти&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;bool doesStop - является этот колайдера&lt;br&gt;&lt;/div&gt;&lt;div&gt;Rectangle stopRectangle&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;bool isTrigger&lt;/div&gt;&lt;div&gt;Rectangle triggerRectangle&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;OnTriggerEnter&amp;nbsp;&lt;span style=&quot;background-color: initial;&quot;&gt;- игрок вошел в область взаимодействия объекта&lt;/span&gt;&lt;/div&gt;&lt;div&gt;OnTriggerZone - вызывается пока игрок в области триггера&lt;/div&gt;&lt;div&gt;OnTriggerExit -&lt;span style=&quot;background-color: initial;&quot;&gt;&amp;nbsp;игрок вышел из области взаимодействия объекта&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;На эти эвенты подписываются в вещах, типо лута и дверей. Человек пишет код этих вещей и что происходит, когда к ним кто-то подходит&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;" parent="TA6NM5vga4TUYUKUYXcC-32" vertex="1">
<mxGeometry x="270" y="352.5" width="280" height="437.5" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-175" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;shape=link;" parent="TA6NM5vga4TUYUKUYXcC-32" source="lzB2u7mNdVftqM7OZ14K-16" target="lzB2u7mNdVftqM7OZ14K-15" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="340" y="330" />
<mxPoint x="340" y="330" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-16" value="Лист&amp;nbsp;&lt;div&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;CollisionComponent&lt;/span&gt;&lt;/div&gt;" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;" parent="TA6NM5vga4TUYUKUYXcC-32" vertex="1">
<mxGeometry x="260" y="168.75" width="160" height="35" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-24" value="Это подключается в&lt;div&gt;игроке, на стенах&lt;/div&gt;&lt;div&gt;на врагах&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;" parent="TA6NM5vga4TUYUKUYXcC-32" vertex="1">
<mxGeometry x="490" y="740" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-176" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;shape=link;" parent="TA6NM5vga4TUYUKUYXcC-32" source="lzB2u7mNdVftqM7OZ14K-27" target="lzB2u7mNdVftqM7OZ14K-15" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="525" y="310" />
<mxPoint x="525" y="310" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-27" value="Лист&amp;nbsp;&lt;div&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;TriggerComponent&lt;/span&gt;&lt;/div&gt;" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;" parent="TA6NM5vga4TUYUKUYXcC-32" vertex="1">
<mxGeometry x="450" y="168.75" width="140" height="35" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-174" value="Разнести на два компонента?" style="ellipse;shape=cloud;whiteSpace=wrap;html=1;" parent="TA6NM5vga4TUYUKUYXcC-32" vertex="1">
<mxGeometry x="500" y="310" width="140" height="90" as="geometry" />
</mxCell>
<mxCell id="TA6NM5vga4TUYUKUYXcC-34" value="" style="group;fillColor=#ffcccc;strokeColor=#36393d;rounded=1;" parent="1" vertex="1" connectable="0">
<mxGeometry x="-620" y="-950" width="380" height="510" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-2" value="App manager&lt;div&gt;&lt;br&gt;&lt;div&gt;- большая стейт машина, каждый стейт - экран (менюшки+игра)&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;AbstractGUI currentGUI - текущий гуи, который мы рисуем&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;ChangeGUI()&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Update() - Обновлять по стейту&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;currentGUI&lt;/span&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;.Update()&lt;/span&gt;&lt;/div&gt;&lt;div&gt;GameEnded(Loot)&lt;/div&gt;&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;" parent="TA6NM5vga4TUYUKUYXcC-34" vertex="1">
<mxGeometry width="380" height="310" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-119" value="" style="group;strokeColor=default;dashed=1;dashPattern=8 8;rounded=1;" parent="TA6NM5vga4TUYUKUYXcC-34" vertex="1" connectable="0">
<mxGeometry y="340" width="380" height="170" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-114" value="Наша Стейт Машина&lt;div&gt;NotPlaying&lt;div&gt;HostPlaying&lt;/div&gt;&lt;div&gt;ClientPlaying&lt;/div&gt;&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;" parent="lzB2u7mNdVftqM7OZ14K-119" vertex="1">
<mxGeometry x="129.99999999999994" width="119.99999999999996" height="100" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-115" value="NotPlaying&lt;div&gt;GUI.update()&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;" parent="lzB2u7mNdVftqM7OZ14K-119" vertex="1">
<mxGeometry y="110" width="119.99999999999996" height="60" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-116" value="HostPlaying&lt;div&gt;GUI.update()&lt;/div&gt;&lt;div&gt;Server.update()&lt;br&gt;&lt;/div&gt;&lt;div&gt;client.update()&lt;br&gt;&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;" parent="lzB2u7mNdVftqM7OZ14K-119" vertex="1">
<mxGeometry x="129.99999999999994" y="110" width="119.99999999999996" height="60" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-117" value="&lt;br&gt;&lt;div&gt;&lt;div&gt;ClientPlaying&lt;/div&gt;&lt;div&gt;GUI.update()&lt;/div&gt;&lt;div&gt;client.update()&lt;/div&gt;&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;" parent="lzB2u7mNdVftqM7OZ14K-119" vertex="1">
<mxGeometry x="259.9999999999999" y="110" width="119.99999999999996" height="60" as="geometry" />
</mxCell>
<mxCell id="TA6NM5vga4TUYUKUYXcC-35" value="" style="group;fillColor=#fff2cc;strokeColor=#d6b656;rounded=1;dashed=1;" parent="1" vertex="1" connectable="0">
<mxGeometry x="-440" y="240" width="190" height="323" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-51" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="TA6NM5vga4TUYUKUYXcC-35" source="lzB2u7mNdVftqM7OZ14K-46" target="lzB2u7mNdVftqM7OZ14K-49" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="95" y="311" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-46" value="&lt;div&gt;ServerNetworkManager&lt;/div&gt;&lt;div&gt;StartWaitingForPlayers() - Слушает игроков, которые хотят подключиться&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;StartListening() - начать слушать клиентов в самой игре&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;SendData() - каждый тик&lt;/div&gt;&lt;div&gt;AddData(&lt;span style=&quot;background-color: initial;&quot;&gt;IUpdateData&lt;/span&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;" parent="TA6NM5vga4TUYUKUYXcC-35" vertex="1">
<mxGeometry width="190" height="170" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-49" value="Лист Updates" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;" parent="TA6NM5vga4TUYUKUYXcC-35" vertex="1">
<mxGeometry x="55" y="298" width="80" height="25" as="geometry" />
</mxCell>
<mxCell id="lzB2u7mNdVftqM7OZ14K-79" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="lzB2u7mNdVftqM7OZ14K-25" target="lzB2u7mNdVftqM7OZ14K-15" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

20
.run/ZoFo.run.xml Normal file
View file

@ -0,0 +1,20 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="ZoFo" type="DotNetProject" factoryName=".NET Project">
<option name="EXE_PATH" value="$PROJECT_DIR$/ZoFo/bin/Debug/net8.0/ZoFo" />
<option name="PROGRAM_PARAMETERS" value="" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/ZoFo/bin/Debug/net8.0" />
<option name="PASS_PARENT_ENVS" value="1" />
<option name="USE_EXTERNAL_CONSOLE" value="0" />
<option name="USE_MONO" value="0" />
<option name="RUNTIME_ARGUMENTS" value="" />
<option name="PROJECT_PATH" value="$PROJECT_DIR$/ZoFo/ZoFo.csproj" />
<option name="PROJECT_EXE_PATH_TRACKING" value="1" />
<option name="PROJECT_ARGUMENTS_TRACKING" value="1" />
<option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="1" />
<option name="PROJECT_KIND" value="DotNetCore" />
<option name="PROJECT_TFM" value="net8.0" />
<method v="2">
<option name="Build" />
</method>
</configuration>
</component>

View file

@ -1,13 +1,11 @@
using DangerousD.GameCore.Graphics;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework;
using Newtonsoft.Json;
using System;
using NativeFileDialogSharp;
using System.IO;
using System.Linq;
using System.Reflection.Metadata;
using Zofo.GameCore.ZoFo_grafics;
using ZoFo.GameCore.Graphics;
namespace AnimationsFileCreator
{
class Program

1
GameSettings.txt Normal file
View file

@ -0,0 +1 @@
{"IsFullScreen":false,"MainVolume":1.0,"MusicVolume":1.0,"SoundEffectsVolume":1.0,"Resolution":{"X":1440,"Y":900}}

View file

@ -0,0 +1,49 @@
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;
using Microsoft.Xna.Framework.Input;
namespace MonogameLibrary.UI.Elements;
public class Bar : DrawableUIElement
{
public float percent = 0.5f;
private DrawableUIElement barInside;
public Color inColor;
public string inTextureName;
public Bar(UIManager manager, int layerIndex = 0, string textureName = "") : base(manager, layerIndex, textureName)
{
}
public void Initialize()
{
barInside = new DrawableUIElement(Manager)
{
rectangle = new Rectangle(rectangle.X + rectangle.Height / 8, rectangle.Y + rectangle.Height / 8,
(int)((rectangle.Width - rectangle.Height / 4) * percent), rectangle.Height / 8 * 7),
mainColor = inColor,
textureName = inTextureName
};
}
public override void LoadTexture(ContentManager content)
{
barInside.LoadTexture(content);
base.LoadTexture(content);
}
public void Update(GameTime gameTime, float percent)
{
barInside.rectangle = new Rectangle(rectangle.X + rectangle.Height / 8, rectangle.Y + rectangle.Height / 8,
(int)((rectangle.Width - rectangle.Height / 4) * percent), rectangle.Height / 8 * 7);
}
}

View file

@ -0,0 +1,91 @@
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 HoverWindow : DrawableUIElement
{
public string tagItem;
public string discriptions;
public Dictionary<string, int> resourcesNeededToCraft;
private List<Label> Labels = new List<Label>();
public float scale2;
public string fontName2;
public Color fontColor2;
public string itemTextureName1;
private DrawableUIElement icon;
private Label itemName;
private Label discription;
private int labelIndex = 0;
public HoverWindow(UIManager manager, int layerIndex = 0, string textureName = "") : base(manager, layerIndex, textureName)
{
}
public void Initialize(ContentManager content)
{
icon = new DrawableUIElement(Manager)
{
rectangle = new Rectangle(rectangle.X + rectangle.Width / 20, rectangle.Y + rectangle.Width / 20, rectangle.Width / 5, rectangle.Width / 5),
mainColor = Color.White, textureName = itemTextureName1
};
icon.LoadTexture(content);
itemName = new Label(Manager)
{
rectangle = new Rectangle(rectangle.X + rectangle.Width / 20 + rectangle.Width / 5 + rectangle.Width / 20, rectangle.Y + rectangle.Width / 10, rectangle.Width / 3 * 2, rectangle.Width / 5 ),
fontColor = fontColor2, text = tagItem, scale = scale2, fontName = fontName2, mainColor = Color.Transparent, textAligment = TextAligment.Left
};
itemName.LoadTexture(content);
discription = new Label(Manager)
{
rectangle = new Rectangle(rectangle.X + rectangle.Width / 20, rectangle.Y + rectangle.Width / 20 + rectangle.Width / 5 + rectangle.Width / 20, rectangle.Width / 5, rectangle.Width / 5),
fontColor = fontColor2, text = discriptions, scale = scale2 / 1.5f, fontName = fontName2, mainColor = Color.Transparent, textAligment = TextAligment.Left
};
discription.LoadTexture(content);
foreach (var resource in resourcesNeededToCraft)
{
Label res = new Label(Manager)
{
rectangle = new Rectangle(rectangle.X + rectangle.Width / 2 - rectangle.Width / 3 / 2, rectangle.Y + rectangle.Width / 20 + rectangle.Width / 5 + rectangle.Width / 5 + rectangle.Width / 20 + (rectangle.Width / 10 + rectangle.Width / 40) * labelIndex, rectangle.Width / 3, rectangle.Width / 10),
fontColor = fontColor2, text = resource.Key + " " + resource.Value, scale = scale2, fontName = fontName2, mainColor = Color.Transparent
};
res.LoadTexture(content);
Labels.Add(res);
labelIndex++;
}
}
public override void LoadTexture(ContentManager content)
{
base.LoadTexture(content);
}
public void Update(GameTime gameTime)
{
labelIndex = 0;
icon.rectangle = new Rectangle(rectangle.X + rectangle.Width / 20, rectangle.Y + rectangle.Width / 20, rectangle.Width / 5, rectangle.Width / 5);
itemName.rectangle = new Rectangle(rectangle.X + rectangle.Width / 20 + rectangle.Width / 5 + rectangle.Width / 20,
rectangle.Y + rectangle.Width / 10, rectangle.Width / 3 * 2, rectangle.Width / 5);
discription.rectangle = new Rectangle(rectangle.X + rectangle.Width / 20,
rectangle.Y + rectangle.Width / 20 + rectangle.Width / 5 + rectangle.Width / 20, rectangle.Width / 5,
rectangle.Width / 5);
foreach (var label in Labels)
{
label.rectangle = new Rectangle(rectangle.X + rectangle.Width / 2 - rectangle.Width / 3 / 2,
rectangle.Y + rectangle.Width / 20 + rectangle.Width / 5 + rectangle.Width / 5 + rectangle.Width / 20 +
(rectangle.Width / 10 + rectangle.Width / 40) * labelIndex, rectangle.Width / 3, rectangle.Width / 10);
labelIndex++;
}
}
}

View file

@ -0,0 +1,127 @@
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;
using Microsoft.Xna.Framework.Input;
namespace MonogameLibrary.UI.Elements;
public class ItemDisplayButton : Button
{
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;
private HoverState presentState = HoverState.None;
private HoverWindow hoverWindow = null;
private ContentManager content;
public string discriptions1;
public Dictionary<string, int> resourcesNeededToCraft1;
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)
{
this.content = content;
icon.LoadTexture(content);
base.LoadTexture(content);
if (itemTextureName == "")
{
itemTexture = new Texture2D(Manager.GraphicsDevice, 1, 1);
itemTexture.SetData<Color>(new Color[] { mainColor });
}
else
{
try
{
itemTexture = content.Load<Texture2D>(itemTextureName);
}
catch
{
itemTexture = new Texture2D(Manager.GraphicsDevice, 1, 1);
itemTexture.SetData<Color>(new Color[] { mainColor });
}
}
}
public bool Update(GameTime gameTime)
{
if (hoverState == HoverState.Hovering)
{
if (presentState != hoverState)
{
hoverWindow = new HoverWindow(Manager)
{
rectangle = new Rectangle(Mouse.GetState().Position.X, Mouse.GetState().Position.Y, rectangle.Width, rectangle.Height * 10),
mainColor = Color.Gray,
tagItem = text1,
discriptions = discriptions1,
resourcesNeededToCraft = resourcesNeededToCraft1,
fontColor2 = fontColor1,
fontName2 = fontName1,
scale2 = scale1,
itemTextureName1 = itemTextureName
};
hoverWindow.Initialize(content);
hoverWindow.LoadTexture(content);
}
hoverWindow.rectangle.X = Mouse.GetState().Position.X;
hoverWindow.rectangle.Y = Mouse.GetState().Position.Y;
hoverWindow.Update(gameTime);
}
else if (hoverState == HoverState.None)
{
if (presentState != hoverState)
{
return true;
}
}
presentState = hoverState;
return false;
}
public override void Draw(SpriteBatch _spriteBatch)
{
base.Draw(_spriteBatch);
}
}

View file

@ -0,0 +1,150 @@
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;
using Microsoft.Xna.Framework.Input;
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;
private HoverState presentState = HoverState.None;
private HoverWindow hoverWindow = null;
public string discriptions1;
public Dictionary<string, int> resourcesNeededToCraft1;
public HoverState hoverState = HoverState.None;
private ContentManager content;
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)
{
this.content = content;
icon.LoadTexture(content);
base.LoadTexture(content);
if (itemTextureName == "")
{
itemTexture = new Texture2D(Manager.GraphicsDevice, 1, 1);
itemTexture.SetData<Color>(new Color[] { mainColor });
}
else
{
try
{
itemTexture = content.Load<Texture2D>(itemTextureName);
}
catch
{
itemTexture = new Texture2D(Manager.GraphicsDevice, 1, 1);
itemTexture.SetData<Color>(new Color[] { mainColor });
}
}
}
public bool Update(GameTime gameTime)
{
if (rectangle.Intersects(new Rectangle(Mouse.GetState().Position, Point.Zero)))
{
hoverState = HoverState.Hovering;
}
else
{
hoverState = HoverState.None;
}
if (hoverState == HoverState.Hovering)
{
if (presentState != hoverState)
{
if (resourcesNeededToCraft1 == null)
{
resourcesNeededToCraft1 = new Dictionary<string, int>();
}
hoverWindow = new HoverWindow(Manager)
{
rectangle = new Rectangle(Mouse.GetState().Position.X, Mouse.GetState().Position.Y, rectangle.Width, rectangle.Height * 10),
mainColor = Color.Gray,
tagItem = text1,
discriptions = discriptions1,
resourcesNeededToCraft = resourcesNeededToCraft1,
fontColor2 = fontColor1,
fontName2 = fontName1,
scale2 = scale1,
itemTextureName1 = itemTextureName
};
hoverWindow.Initialize(content);
hoverWindow.LoadTexture(content);
}
hoverWindow.rectangle.X = Mouse.GetState().Position.X;
hoverWindow.rectangle.Y = Mouse.GetState().Position.Y;
hoverWindow.Update(gameTime);
}
else if (hoverState == HoverState.None)
{
if (presentState != hoverState)
{
return true;
}
}
presentState = hoverState;
return false;
}
public override void Draw(SpriteBatch _spriteBatch)
{
if (hoverState == HoverState.None)
{
_spriteBatch.Draw(texture, rectangle, Color.White);
}
else if (hoverState == HoverState.Hovering)
{
_spriteBatch.Draw(texture, rectangle, new Color(211, 211, 211));
}
base.Draw(_spriteBatch);
_spriteBatch.Draw(texture, rectangle, Color.White);
}
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,64 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This file contains an xml description of a font, and will be read by the XNA
Framework Content Pipeline. Follow the comments to customize the appearance
of the font in your game, and to change the characters which are available to draw
with.
-->
<XnaContent xmlns:Graphics="Microsoft.Xna.Framework.Content.Pipeline.Graphics">
<Asset Type="Graphics:FontDescription">
<!--
Modify this string to change the font that will be imported.
-->
<FontName>Troubleside-lgjxX.ttf</FontName>
<!--
Size is a float value, measured in points. Modify this value to change
the size of the font.
-->
<Size>50</Size>
<!--
Spacing is a float value, measured in pixels. Modify this value to change
the amount of spacing in between characters.
-->
<Spacing>0</Spacing>
<!--
UseKerning controls the layout of the font. If this value is true, kerning information
will be used when placing characters.
-->
<UseKerning>true</UseKerning>
<!--
Style controls the style of the font. Valid entries are "Regular", "Bold", "Italic",
and "Bold, Italic", and are case sensitive.
-->
<Style>Regular</Style>
<!--
If you uncomment this line, the default character will be substituted if you draw
or measure text that contains characters which were not included in the font.
-->
<!-- <DefaultCharacter>*</DefaultCharacter> -->
<!--
CharacterRegions control what letters are available in the font. Every
character from Start to End will be built and made available for drawing. The
default range is from 32, (ASCII space), to 126, ('~'), covering the basic Latin
character set. The characters are ordered according to the Unicode standard.
See the documentation for more information.
-->
<CharacterRegions>
<CharacterRegion>
<Start>32</Start>
<End>127</End>
</CharacterRegion>
<CharacterRegion>
<Start>&#1040;</Start>
<End>&#1112;</End>
</CharacterRegion>
</CharacterRegions>
</Asset>
</XnaContent>

Binary file not shown.

View file

@ -1,43 +1,26 @@
{
"Map/SizeTest": {
"height": 4300,
"width": 2
},
"activeFile": "TileSets/TileSet 1.tsj",
"expandedProjectPaths": [
"TileMaps",
".",
"TileSets"
],
"fileStates": {
"TileMaps/TileSets/TileSet 1.tsj": {
"scaleInDock": 1
},
"TileMaps/main.tmj": {
"scale": 0.25,
"scale": 0.33,
"selectedLayer": 0,
"viewCenter": {
"x": 1734,
"y": 1652
"x": -463.63636363636374,
"y": 300
}
},
"TileSets/TileSet 1.tsj": {
"scaleInDock": 1,
"scaleInEditor": 1.5
"TileSets/IconSet.tsj": {
"dynamicWrapping": true
},
"TileSets/WallSet.tsj": {
"scaleInDock": 1,
"scaleInEditor": 1
"TileSets/TileSet 1.tsj": {
"dynamicWrapping": false,
"scaleInDock": 1
},
"TileSets/TilesetNature.tsj": {
"scaleInDock": 1.5
},
"TileSets/tileset 1 collision.tsj": {
"dynamicWrapping": false,
"scaleInDock": 1
}
},
"openFiles": [
"TileSets/TileSet 1.tsj",
"TileSets/WallSet.tsj",
"TileMaps/main.tmj"
],
"recentFiles": [
"TileMaps/main.tmj",
"TileSets/WallSet.tsj",
"TileSets/TileSet 1.tsj"
]
}
}

View file

@ -0,0 +1,17 @@
{ "object":
{
"gid":1,
"height":16,
"id":13,
"name":"Ammo",
"rotation":0,
"type":"",
"visible":true,
"width":16
},
"tileset": {
"firstgid": 1,
"source": "..\/..\/TileSets\/IconSet.tsj"
},
"type":"template"
}

View file

@ -0,0 +1,17 @@
{ "object":
{
"gid":3,
"height":16,
"id":11,
"name":"BottleOfWater",
"rotation":0,
"type":"",
"visible":true,
"width":16
},
"tileset": {
"firstgid": 1,
"source": "..\/..\/TileSets\/IconSet.tsj"
},
"type":"template"
}

View file

@ -0,0 +1,17 @@
{ "object":
{
"gid":7,
"height":16,
"id":17,
"name":"Peeble",
"rotation":0,
"type":"",
"visible":true,
"width":16
},
"tileset": {
"firstgid": 1,
"source": "..\/..\/TileSets\/IconSet.tsj"
},
"type":"template"
}

View file

@ -0,0 +1,18 @@
{ "object":
{
"gid":2,
"height":16,
"id":10,
"name":"PureBottleOfWater",
"rotation":0,
"type":"",
"visible":true,
"width":16
},
"tileset":
{
"firstgid":1,
"source":"..\/..\/TileSets\/IconSet.tsj"
},
"type":"template"
}

View file

@ -0,0 +1,17 @@
{ "object":
{
"gid":6,
"height":16,
"id":16,
"name":"RottenFlesh",
"rotation":0,
"type":"",
"visible":true,
"width":16
},
"tileset": {
"firstgid": 1,
"source": "..\/..\/TileSets\/IconSet.tsj"
},
"type":"template"
}

View file

@ -0,0 +1,17 @@
{ "object":
{
"gid":5,
"height":16,
"id":15,
"name":"Steel",
"rotation":0,
"type":"",
"visible":true,
"width":16
},
"tileset": {
"firstgid": 1,
"source": "..\/..\/TileSets\/IconSet.tsj"
},
"type":"template"
}

View file

@ -0,0 +1,17 @@
{ "object":
{
"gid":4,
"height":16,
"id":12,
"name":"Wood",
"rotation":0,
"type":"",
"visible":true,
"width":16
},
"tileset": {
"firstgid": 1,
"source": "..\/..\/TileSets\/IconSet.tsj"
},
"type":"template"
}

View file

@ -0,0 +1,18 @@
{ "object":
{
"gid":8,
"height":16,
"id":1,
"name":"Zombie",
"rotation":0,
"type":"",
"visible":true,
"width":16
},
"tileset":
{
"firstgid":1,
"source":"..\/..\/TileSets\/IconSet.tsj"
},
"type":"template"
}

File diff suppressed because it is too large Load diff

View file

@ -1,116 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<map version="1.10" tiledversion="1.10.2" orientation="orthogonal" renderorder="right-down" width="30" height="20" tilewidth="16" tileheight="16" infinite="1" nextlayerid="2" nextobjectid="1">
<tileset firstgid="1" source="../TileSets/TileSet 1.tsj"/>
<layer id="1" name="Слой тайлов 1" width="30" height="20">
<data encoding="csv">
<chunk x="-16" y="-16" width="16" height="16">
24,24,24,28,29,24,24,24,28,46,29,24,25,115,45,46,
24,24,24,25,23,24,24,24,50,2,51,24,50,2,2,2,
24,24,24,50,32,29,24,24,24,24,24,24,24,24,24,28,
28,29,24,28,10,32,29,24,24,28,46,29,24,24,24,50,
47,23,24,50,32,10,32,46,29,50,2,51,24,24,24,24,
1,32,29,90,25,23,50,2,32,29,24,90,28,29,24,24,
51,50,32,29,50,51,90,24,25,45,46,29,25,23,24,90,
24,24,50,32,46,29,24,28,10,2,2,51,50,51,24,90,
24,24,24,50,2,32,46,10,32,29,24,90,24,24,24,90,
29,24,89,24,24,50,3,23,50,32,46,46,46,46,29,24,
51,24,24,28,29,24,25,23,24,25,1,2,3,111,45,29,
24,90,24,50,51,24,25,23,28,47,23,89,50,3,115,23,
24,24,24,24,24,89,50,32,47,1,51,24,24,50,2,51,
28,29,24,24,24,24,28,10,2,51,24,24,24,24,24,28,
10,32,29,24,24,24,25,23,28,29,90,24,24,90,24,50,
32,10,51,24,24,24,50,32,10,32,29,24,90,28,29,24
</chunk>
<chunk x="0" y="-16" width="16" height="16">
10,51,24,90,24,25,23,28,29,24,24,24,24,24,24,24,
51,24,28,29,24,50,32,10,51,24,24,24,24,24,24,24,
29,28,10,32,46,29,50,32,29,24,24,24,24,24,24,24,
51,25,23,50,2,32,29,25,23,24,24,28,29,24,90,24,
24,25,23,24,24,25,23,50,51,24,24,50,32,29,24,90,
24,50,32,29,90,25,45,29,24,24,24,24,50,51,24,89,
24,89,50,51,24,25,114,23,24,24,24,24,24,24,24,24,
24,24,28,29,24,50,2,51,24,24,90,28,29,24,24,28,
24,24,25,23,89,24,24,24,28,46,29,25,23,24,24,50,
28,46,10,51,24,28,46,29,25,111,45,10,51,28,29,24,
50,2,51,24,24,25,115,45,10,3,1,51,24,25,23,24,
24,24,24,24,24,50,2,2,32,10,51,24,90,25,23,24,
24,24,24,24,24,24,24,24,50,51,24,24,24,25,23,24,
46,29,24,24,24,24,24,89,24,24,24,28,46,47,23,90,
2,32,29,24,24,28,46,46,29,24,24,25,1,3,23,89,
24,50,32,29,24,25,1,3,23,24,89,50,32,10,51,24
</chunk>
<chunk x="16" y="-16" width="16" height="16">
24,24,24,24,90,24,89,24,89,24,50,51,89,24,24,24,
24,28,29,28,29,24,24,24,24,28,29,24,24,24,28,29,
24,25,23,50,51,24,24,28,29,50,51,24,24,24,25,45,
90,50,51,28,29,24,24,25,23,24,24,28,29,24,50,3,
24,24,28,10,51,90,90,50,51,24,24,50,51,24,24,50,
24,24,25,45,29,24,28,29,24,24,24,24,24,28,29,24,
90,24,50,2,51,28,10,51,90,24,28,29,24,25,45,46,
29,90,24,24,24,50,51,24,24,28,10,32,46,10,3,1,
32,29,24,90,24,24,24,24,28,47,23,50,2,51,50,51,
25,23,24,24,28,46,46,46,47,114,45,29,24,24,24,24,
50,32,29,24,50,3,111,111,115,111,1,32,29,24,24,24,
24,50,51,24,28,10,2,2,2,2,32,10,51,24,24,89,
24,24,89,90,25,23,24,24,24,24,50,32,46,46,29,89,
24,24,24,90,25,23,89,24,28,29,90,50,2,2,51,24,
24,24,24,28,10,51,24,28,47,45,29,24,24,24,24,24,
24,24,24,25,23,24,90,50,2,2,32,46,46,46,46,46
</chunk>
<chunk x="-16" y="0" width="16" height="16">
10,32,46,29,24,24,24,25,23,50,32,29,24,50,32,46,
51,50,2,32,29,24,24,25,45,29,25,23,24,24,25,1,
24,24,24,25,23,28,46,10,2,51,50,51,24,24,50,51,
90,89,90,50,51,50,2,51,24,24,28,29,90,24,24,24,
90,28,46,29,90,24,24,24,90,24,50,51,90,24,90,28,
29,50,2,51,24,24,24,89,24,24,24,24,24,89,24,50,
23,24,24,28,46,29,90,90,24,89,24,28,29,24,24,24,
32,46,29,25,115,45,29,24,90,24,24,25,23,24,24,28,
10,2,32,47,115,1,51,24,24,24,24,25,23,24,28,10,
32,29,50,2,2,51,24,24,24,24,24,25,23,28,10,51,
50,51,89,24,24,89,24,28,29,24,24,50,32,10,32,46,
24,24,90,90,28,46,29,50,51,24,24,24,25,23,25,115,
24,90,24,24,50,2,32,29,24,24,90,24,25,45,10,2,
24,24,24,24,24,24,50,32,29,24,24,28,10,3,23,24,
90,24,24,24,24,89,90,50,32,29,90,50,51,50,32,46,
46,29,24,90,24,24,24,24,50,51,28,29,24,24,50,2
</chunk>
<chunk x="0" y="0" width="16" height="16">
46,46,10,32,46,47,23,25,23,89,24,24,25,23,90,24,
2,2,32,47,1,2,51,25,23,24,28,29,50,32,29,24,
24,90,50,3,23,24,28,10,51,28,47,45,29,25,23,28,
24,24,24,50,51,28,47,23,24,50,3,114,45,10,51,50,
29,24,24,89,24,25,114,45,46,46,10,2,2,32,29,89,
51,24,24,24,24,50,3,111,115,115,23,24,24,50,32,29,
24,28,29,24,24,24,25,1,2,2,51,90,24,90,50,51,
29,50,32,29,28,29,25,23,24,24,89,28,29,24,24,24,
51,24,50,51,50,32,10,32,46,29,24,50,51,24,90,24,
24,24,24,24,89,50,32,10,2,32,46,29,89,28,29,24,
29,90,24,24,24,24,50,51,28,10,3,23,28,10,51,24,
23,89,24,24,90,24,24,24,50,32,10,51,50,51,24,24,
51,24,24,24,24,24,24,24,24,50,32,46,46,29,28,46,
24,24,24,90,24,24,24,24,24,24,50,3,1,32,47,115,
46,29,24,89,24,24,24,89,24,24,24,25,45,10,3,111,
2,51,28,29,28,29,24,28,46,46,46,10,2,51,50,2
</chunk>
<chunk x="16" y="0" width="16" height="16">
28,29,28,10,32,46,29,24,24,28,10,2,2,2,2,2,
50,51,50,51,25,115,45,46,29,50,51,24,24,24,24,24,
29,24,89,24,50,3,115,114,23,24,24,24,24,24,24,24,
51,90,24,89,24,50,2,2,51,24,89,24,24,28,46,29,
24,90,24,24,89,24,90,28,29,24,24,24,28,10,2,51,
24,24,24,24,28,29,90,50,51,28,29,24,25,23,24,24,
28,29,24,24,50,32,29,28,29,50,51,89,50,32,29,24,
50,51,24,24,24,50,32,10,51,24,89,24,24,25,23,24,
24,24,24,24,24,24,50,32,29,24,24,24,24,50,51,24,
90,24,24,24,24,24,24,25,45,29,24,24,24,89,28,29,
24,24,24,24,28,29,24,25,1,51,24,24,24,24,50,32,
28,29,28,29,50,32,46,10,51,28,29,24,24,24,24,50,
47,45,10,51,24,50,2,32,46,47,23,24,89,90,24,24,
111,115,23,24,24,90,24,50,2,2,32,29,24,89,28,46,
1,2,51,28,46,46,29,24,28,29,50,32,29,28,47,111,
51,24,24,50,3,114,23,24,50,32,46,47,23,25,111,111
</chunk>
</data>
</layer>
</map>

View file

@ -0,0 +1,66 @@
{ "columns":0,
"grid":
{
"height":1,
"orientation":"orthogonal",
"width":1
},
"margin":0,
"name":"IconSet",
"spacing":0,
"tilecount":8,
"tiledversion":"1.10.2",
"tileheight":1200,
"tiles":[
{
"id":0,
"image":"..\/..\/Textures\/icons\/Collectables\/Ammo.png",
"imageheight":512,
"imagewidth":512
},
{
"id":1,
"image":"..\/..\/Textures\/icons\/Collectables\/PureBottleOfWater.png",
"imageheight":32,
"imagewidth":32
},
{
"id":2,
"image":"..\/..\/Textures\/icons\/Collectables\/BottleOfWater.png",
"imageheight":32,
"imagewidth":32
},
{
"id":3,
"image":"..\/..\/Textures\/icons\/Collectables\/Wood.png",
"imageheight":32,
"imagewidth":32
},
{
"id":4,
"image":"..\/..\/Textures\/icons\/Collectables\/Steel.png",
"imageheight":32,
"imagewidth":32
},
{
"id":5,
"image":"..\/..\/Textures\/icons\/Collectables\/RottenFlesh.png",
"imageheight":32,
"imagewidth":32
},
{
"id":6,
"image":"..\/..\/Textures\/icons\/Collectables\/Peeble.png",
"imageheight":1200,
"imagewidth":1200
},
{
"id":7,
"image":"..\/..\/Textures\/icons\/zombie_218153.png",
"imageheight":512,
"imagewidth":512
}],
"tilewidth":1200,
"type":"tileset",
"version":"1.10"
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,21 +0,0 @@
{ "class":"StopObject",
"columns":5,
"grid":
{
"height":16,
"orientation":"orthogonal",
"width":16
},
"image":"..\/..\/Textures\/StopObjects\/Tilelist2.png",
"imageheight":1302,
"imagewidth":652,
"margin":2,
"name":"WallSet",
"spacing":2,
"tilecount":3240,
"tiledversion":"1.10.2",
"tileheight":128,
"tilewidth":128,
"type":"tileset",
"version":"1.10"
}

View file

@ -1,5 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<tileset version="1.10" tiledversion="1.10.2" name="WallSet" tilewidth="128" tileheight="128" spacing="2" margin="2" tilecount="3240" columns="5">
<grid orientation="orthogonal" width="16" height="16"/>
<image source="../../Textures/StopObjects/Tilelist2.png" width="652" height="1302"/>
</tileset>

View file

@ -0,0 +1,102 @@
{ "columns":4,
"image":"..\/..\/Textures\/TileSetImages\/Campfire.png",
"imageheight":32,
"imagewidth":128,
"margin":0,
"name":"bonfire",
"spacing":0,
"tilecount":22,
"tiledversion":"1.10.2",
"tileheight":32,
"tiles":[
{
"animation":[
{
"duration":250,
"tileid":0
},
{
"duration":250,
"tileid":1
},
{
"duration":250,
"tileid":2
},
{
"duration":250,
"tileid":3
}],
"id":0,
"type":"StopObject"
},
{
"id":1,
"type":"StopObject"
},
{
"id":2,
"type":"StopObject"
},
{
"id":3,
"type":"StopObject"
},
{
"id":4
},
{
"id":7
},
{
"id":8
},
{
"id":9
},
{
"id":10
},
{
"id":11
},
{
"id":12
},
{
"id":13
},
{
"id":14
},
{
"id":20
},
{
"id":16
},
{
"id":17
},
{
"id":18
},
{
"id":19
},
{
"id":21
},
{
"id":5
},
{
"id":6
},
{
"id":15
}],
"tilewidth":32,
"type":"tileset",
"version":"1.10"
}

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
{"name":"Flowers","variations":[{"map":{"compressionlevel":-1,"height":1,"infinite":false,"layers":[{"compression":"zlib","data":"eJzjZGRgAAAAKwAL","encoding":"base64","height":1,"id":1,"name":"","opacity":1,"type":"tilelayer","visible":true,"width":1,"x":0,"y":0}],"nextlayerid":2,"nextobjectid":1,"orientation":"orthogonal","renderorder":"right-down","tiledversion":"1.10.2","tileheight":16,"tilesets":[{"firstgid":1,"source":"../TileSets/TilesetNature.tsj"}],"tilewidth":16,"type":"map","version":"1.10","width":1},"probability":1},{"map":{"compressionlevel":-1,"height":1,"infinite":false,"layers":[{"compression":"zlib","data":"eJzjYmRgAAAALwAM","encoding":"base64","height":1,"id":1,"name":"","opacity":1,"type":"tilelayer","visible":true,"width":1,"x":0,"y":0}],"nextlayerid":2,"nextobjectid":1,"orientation":"orthogonal","renderorder":"right-down","tiledversion":"1.10.2","tileheight":16,"tilesets":[{"firstgid":1,"source":"../TileSets/TilesetNature.tsj"}],"tilewidth":16,"type":"map","version":"1.10","width":1},"probability":1},{"map":{"compressionlevel":-1,"height":1,"infinite":false,"layers":[{"compression":"zlib","data":"eJzjZmRgAAAAMwAN","encoding":"base64","height":1,"id":1,"name":"","opacity":1,"type":"tilelayer","visible":true,"width":1,"x":0,"y":0}],"nextlayerid":2,"nextobjectid":1,"orientation":"orthogonal","renderorder":"right-down","tiledversion":"1.10.2","tileheight":16,"tilesets":[{"firstgid":1,"source":"../TileSets/TilesetNature.tsj"}],"tilewidth":16,"type":"map","version":"1.10","width":1},"probability":1},{"map":{"compressionlevel":-1,"height":1,"infinite":false,"layers":[{"compression":"zlib","data":"eJzjYWRgAAAANwAO","encoding":"base64","height":1,"id":1,"name":"","opacity":1,"type":"tilelayer","visible":true,"width":1,"x":0,"y":0}],"nextlayerid":2,"nextobjectid":1,"orientation":"orthogonal","renderorder":"right-down","tiledversion":"1.10.2","tileheight":16,"tilesets":[{"firstgid":1,"source":"../TileSets/TilesetNature.tsj"}],"tilewidth":16,"type":"map","version":"1.10","width":1},"probability":1},{"map":{"compressionlevel":-1,"height":1,"infinite":false,"layers":[{"compression":"zlib","data":"eJzjZWRgAAAAOwAP","encoding":"base64","height":1,"id":1,"name":"","opacity":1,"type":"tilelayer","visible":true,"width":1,"x":0,"y":0}],"nextlayerid":2,"nextobjectid":1,"orientation":"orthogonal","renderorder":"right-down","tiledversion":"1.10.2","tileheight":16,"tilesets":[{"firstgid":1,"source":"../TileSets/TilesetNature.tsj"}],"tilewidth":16,"type":"map","version":"1.10","width":1},"probability":1},{"map":{"compressionlevel":-1,"height":1,"infinite":false,"layers":[{"compression":"zlib","data":"eJzjY2RgAAAAPwAQ","encoding":"base64","height":1,"id":1,"name":"","opacity":1,"type":"tilelayer","visible":true,"width":1,"x":0,"y":0}],"nextlayerid":2,"nextobjectid":1,"orientation":"orthogonal","renderorder":"right-down","tiledversion":"1.10.2","tileheight":16,"tilesets":[{"firstgid":1,"source":"../TileSets/TilesetNature.tsj"}],"tilewidth":16,"type":"map","version":"1.10","width":1},"probability":1},{"map":{"compressionlevel":-1,"height":1,"infinite":false,"layers":[{"compression":"zlib","data":"eJzjZ2RgAAAAQwAR","encoding":"base64","height":1,"id":1,"name":"","opacity":1,"type":"tilelayer","visible":true,"width":1,"x":0,"y":0}],"nextlayerid":2,"nextobjectid":1,"orientation":"orthogonal","renderorder":"right-down","tiledversion":"1.10.2","tileheight":16,"tilesets":[{"firstgid":1,"source":"../TileSets/TilesetNature.tsj"}],"tilewidth":16,"type":"map","version":"1.10","width":1},"probability":1}]}

View file

@ -0,0 +1 @@
{"name":"Green Trees","variations":[{"map":{"compressionlevel":-1,"height":3,"infinite":false,"layers":[{"compression":"zlib","data":"eJwzZWBgMANicyC2AGJfIPYDYn8gDgDiVCBOA+J0IM4AYgBToAOv","encoding":"base64","height":3,"id":1,"name":"","opacity":1,"type":"tilelayer","visible":true,"width":4,"x":0,"y":0}],"nextlayerid":2,"nextobjectid":1,"orientation":"orthogonal","renderorder":"right-down","tiledversion":"1.10.2","tileheight":16,"tilesets":[{"firstgid":1,"source":"../TileSets/TilesetNature.tsj"}],"tilewidth":16,"type":"map","version":"1.10","width":4},"probability":1},{"map":{"compressionlevel":-1,"height":2,"infinite":false,"layers":[{"compression":"zlib","data":"eJxjZGBgYAJiSSCWAmIAAWgANw==","encoding":"base64","height":2,"id":1,"name":"","opacity":1,"type":"tilelayer","visible":true,"width":2,"x":0,"y":0}],"nextlayerid":2,"nextobjectid":1,"orientation":"orthogonal","renderorder":"right-down","tiledversion":"1.10.2","tileheight":16,"tilesets":[{"firstgid":1,"source":"../TileSets/TilesetNature.tsj"}],"tilewidth":16,"type":"map","version":"1.10","width":2},"probability":1},{"map":{"compressionlevel":-1,"height":2,"infinite":false,"layers":[{"compression":"zlib","data":"eJw7zsDAcAKI7wPxAyAGACBYA08=","encoding":"base64","height":2,"id":1,"name":"","opacity":1,"type":"tilelayer","visible":true,"width":2,"x":0,"y":0}],"nextlayerid":2,"nextobjectid":1,"orientation":"orthogonal","renderorder":"right-down","tiledversion":"1.10.2","tileheight":16,"tilesets":[{"firstgid":1,"source":"../TileSets/TilesetNature.tsj"}],"tilewidth":16,"type":"map","version":"1.10","width":2},"probability":1},{"map":{"compressionlevel":-1,"height":3,"infinite":false,"layers":[{"compression":"zlib","data":"eJzbwsjAsBWItwHxGSA+C8TngPgJED8F4mdADACKGwc/","encoding":"base64","height":3,"id":1,"name":"","opacity":1,"type":"tilelayer","visible":true,"width":3,"x":0,"y":0}],"nextlayerid":2,"nextobjectid":1,"orientation":"orthogonal","renderorder":"right-down","tiledversion":"1.10.2","tileheight":16,"tilesets":[{"firstgid":1,"source":"../TileSets/TilesetNature.tsj"}],"tilewidth":16,"type":"map","version":"1.10","width":3},"probability":1},{"map":{"compressionlevel":-1,"height":2,"infinite":false,"layers":[{"compression":"zlib","data":"eJwTZGBgEAJiTSDWAmIAA+gAdw==","encoding":"base64","height":2,"id":1,"name":"","opacity":1,"type":"tilelayer","visible":true,"width":2,"x":0,"y":0}],"nextlayerid":2,"nextobjectid":1,"orientation":"orthogonal","renderorder":"right-down","tiledversion":"1.10.2","tileheight":16,"tilesets":[{"firstgid":1,"source":"../TileSets/TilesetNature.tsj"}],"tilewidth":16,"type":"map","version":"1.10","width":2},"probability":1},{"map":{"compressionlevel":-1,"height":3,"infinite":false,"layers":[{"compression":"zlib","data":"eJwNwwcNACAMALBZ45iAYYLjP7RJS0RUm93hNF1uj9fnB2JABD8=","encoding":"base64","height":3,"id":1,"name":"","opacity":1,"type":"tilelayer","visible":true,"width":4,"x":0,"y":0}],"nextlayerid":2,"nextobjectid":1,"orientation":"orthogonal","renderorder":"right-down","tiledversion":"1.10.2","tileheight":16,"tilesets":[{"firstgid":1,"source":"../TileSets/TilesetNature.tsj"}],"tilewidth":16,"type":"map","version":"1.10","width":4},"probability":1},{"map":{"compressionlevel":-1,"height":3,"infinite":false,"layers":[{"compression":"zlib","data":"eJwNwwcNACAMALCZ45iAYYIjnzZpiYhqszucpsvt8fr8ZyAEbw==","encoding":"base64","height":3,"id":1,"name":"","opacity":1,"type":"tilelayer","visible":true,"width":4,"x":0,"y":0}],"nextlayerid":2,"nextobjectid":1,"orientation":"orthogonal","renderorder":"right-down","tiledversion":"1.10.2","tileheight":16,"tilesets":[{"firstgid":1,"source":"../TileSets/TilesetNature.tsj"}],"tilewidth":16,"type":"map","version":"1.10","width":4},"probability":1},{"map":{"compressionlevel":-1,"height":2,"infinite":false,"layers":[{"compression":"zlib","data":"eJwTZmBgEAFibSDWAWIABDgAfw==","encoding":"base64","height":2,"id":1,"name":"","opacity":1,"type":"tilelayer","visible":true,"width":2,"x":0,"y":0}],"nextlayerid":2,"nextobjectid":1,"orientation":"orthogonal","renderorder":"right-down","tiledversion":"1.10.2","tileheight":16,"tilesets":[{"firstgid":1,"source":"../TileSets/TilesetNature.tsj"}],"tilewidth":16,"type":"map","version":"1.10","width":2},"probability":1}]}

View file

@ -0,0 +1 @@
{"name":"Stone Buildings","variations":[{"map":{"compressionlevel":-1,"height":3,"infinite":false,"layers":[{"compression":"zlib","data":"eJwNwwcNACAMALBxLMCwwPGvjzZpiYhqszucpsvt8fr8EWABDw==","encoding":"base64","height":3,"id":1,"name":"","opacity":1,"type":"tilelayer","visible":true,"width":4,"x":0,"y":0}],"nextlayerid":2,"nextobjectid":1,"orientation":"orthogonal","renderorder":"right-down","tiledversion":"1.11.0","tileheight":16,"tilesets":[{"firstgid":1,"source":"../TileSets/tileset 1 collision.tsj"}],"tilewidth":16,"type":"map","version":"1.10","width":4},"probability":1},{"map":{"compressionlevel":-1,"height":3,"infinite":false,"layers":[{"compression":"zlib","data":"eJxjZWBgYANidiDmAGJJIJYCYmkglgFiXSDWA2J9IDYAYgAWQAE/","encoding":"base64","height":3,"id":1,"name":"","opacity":1,"type":"tilelayer","visible":true,"width":4,"x":0,"y":0}],"nextlayerid":2,"nextobjectid":1,"orientation":"orthogonal","renderorder":"right-down","tiledversion":"1.11.0","tileheight":16,"tilesets":[{"firstgid":1,"source":"../TileSets/tileset 1 collision.tsj"}],"tilewidth":16,"type":"map","version":"1.10","width":4},"probability":1},{"map":{"compressionlevel":-1,"height":3,"infinite":false,"layers":[{"compression":"zlib","data":"eJzjZGBg4AJibiCWBWI5IJYHYkMgNgJiYyAGAA+EAQ8=","encoding":"base64","height":3,"id":1,"name":"","opacity":1,"type":"tilelayer","visible":true,"width":3,"x":0,"y":0}],"nextlayerid":2,"nextobjectid":1,"orientation":"orthogonal","renderorder":"right-down","tiledversion":"1.11.0","tileheight":16,"tilesets":[{"firstgid":1,"source":"../TileSets/tileset 1 collision.tsj"}],"tilewidth":16,"type":"map","version":"1.10","width":3},"probability":1},{"map":{"compressionlevel":-1,"height":3,"infinite":false,"layers":[{"compression":"zlib","data":"eJzjYWBg4AViPiBWAGJFIFYCYhMgNgViMyAGABGgASo=","encoding":"base64","height":3,"id":1,"name":"","opacity":1,"type":"tilelayer","visible":true,"width":3,"x":0,"y":0}],"nextlayerid":2,"nextobjectid":1,"orientation":"orthogonal","renderorder":"right-down","tiledversion":"1.11.0","tileheight":16,"tilesets":[{"firstgid":1,"source":"../TileSets/tileset 1 collision.tsj"}],"tilewidth":16,"type":"map","version":"1.10","width":3},"probability":1},{"map":{"compressionlevel":-1,"height":2,"infinite":false,"layers":[{"compression":"zlib","data":"eJzzY2Bg8AfiACBOAuJkIE4BYgAb1AIX","encoding":"base64","height":2,"id":1,"name":"","opacity":1,"type":"tilelayer","visible":true,"width":3,"x":0,"y":0}],"nextlayerid":2,"nextobjectid":1,"orientation":"orthogonal","renderorder":"right-down","tiledversion":"1.11.0","tileheight":16,"tilesets":[{"firstgid":1,"source":"../TileSets/tileset 1 collision.tsj"}],"tilewidth":16,"type":"map","version":"1.10","width":3},"probability":1},{"map":{"compressionlevel":-1,"height":5,"infinite":false,"layers":[{"compression":"zlib","data":"eJwNwwsRgCAUALBXXqGCQgXQCooV/MRxu9sUEbPJ7OJqsdrsbu4eng4vbx9fP38Kng2j","encoding":"base64","height":5,"id":1,"name":"","opacity":1,"type":"tilelayer","visible":true,"width":4,"x":0,"y":0}],"nextlayerid":2,"nextobjectid":1,"orientation":"orthogonal","renderorder":"right-down","tiledversion":"1.11.0","tileheight":16,"tilesets":[{"firstgid":1,"source":"../TileSets/tileset 1 collision.tsj"}],"tilewidth":16,"type":"map","version":"1.10","width":4},"probability":1},{"map":{"compressionlevel":-1,"height":5,"infinite":false,"layers":[{"compression":"zlib","data":"eJwNwwsRgCAUALBXWqGCQgXQCooV/MRyu9sUEbPJ7OJqsdrsbu4eng4vbx9fP3/WDwxj","encoding":"base64","height":5,"id":1,"name":"","opacity":1,"type":"tilelayer","visible":true,"width":4,"x":0,"y":0}],"nextlayerid":2,"nextobjectid":1,"orientation":"orthogonal","renderorder":"right-down","tiledversion":"1.11.0","tileheight":16,"tilesets":[{"firstgid":1,"source":"../TileSets/tileset 1 collision.tsj"}],"tilewidth":16,"type":"map","version":"1.10","width":4},"probability":1}]}

Binary file not shown.

After

Width:  |  Height:  |  Size: 5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View file

@ -0,0 +1 @@
{"id":"explosion_1","textureName":"Textures/Effects/explosion","startSpriteRectangle":{"X":0,"Y":0,"Width":100,"Height":100},"frameSecond":[{"Item1":0,"Item2":1}],"textureFrameInterval":0,"framesCount":33,"isCycle":false,"offset":"0, 0"}

View file

@ -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"
}

View file

@ -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"
}

View file

@ -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"
}

View file

@ -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"
}

View file

@ -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"
}

View file

@ -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"
}

View file

@ -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"
}

View file

@ -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"
}

View file

@ -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"
}

View file

@ -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"
}

View file

@ -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"
}

View file

@ -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"}

View file

@ -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"}

View file

@ -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"}

View file

@ -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"
}

View file

@ -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"}

View file

@ -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"}

View file

@ -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"
}

View file

@ -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"}

View file

@ -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"}

View file

@ -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"}

View file

@ -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"}

View file

@ -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"}

View file

@ -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"}

View file

@ -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"}

View file

@ -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"}

View file

@ -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"
}

View file

@ -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"}

View file

@ -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"
}

View file

@ -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"
}

View file

@ -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"
}

View file

@ -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"
}

View file

@ -1 +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"}
{
"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"
}

View file

@ -0,0 +1 @@
{"id":"zombie_attack","textureName":"Textures/AnimationTextures/Zombie/zombie_spritesheet_v1","startSpriteRectangle":{"X":0,"Y":64,"Width":32,"Height":32},"frameSecond":[{"Item1":0,"Item2":5}],"textureFrameInterval":0,"framesCount":3,"isCycle":false,"offset":"0, 0"}

View file

@ -0,0 +1 @@
{"id":"zombie_damaged","textureName":"Textures/AnimationTextures/Zombie/zombie_spritesheet_v1","startSpriteRectangle":{"X":0,"Y":128,"Width":32,"Height":32},"frameSecond":[{"Item1":0,"Item2":5}],"textureFrameInterval":0,"framesCount":1,"isCycle":true,"offset":"0, 0"}

View file

@ -0,0 +1 @@
{"id":"zombie_death","textureName":"Textures/AnimationTextures/Zombie/zombie_spritesheet_v1","startSpriteRectangle":{"X":0,"Y":96,"Width":32,"Height":32},"frameSecond":[{"Item1":0,"Item2":5}],"textureFrameInterval":0,"framesCount":9,"isCycle":false,"offset":"0, 0"}

View file

@ -0,0 +1 @@
{"id":"zombie_idle","textureName":"Textures/AnimationTextures/Zombie/zombie_spritesheet_v1","startSpriteRectangle":{"X":0,"Y":0,"Width":32,"Height":32},"frameSecond":[{"Item1":0,"Item2":60}],"textureFrameInterval":0,"framesCount":2,"isCycle":true,"offset":"0, 0"}

View file

@ -0,0 +1 @@
{"id":"zombie_walk","textureName":"Textures/AnimationTextures/Zombie/zombie_spritesheet_v1","startSpriteRectangle":{"X":0,"Y":32,"Width":32,"Height":32},"frameSecond":[{"Item1":0,"Item2":30}],"textureFrameInterval":0,"framesCount":8,"isCycle":true,"offset":"0, 0"}

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 648 KiB

After

Width:  |  Height:  |  Size: 9.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 256 KiB

After

Width:  |  Height:  |  Size: 3.8 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 MiB

After

Width:  |  Height:  |  Size: 5.7 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 508 KiB

After

Width:  |  Height:  |  Size: 7.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

Some files were not shown because too many files have changed in this diff Show more