Merge pull request #69 from progtime-net/DevelopmentX

Development x
This commit is contained in:
Andrey 2024-08-18 19:30:24 +03:00 committed by GitHub
commit e2f287f7c2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
46 changed files with 5437 additions and 1594 deletions

View file

@ -37,11 +37,14 @@
#begin MapData/TileMaps/main.tmj #begin MapData/TileMaps/main.tmj
/copy:MapData/TileMaps/main.tmj /copy:MapData/TileMaps/main.tmj
#begin MapData/TileMaps/main.tmx #begin MapData/TileSets/tileset 1 collision.tsj
/copy:MapData/TileMaps/main.tmx /copy:MapData/TileSets/tileset 1 collision.tsj
#begin MapData/TileSets/CollisionTileSet.tsj #begin MapData/TileSets/TileSet 1.tsj
/copy:MapData/TileSets/CollisionTileSet.tsj /copy:MapData/TileSets/TileSet 1.tsj
#begin MapData/TileSets/TilesetNature.tsj
/copy:MapData/TileSets/TilesetNature.tsj
#begin sounds/Loot.wav #begin sounds/Loot.wav
/importer:WavImporter /importer:WavImporter
@ -193,18 +196,6 @@
#begin Textures/Animations/testAnimationExample.animation #begin Textures/Animations/testAnimationExample.animation
/copy:Textures/Animations/testAnimationExample.animation /copy:Textures/Animations/testAnimationExample.animation
#begin Textures/AnimationTextures/Character/hr-level1_idle_gun.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:MakeSquare=False
/processorParam:TextureFormat=Color
/build:Textures/AnimationTextures/Character/hr-level1_idle_gun.png
#begin Textures/AnimationTextures/Character/hr-level1_idle.png #begin Textures/AnimationTextures/Character/hr-level1_idle.png
/importer:TextureImporter /importer:TextureImporter
/processor:TextureProcessor /processor:TextureProcessor
@ -217,6 +208,18 @@
/processorParam:TextureFormat=Color /processorParam:TextureFormat=Color
/build:Textures/AnimationTextures/Character/hr-level1_idle.png /build:Textures/AnimationTextures/Character/hr-level1_idle.png
#begin Textures/AnimationTextures/Character/hr-level1_idle_gun.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:MakeSquare=False
/processorParam:TextureFormat=Color
/build:Textures/AnimationTextures/Character/hr-level1_idle_gun.png
#begin Textures/AnimationTextures/Character/hr-level1_mining_tool-1.png #begin Textures/AnimationTextures/Character/hr-level1_mining_tool-1.png
/importer:TextureImporter /importer:TextureImporter
/processor:TextureProcessor /processor:TextureProcessor
@ -241,18 +244,6 @@
/processorParam:TextureFormat=Color /processorParam:TextureFormat=Color
/build:Textures/AnimationTextures/Character/hr-level1_mining_tool-2.png /build:Textures/AnimationTextures/Character/hr-level1_mining_tool-2.png
#begin Textures/AnimationTextures/Character/hr-level1_running_gun.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:MakeSquare=False
/processorParam:TextureFormat=Color
/build:Textures/AnimationTextures/Character/hr-level1_running_gun.png
#begin Textures/AnimationTextures/Character/hr-level1_running.png #begin Textures/AnimationTextures/Character/hr-level1_running.png
/importer:TextureImporter /importer:TextureImporter
/processor:TextureProcessor /processor:TextureProcessor
@ -265,6 +256,18 @@
/processorParam:TextureFormat=Color /processorParam:TextureFormat=Color
/build:Textures/AnimationTextures/Character/hr-level1_running.png /build:Textures/AnimationTextures/Character/hr-level1_running.png
#begin Textures/AnimationTextures/Character/hr-level1_running_gun.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:MakeSquare=False
/processorParam:TextureFormat=Color
/build:Textures/AnimationTextures/Character/hr-level1_running_gun.png
#begin Textures/AnimationTextures/unicorn.png #begin Textures/AnimationTextures/unicorn.png
/importer:TextureImporter /importer:TextureImporter
/processor:TextureProcessor /processor:TextureProcessor
@ -361,18 +364,6 @@
/processorParam:TextureFormat=Color /processorParam:TextureFormat=Color
/build:Textures/GUI/background/waiting.png /build:Textures/GUI/background/waiting.png
#begin Textures/GUI/checkboxs_off-on.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:MakeSquare=False
/processorParam:TextureFormat=Color
/build:Textures/GUI/checkboxs_off-on.png
#begin Textures/GUI/checkboxs_off.png #begin Textures/GUI/checkboxs_off.png
/importer:TextureImporter /importer:TextureImporter
/processor:TextureProcessor /processor:TextureProcessor
@ -385,6 +376,18 @@
/processorParam:TextureFormat=Color /processorParam:TextureFormat=Color
/build:Textures/GUI/checkboxs_off.png /build:Textures/GUI/checkboxs_off.png
#begin Textures/GUI/checkboxs_off-on.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:MakeSquare=False
/processorParam:TextureFormat=Color
/build:Textures/GUI/checkboxs_off-on.png
#begin Textures/GUI/checkboxs_on.png #begin Textures/GUI/checkboxs_on.png
/importer:TextureImporter /importer:TextureImporter
/processor:TextureProcessor /processor:TextureProcessor
@ -421,18 +424,6 @@
/processorParam:TextureFormat=Color /processorParam:TextureFormat=Color
/build:Textures/GUI/mouse.png /build:Textures/GUI/mouse.png
#begin Textures/GUI/Switch_backgrownd.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:MakeSquare=False
/processorParam:TextureFormat=Color
/build:Textures/GUI/Switch_backgrownd.png
#begin Textures/GUI/switch.png #begin Textures/GUI/switch.png
/importer:TextureImporter /importer:TextureImporter
/processor:TextureProcessor /processor:TextureProcessor
@ -445,6 +436,18 @@
/processorParam:TextureFormat=Color /processorParam:TextureFormat=Color
/build:Textures/GUI/switch.png /build:Textures/GUI/switch.png
#begin Textures/GUI/Switch_backgrownd.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:MakeSquare=False
/processorParam:TextureFormat=Color
/build:Textures/GUI/Switch_backgrownd.png
#begin Textures/icons/12.png #begin Textures/icons/12.png
/importer:TextureImporter /importer:TextureImporter
/processor:TextureProcessor /processor:TextureProcessor
@ -613,7 +616,7 @@
/processorParam:TextureFormat=Color /processorParam:TextureFormat=Color
/build:Textures/Test/wood.jpg /build:Textures/Test/wood.jpg
#begin Textures/TileSets/Tilelist1.png #begin Textures/TileSetImages/Pipes.png
/importer:TextureImporter /importer:TextureImporter
/processor:TextureProcessor /processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255 /processorParam:ColorKeyColor=255,0,255,255
@ -623,9 +626,9 @@
/processorParam:ResizeToPowerOfTwo=False /processorParam:ResizeToPowerOfTwo=False
/processorParam:MakeSquare=False /processorParam:MakeSquare=False
/processorParam:TextureFormat=Color /processorParam:TextureFormat=Color
/build:Textures/TileSets/Tilelist1.png /build:Textures/TileSetImages/Pipes.png
#begin Textures/TileSets/Tilelist2.png #begin Textures/TileSetImages/Tilelist1.png
/importer:TextureImporter /importer:TextureImporter
/processor:TextureProcessor /processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255 /processorParam:ColorKeyColor=255,0,255,255
@ -635,9 +638,9 @@
/processorParam:ResizeToPowerOfTwo=False /processorParam:ResizeToPowerOfTwo=False
/processorParam:MakeSquare=False /processorParam:MakeSquare=False
/processorParam:TextureFormat=Color /processorParam:TextureFormat=Color
/build:Textures/TileSets/Tilelist2.png /build:Textures/TileSetImages/Tilelist1.png
#begin Textures/TileSets/Tilelist3.png #begin Textures/TileSetImages/Tilelist2.png
/importer:TextureImporter /importer:TextureImporter
/processor:TextureProcessor /processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255 /processorParam:ColorKeyColor=255,0,255,255
@ -647,9 +650,9 @@
/processorParam:ResizeToPowerOfTwo=False /processorParam:ResizeToPowerOfTwo=False
/processorParam:MakeSquare=False /processorParam:MakeSquare=False
/processorParam:TextureFormat=Color /processorParam:TextureFormat=Color
/build:Textures/TileSets/Tilelist3.png /build:Textures/TileSetImages/Tilelist2.png
#begin Textures/TileSets/Tilelist4.png #begin Textures/TileSetImages/Tilelist3.png
/importer:TextureImporter /importer:TextureImporter
/processor:TextureProcessor /processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255 /processorParam:ColorKeyColor=255,0,255,255
@ -659,9 +662,9 @@
/processorParam:ResizeToPowerOfTwo=False /processorParam:ResizeToPowerOfTwo=False
/processorParam:MakeSquare=False /processorParam:MakeSquare=False
/processorParam:TextureFormat=Color /processorParam:TextureFormat=Color
/build:Textures/TileSets/Tilelist4.png /build:Textures/TileSetImages/Tilelist3.png
#begin Textures/TileSets/TilesetFloor.png #begin Textures/TileSetImages/Tilelist4.png
/importer:TextureImporter /importer:TextureImporter
/processor:TextureProcessor /processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255 /processorParam:ColorKeyColor=255,0,255,255
@ -671,5 +674,197 @@
/processorParam:ResizeToPowerOfTwo=False /processorParam:ResizeToPowerOfTwo=False
/processorParam:MakeSquare=False /processorParam:MakeSquare=False
/processorParam:TextureFormat=Color /processorParam:TextureFormat=Color
/build:Textures/TileSets/TilesetFloor.png /build:Textures/TileSetImages/Tilelist4.png
#begin Textures/TileSetImages/TilesetDesert.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:MakeSquare=False
/processorParam:TextureFormat=Color
/build:Textures/TileSetImages/TilesetDesert.png
#begin Textures/TileSetImages/TilesetDungeon.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:MakeSquare=False
/processorParam:TextureFormat=Color
/build:Textures/TileSetImages/TilesetDungeon.png
#begin Textures/TileSetImages/TilesetElement.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:MakeSquare=False
/processorParam:TextureFormat=Color
/build:Textures/TileSetImages/TilesetElement.png
#begin Textures/TileSetImages/TilesetField.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:MakeSquare=False
/processorParam:TextureFormat=Color
/build:Textures/TileSetImages/TilesetField.png
#begin Textures/TileSetImages/TilesetFloor.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:MakeSquare=False
/processorParam:TextureFormat=Color
/build:Textures/TileSetImages/TilesetFloor.png
#begin Textures/TileSetImages/TilesetFloorB.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:MakeSquare=False
/processorParam:TextureFormat=Color
/build:Textures/TileSetImages/TilesetFloorB.png
#begin Textures/TileSetImages/TilesetFloorDetail.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:MakeSquare=False
/processorParam:TextureFormat=Color
/build:Textures/TileSetImages/TilesetFloorDetail.png
#begin Textures/TileSetImages/TilesetHole.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:MakeSquare=False
/processorParam:TextureFormat=Color
/build:Textures/TileSetImages/TilesetHole.png
#begin Textures/TileSetImages/TilesetHouse.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:MakeSquare=False
/processorParam:TextureFormat=Color
/build:Textures/TileSetImages/TilesetHouse.png
#begin Textures/TileSetImages/TilesetLogic.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:MakeSquare=False
/processorParam:TextureFormat=Color
/build:Textures/TileSetImages/TilesetLogic.png
#begin Textures/TileSetImages/TilesetNature.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:MakeSquare=False
/processorParam:TextureFormat=Color
/build:Textures/TileSetImages/TilesetNature.png
#begin Textures/TileSetImages/TilesetRelief.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:MakeSquare=False
/processorParam:TextureFormat=Color
/build:Textures/TileSetImages/TilesetRelief.png
#begin Textures/TileSetImages/TilesetReliefDetail.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:MakeSquare=False
/processorParam:TextureFormat=Color
/build:Textures/TileSetImages/TilesetReliefDetail.png
#begin Textures/TileSetImages/TilesetTowers.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:MakeSquare=False
/processorParam:TextureFormat=Color
/build:Textures/TileSetImages/TilesetTowers.png
#begin Textures/TileSetImages/TilesetVillageAbandoned.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:MakeSquare=False
/processorParam:TextureFormat=Color
/build:Textures/TileSetImages/TilesetVillageAbandoned.png
#begin Textures/TileSetImages/TilesetWater.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:MakeSquare=False
/processorParam:TextureFormat=Color
/build:Textures/TileSetImages/TilesetWater.png

View file

@ -5,20 +5,20 @@
}, },
"activeFile": "TileMaps/main.tmj", "activeFile": "TileMaps/main.tmj",
"expandedProjectPaths": [ "expandedProjectPaths": [
".",
"TileSets", "TileSets",
"TileMaps" "TileMaps",
"."
], ],
"fileStates": { "fileStates": {
"TileMaps/TileSets/TileSet 1.tsj": { "TileMaps/TileSets/TileSet 1.tsj": {
"scaleInDock": 1 "scaleInDock": 1
}, },
"TileMaps/main.tmj": { "TileMaps/main.tmj": {
"scale": 0.75, "scale": 0.5,
"selectedLayer": 0, "selectedLayer": 1,
"viewCenter": { "viewCenter": {
"x": 578, "x": 895,
"y": 482.66666666666674 "y": 270
} }
}, },
"TileSets/CollisionTileSet.tsj": { "TileSets/CollisionTileSet.tsj": {
@ -43,15 +43,15 @@
"project": "MapSession.tiled-project", "project": "MapSession.tiled-project",
"recentFiles": [ "recentFiles": [
"TileMaps/main.tmj", "TileMaps/main.tmj",
"TileSets/TileSet 1.tsj",
"TileSets/CollisionTileSet.tsj", "TileSets/CollisionTileSet.tsj",
"TileSets/TileSet 1.tsj",
"TileSets/WallSet.tsj" "TileSets/WallSet.tsj"
], ],
"tileset.lastUsedFormat": "json", "tileset.lastUsedFormat": "json",
"tileset.margin": 2, "tileset.margin": 0,
"tileset.spacing": 2, "tileset.spacing": 0,
"tileset.tileSize": { "tileset.tileSize": {
"height": 128, "height": 16,
"width": 128 "width": 16
} }
} }

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

@ -1,435 +0,0 @@
{ "columns":5,
"image":"..\/..\/Textures\/TileSetImages\/Tilelist2.png",
"imageheight":1302,
"imagewidth":652,
"margin":2,
"name":"CollisionTileSet",
"spacing":2,
"tilecount":50,
"tiledversion":"1.10.2",
"tileheight":128,
"tiles":[
{
"id":0,
"type":"Tiles"
},
{
"id":1,
"type":"Tiles"
},
{
"id":2,
"type":"Tiles"
},
{
"id":3,
"type":"Tiles"
},
{
"id":4,
"type":"Tiles"
},
{
"id":5,
"objectgroup":
{
"draworder":"index",
"name":"",
"objects":[
{
"height":128,
"id":1,
"name":"",
"rotation":0,
"type":"",
"visible":true,
"width":37,
"x":0,
"y":0
},
{
"height":36.3333333333333,
"id":2,
"name":"",
"rotation":0,
"type":"",
"visible":true,
"width":127.333333333333,
"x":0.666666666666671,
"y":0
}],
"opacity":1,
"type":"objectgroup",
"visible":true,
"x":0,
"y":0
},
"type":"StopObject"
},
{
"id":6,
"objectgroup":
{
"draworder":"index",
"name":"",
"objects":[
{
"height":128.333333333333,
"id":4,
"name":"",
"rotation":0,
"type":"",
"visible":true,
"width":35.6666666666667,
"x":0.666666666666667,
"y":0
}],
"opacity":1,
"type":"objectgroup",
"visible":true,
"x":0,
"y":0
},
"type":"StopObject"
},
{
"id":7,
"objectgroup":
{
"draworder":"index",
"name":"",
"objects":[
{
"height":128,
"id":1,
"name":"",
"rotation":0,
"type":"",
"visible":true,
"width":36,
"x":0,
"y":0
},
{
"height":36.6666666666667,
"id":2,
"name":"",
"rotation":0,
"type":"",
"visible":true,
"width":128.666666666667,
"x":0,
"y":91.3333333333333
}],
"opacity":1,
"type":"objectgroup",
"visible":true,
"x":0,
"y":0
},
"type":"StopObject"
},
{
"id":8,
"objectgroup":
{
"draworder":"index",
"name":"",
"objects":[
{
"height":36,
"id":1,
"name":"",
"rotation":0,
"type":"",
"visible":true,
"width":127.666666666667,
"x":0,
"y":91.6666666666667
}],
"opacity":1,
"type":"objectgroup",
"visible":true,
"x":0,
"y":0
},
"type":"StopObject"
},
{
"id":9,
"objectgroup":
{
"draworder":"index",
"name":"",
"objects":[
{
"height":36,
"id":1,
"name":"",
"rotation":0,
"type":"",
"visible":true,
"width":127.666666666667,
"x":0,
"y":0.333333333333333
}],
"opacity":1,
"type":"objectgroup",
"visible":true,
"x":0,
"y":0
},
"type":"StopObject"
},
{
"id":10,
"objectgroup":
{
"draworder":"index",
"name":"",
"objects":[
{
"height":36.6666666666667,
"id":2,
"name":"",
"rotation":0,
"type":"",
"visible":true,
"width":128.333333333333,
"x":0,
"y":0
},
{
"height":127.666666666667,
"id":3,
"name":"",
"rotation":0,
"type":"",
"visible":true,
"width":36.6666666666667,
"x":91.6666666666667,
"y":0.333333333333329
}],
"opacity":1,
"type":"objectgroup",
"visible":true,
"x":0,
"y":0
},
"type":"StopObject"
},
{
"id":11,
"objectgroup":
{
"draworder":"index",
"name":"",
"objects":[
{
"height":127.666666666667,
"id":1,
"name":"",
"rotation":0,
"type":"",
"visible":true,
"width":37,
"x":91,
"y":0.333333333333333
}],
"opacity":1,
"type":"objectgroup",
"visible":true,
"x":0,
"y":0
},
"type":"StopObject"
},
{
"id":12,
"objectgroup":
{
"draworder":"index",
"name":"",
"objects":[
{
"height":128,
"id":4,
"name":"",
"rotation":0,
"type":"",
"visible":true,
"width":37,
"x":91,
"y":0
},
{
"height":36.6666666666667,
"id":5,
"name":"",
"rotation":0,
"type":"",
"visible":true,
"width":128,
"x":0,
"y":91.3333333333333
}],
"opacity":1,
"type":"objectgroup",
"visible":true,
"x":0,
"y":0
},
"type":"StopObject"
},
{
"id":13,
"type":"StopObject"
},
{
"id":14,
"type":"StopObject"
},
{
"id":15,
"type":"StopObject"
},
{
"id":16,
"type":"StopObject"
},
{
"id":17,
"type":"StopObject"
},
{
"id":18,
"type":"StopObject"
},
{
"id":19,
"type":"StopObject"
},
{
"id":20,
"type":"StopObject"
},
{
"id":21,
"type":"StopObject"
},
{
"id":22,
"type":"StopObject"
},
{
"id":23,
"type":"StopObject"
},
{
"id":24,
"type":"StopObject"
},
{
"id":25,
"type":"StopObject"
},
{
"id":26,
"type":"StopObject"
},
{
"id":27,
"type":"StopObject"
},
{
"id":28,
"type":"StopObject"
},
{
"id":29,
"type":"StopObject"
},
{
"id":30,
"type":"StopObject"
},
{
"id":31,
"type":"StopObject"
},
{
"id":32,
"type":"StopObject"
},
{
"id":33,
"type":"StopObject"
},
{
"id":34,
"type":"StopObject"
},
{
"id":35,
"type":"StopObject"
},
{
"id":36,
"type":"StopObject"
},
{
"id":37,
"type":"StopObject"
},
{
"id":38,
"type":"StopObject"
},
{
"id":39,
"type":"StopObject"
},
{
"id":40,
"type":"StopObject"
},
{
"id":41,
"type":"StopObject"
},
{
"id":42,
"type":"StopObject"
},
{
"id":43,
"type":"StopObject"
},
{
"id":44,
"type":"StopObject"
},
{
"id":45,
"type":"StopObject"
},
{
"id":46,
"type":"StopObject"
},
{
"id":47,
"type":"StopObject"
},
{
"id":48,
"type":"StopObject"
},
{
"id":49,
"type":"StopObject"
}],
"tilewidth":128,
"type":"tileset",
"version":"1.10"
}

View file

@ -8,15 +8,15 @@
"width":24 "width":24
}, },
"image":"..\/..\/Textures\/TileSetImages\/TilesetFloor.png", "image":"..\/..\/Textures\/TileSetImages\/TilesetFloor.png",
"imageheight":832, "imageheight":417,
"imagewidth":704, "imagewidth":352,
"margin":0, "margin":0,
"name":"TileSet 1", "name":"TileSet 1",
"objectalignment":"topleft", "objectalignment":"topleft",
"spacing":0, "spacing":0,
"tilecount":572, "tilecount":572,
"tiledversion":"1.10.2", "tiledversion":"1.10.2",
"tileheight":32, "tileheight":16,
"tiles":[ "tiles":[
{ {
"id":0, "id":0,
@ -2315,7 +2315,7 @@
"id":571, "id":571,
"type":"Tile" "type":"Tile"
}], }],
"tilewidth":32, "tilewidth":16,
"type":"tileset", "type":"tileset",
"version":"1.10", "version":"1.10",
"wangsets":[ "wangsets":[

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

View file

Before

Width:  |  Height:  |  Size: 769 KiB

After

Width:  |  Height:  |  Size: 769 KiB

View file

Before

Width:  |  Height:  |  Size: 578 KiB

After

Width:  |  Height:  |  Size: 578 KiB

View file

Before

Width:  |  Height:  |  Size: 2.1 MiB

After

Width:  |  Height:  |  Size: 2.1 MiB

View file

Before

Width:  |  Height:  |  Size: 120 KiB

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 399 KiB

View file

@ -24,6 +24,8 @@ using ZoFo.GameCore.GUI;
using ZoFo.GameCore.GameObjects.Entities.Interactables.Collectables; using ZoFo.GameCore.GameObjects.Entities.Interactables.Collectables;
using ZoFo.GameCore.GameObjects.MapObjects.StopObjects; using ZoFo.GameCore.GameObjects.MapObjects.StopObjects;
using ZoFo.GameCore.GameObjects.Entities.LivingEntities.Enemies; using ZoFo.GameCore.GameObjects.Entities.LivingEntities.Enemies;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json;
namespace ZoFo.GameCore namespace ZoFo.GameCore
{ {
public class Client public class Client
@ -54,13 +56,21 @@ namespace ZoFo.GameCore
public void OnDataSend(string data) public void OnDataSend(string data)
{ {
List<UpdateData> updateDatas = JsonSerializer.Deserialize<List<UpdateData>>(data); //List<UpdateTileCreated> updateDatas = JsonSerializer.Deserialize<List<UpdateTileCreated>>(data);
JArray jToken = JsonConvert.DeserializeObject(data) as JArray;
//string[] brands = jToken.SelectToken("")?.ToObject<string[]>();
foreach (JToken update in jToken.Children())
{
string a = update.ToString();
UpdateTileCreated u = System.Text.Json.JsonSerializer.Deserialize<UpdateTileCreated>(a);
}
// тут будет switch // тут будет switch
AppManager.Instance.debugHud.Log(data); AppManager.Instance.debugHud.Log(data);
foreach (var item in updateDatas) //foreach (var item in updateDatas)
{ //{
GotData(item); // GotData(item);
} //}
} }
public void GameEndedUnexpectedly() { } public void GameEndedUnexpectedly() { }
@ -112,22 +122,21 @@ namespace ZoFo.GameCore
mapObjects.Add( mapObjects.Add(
new MapObject( new MapObject(
(update as UpdateTileCreated).Position, (update as UpdateTileCreated).Position,
(update as UpdateTileCreated).Size.ToVector2(), (update as UpdateTileCreated).Size.GetPoint().ToVector2(),
(update as UpdateTileCreated).sourceRectangle, (update as UpdateTileCreated).sourceRectangle.GetRectangle(),
(update as UpdateTileCreated).tileSetName (update as UpdateTileCreated).tileSetName
)); ));
} }
else if (update is UpdateStopObjectCreated) //else if (update is UpdateStopObjectCreated)
{ //{
stopObjects.Add( // stopObjects.Add(
new StopObject( // new StopObject(
(update as UpdateStopObjectCreated).Position, // (update as UpdateStopObjectCreated).Position,
(update as UpdateStopObjectCreated).Size.ToVector2(), // (update as UpdateStopObjectCreated).Size.ToVector2(),
(update as UpdateStopObjectCreated).sourceRectangle, // (update as UpdateStopObjectCreated).sourceRectangle,
(update as UpdateStopObjectCreated).tileSetName, // (update as UpdateStopObjectCreated).tileSetName
(update as UpdateStopObjectCreated).collisions // ));
)); //}
}
else if (update is UpdateGameObjectCreated) else if (update is UpdateGameObjectCreated)
{ {
GameObject created_gameObject; GameObject created_gameObject;

View file

@ -15,5 +15,6 @@ namespace ZoFo.GameCore.GameManagers.MapManager.MapElements
public int Id { get; set; } public int Id { get; set; }
public bool Visibility { get; set; } public bool Visibility { get; set; }
public string Class { get; set; } public string Class { get; set; }
public string Type { get; set; }
} }
} }

View file

@ -33,13 +33,13 @@ namespace ZoFo.GameCore.GameManagers.MapManager
PropertyNameCaseInsensitive = true PropertyNameCaseInsensitive = true
}; };
TileMap tileMap = TileMap tileMap =
JsonSerializer.Deserialize<TileMap>(File.ReadAllText(string.Format(_templatePath, mapName)), options); JsonSerializer.Deserialize<TileMap>(File.ReadAllText(Path.Combine(AppContext.BaseDirectory, string.Format(_templatePath, mapName))), options);
// Загрузка TileSet-ов по TileSetInfo // Загрузка TileSet-ов по TileSetInfo
List<TileSet> tileSets = new List<TileSet>(); List<TileSet> tileSets = new List<TileSet>();
foreach (TileSetInfo tileSetInfo in tileMap.TileSets) foreach (TileSetInfo tileSetInfo in tileMap.TileSets)
{ {
TileSet tileSet = LoadTileSet(Path.Combine("Content", "MapData", "TileMaps", tileSetInfo.Source)); TileSet tileSet = LoadTileSet(Path.Combine(AppContext.BaseDirectory, "Content", "MapData", "TileMaps", tileSetInfo.Source));
tileSet.FirstGid = tileSetInfo.FirstGid; tileSet.FirstGid = tileSetInfo.FirstGid;
tileSets.Add(tileSet); tileSets.Add(tileSet);
} }
@ -47,51 +47,60 @@ namespace ZoFo.GameCore.GameManagers.MapManager
foreach (var layer in tileMap.Layers) foreach (var layer in tileMap.Layers)
{ {
foreach (var chunk in layer.Chunks) if (layer.Type == "objectgroup")
{ {
for (int i = 0; i < chunk.Data.Length; i++)
}
else
{
foreach (var chunk in layer.Chunks)
{ {
foreach (var tileSet in tileSets) for (int i = 0; i < chunk.Data.Length; i++)
{ {
if (tileSet.FirstGid <= chunk.Data[i]) foreach (var tileSet in tileSets)
{ {
int number = chunk.Data[i] - tileSet.FirstGid; if (tileSet.FirstGid <= chunk.Data[i])
int relativeColumn = number % tileSet.Columns;
int relativeRow = number / tileSet.Columns; // относительно левого угла чанка
Rectangle sourceRectangle = new Rectangle(relativeColumn * tileSet.TileWidth,
relativeRow * tileSet.TileHeight,
tileSet.TileWidth, tileSet.TileHeight);
Vector2 position = new Vector2(
(i % chunk.Width) * tileSet.TileWidth + chunk.X * tileSet.TileWidth,
(i / chunk.Height) * tileSet.TileHeight + chunk.Y * tileSet.TileHeight);
Tile tile = tileSet.Tiles[number]; // По факту может быть StopObjectom, но на уровне Tiled это все в первую очередь Tile
switch (tile.Type)
{ {
case "Tile": int number = chunk.Data[i] - tileSet.FirstGid;
AppManager.Instance.server.RegisterGameObject(new MapObject(position,
new Vector2(tileSet.TileWidth, tileSet.TileHeight), int relativeColumn = number % tileSet.Columns;
sourceRectangle, int relativeRow = number / tileSet.Columns; // относительно левого угла чанка
"Textures/TileSets/" +
Path.GetFileName(tileSet.Image).Replace(".png", ""))); Rectangle sourceRectangle = new Rectangle(relativeColumn * (tileSet.TileWidth + tileSet.Spacing) + tileSet.Margin,
break; relativeRow * (tileSet.TileHeight + tileSet.Spacing) + tileSet.Margin,
case "StopObject": tileSet.TileWidth, tileSet.TileHeight);
var collisionRectangles = LoadRectangles(tile); // Грузит коллизии обьектов
AppManager.Instance.server.RegisterGameObject(new StopObject(position/4,//TODO Vector2 position = new Vector2(
new Vector2(tileSet.TileWidth, tileSet.TileHeight), (i % chunk.Width) * tileMap.TileWidth + chunk.X * tileMap.TileWidth,
sourceRectangle, (i / chunk.Height) * tileMap.TileHeight + chunk.Y * tileMap.TileHeight);
"Textures/TileSets/" +
Path.GetFileName(tileSet.Image).Replace(".png", ""), Tile tile = tileSet.Tiles[number]; // По факту может быть StopObjectom, но на уровне Tiled это все в первую очередь Tile
collisionRectangles.ToArray())); string textureName = Path.Combine(AppContext.BaseDirectory, "Content", "Textures", "TileSetImages",
break; Path.GetFileName(tileSet.Image).Replace(".png", ""));
default: switch (tile.Type)
break; {
case "Tile":
AppManager.Instance.server.RegisterGameObject(new MapObject(position,
new Vector2(tileSet.TileWidth, tileSet.TileHeight),
sourceRectangle,
textureName));
break;
case "StopObject":
var collisionRectangles = LoadRectangles(tile); // Грузит коллизии обьектов
AppManager.Instance.server.RegisterGameObject(new StopObject(position,
new Vector2(tileSet.TileWidth, tileSet.TileHeight),
sourceRectangle,
textureName,
collisionRectangles.ToArray()));
break;
default:
break;
}
break;
} }
break;
} }
} }
} }
@ -126,7 +135,7 @@ namespace ZoFo.GameCore.GameManagers.MapManager
{ {
if (tile.Objectgroup == null) if (tile.Objectgroup == null)
{ {
return new List<Rectangle>(); return new List<Rectangle>() { new Rectangle(0, 0, 0, 0) };
} }
List<Rectangle> collisionRectangles = new List<Rectangle>(); List<Rectangle> collisionRectangles = new List<Rectangle>();

View file

@ -100,6 +100,7 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager
{ {
string hostName = Dns.GetHostName(); // Retrive the Name of HOST string hostName = Dns.GetHostName(); // Retrive the Name of HOST
var ipList = Dns.GetHostByName(hostName).AddressList; var ipList = Dns.GetHostByName(hostName).AddressList;
foreach (var ip in ipList) foreach (var ip in ipList)
{ {
if (ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) if (ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
@ -115,8 +116,8 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager
{ {
while(socket.Connected) while(socket.Connected)
{ {
byte[] bytes = new byte[2048]; byte[] bytes = new byte[65535];
var countAnsw = socket.Receive(bytes); //Вылетает если кто то закрыл var countAnsw = socket.Receive(bytes, SocketFlags.Partial); //Вылетает если кто то закрыл
string update = Encoding.UTF8.GetString(bytes, 0, countAnsw); // обновление отосланные сервером string update = Encoding.UTF8.GetString(bytes, 0, countAnsw); // обновление отосланные сервером
GetDataSent(update); GetDataSent(update);
} }

View file

@ -0,0 +1,18 @@
using Microsoft.Xna.Framework;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ZoFo.GameCore.GameManagers.NetworkManager.SerializableDTO
{
public class SerializablePoint
{
public int X;
public int Y;
public SerializablePoint(Point point) { X = point.X; Y = point.Y;}
public Point GetPoint() { return new Point(X, Y);}
}
}

View file

@ -0,0 +1,33 @@
using Microsoft.Xna.Framework;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.Json.Serialization;
using System.Threading.Tasks;
using ZoFo.GameCore.GameManagers.NetworkManager.SerializableDTO;
namespace ZoFo.GameCore.GameManagers.NetworkManager.SerializableDTO
{
[Serializable]
[JsonSerializable(typeof(SerializableRectangle))]
public class SerializableRectangle
{
public SerializablePoint Size { get; set; }
public SerializablePoint Location { get; set; }
public int X { get; set; }
public int Y { get; set; }
public SerializableRectangle()
{
}
public SerializableRectangle(Rectangle rectangle) { X = rectangle.X; Y = rectangle.Y;
Size = new SerializablePoint(rectangle.Size); Location = new SerializablePoint(rectangle.Location); }
public Rectangle GetRectangle()
{
return new Rectangle() { X = X, Y = Y, Size = Size.GetPoint(), Location = Location.GetPoint() };
}
}
}

View file

@ -53,7 +53,8 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager
public static IPAddress GetIp() public static IPAddress GetIp()
{ {
string hostName = Dns.GetHostName(); // Retrive the Name of HOST string hostName = Dns.GetHostName(); // Retrive the Name of HOST
var ipList = Dns.GetHostByName(hostName).AddressList; var ipList = Dns.GetHostEntry(hostName).AddressList;
foreach (var ip in ipList) foreach (var ip in ipList)
{ {
if (ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) if (ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
@ -61,7 +62,7 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager
return ip; return ip;
} }
} }
return IPAddress.Loopback; return IPAddress.Loopback;
} }
/// <summary> /// <summary>
@ -79,15 +80,15 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager
//Что это? //Что это?
//по 10 паков за раз TODO FIXITFIXITFIXITFIXITFIXITFIXITFIXITFIXITFIXITFIXITFIXITFIXIT //по 10 паков за раз TODO FIXITFIXITFIXITFIXITFIXITFIXITFIXITFIXITFIXITFIXITFIXITFIXIT
List<UpdateData> datasToSend = new List<UpdateData>(); List<UpdateData> datasToSend = new List<UpdateData>();
for (int i = 0; i < 5 && i<updates.Count; i++) for (int i = 0; i < 200 && i<updates.Count; i++)
datasToSend.Add(updates[i]); datasToSend.Add(updates[i]);
string data = JsonSerializer.Serialize(datasToSend); string data = JsonSerializer.Serialize(datasToSend);
var databytes = Encoding.UTF8.GetBytes(data); var databytes = Encoding.UTF8.GetBytes(data);
foreach (var item in clients) foreach (Socket socket in clients)
{ {
item.SendAsync(databytes); clients[0].SendAsync(databytes, SocketFlags.Partial);
} }
for (int i = 0; i < 5 && i< datasToSend.Count; i++) for (int i = 0; i < 200 && i< datasToSend.Count; i++)
updates.RemoveAt(0); updates.RemoveAt(0);
} }
@ -170,8 +171,8 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager
Socket client = (Socket)socket; Socket client = (Socket)socket;
while (client.Connected) while (client.Connected)
{ {
var buff = new byte[1024]; var buff = new byte[65535];
var answ = client.Receive(buff); var answ = client.Receive(buff, SocketFlags.Partial);
string response = Encoding.UTF8.GetString(buff, 0, answ); string response = Encoding.UTF8.GetString(buff, 0, answ);
GetDataSend(response); GetDataSend(response);
} }

View file

@ -6,6 +6,7 @@ using System.Linq;
using System.Text; using System.Text;
using System.Text.Json.Serialization; using System.Text.Json.Serialization;
using System.Threading.Tasks; using System.Threading.Tasks;
using ZoFo.GameCore.GameManagers.NetworkManager.SerializableDTO;
using ZoFo.GameCore.GameManagers.NetworkManager.Updates.ClientToServer; using ZoFo.GameCore.GameManagers.NetworkManager.Updates.ClientToServer;
namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient
@ -19,21 +20,8 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient
public UpdateTileCreated() { UpdateType = "UpdateTileCreated"; } public UpdateTileCreated() { UpdateType = "UpdateTileCreated"; }
public Texture2D TextureTile { get; set; } public Texture2D TextureTile { get; set; }
public Vector2 Position { get; set; } public Vector2 Position { get; set; }
public Point Size { get; set; } public SerializablePoint Size { get; set; }
public Rectangle sourceRectangle { get; set; } public SerializableRectangle sourceRectangle { get; set; }
public string tileSetName { get; set; } public string tileSetName { get; set; }
} }
/// <summary>
/// При создании тайла TODO move to another file
/// </summary>
public class UpdateStopObjectCreated : UpdateData
{
public UpdateStopObjectCreated() { UpdateType = "UpdateStopObjectCreated"; }
public Texture2D TextureTile { get; set; }
public Vector2 Position { get; set; }
public Point Size { get; set; }
public Rectangle sourceRectangle { get; set; }
public string tileSetName { get; set; }
public Rectangle[] collisions { get; set; }
}
} }

View file

@ -24,15 +24,7 @@ namespace ZoFo.GameCore.GameManagers
{ {
//List<string> sounds = AppManager.Instance.Content.Load<List<string>>("sounds/"); //List<string> sounds = AppManager.Instance.Content.Load<List<string>>("sounds/");
string a = Path.Combine("Content", "sounds"); string[] k = Directory.GetFiles(Path.Combine(AppContext.BaseDirectory, "Content", "sounds")).Where(x => x.EndsWith("xnb")).ToArray();
string[] k;
if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
{
k = Directory.GetFiles(Path.Combine("bin", "Debug", "net8.0", "Content", "sounds")).Where(x => x.EndsWith("xnb")).ToArray();
}
else{
k = Directory.GetFiles(Path.Combine(Directory.GetCurrentDirectory(), "Content", "sounds")).Where(x => x.EndsWith("xnb")).ToArray();
}
if (k.Length > 0) if (k.Length > 0)
{ {

View file

@ -20,13 +20,10 @@ public class StopObject : MapObject
{ {
collisionComponents[i] = new CollisionComponent(this, true, new Rectangle(0,0, (int)size.X, (int)size.Y)/*collisions[i]*/); collisionComponents[i] = new CollisionComponent(this, true, new Rectangle(0,0, (int)size.X, (int)size.Y)/*collisions[i]*/);
} }
//REDO
// TODO: Написать коллизию, пусть тразмер будет чисто таким же как и текстурка.
// Поменяйте уровень защиты конструктора, после снимите в MapManager комментарий в методе LoadMap с создания StopObject-а
} }
public override void Draw(SpriteBatch spriteBatch) public override void Draw(SpriteBatch spriteBatch)
{ {
base.Draw(spriteBatch); base.Draw(spriteBatch);
DrawDebugRectangle(spriteBatch, new Rectangle((int)position.X, (int)position.Y, collisionComponents[0].stopRectangle.Width, collisionComponents[0].stopRectangle.Height)); DrawDebugRectangle(spriteBatch, new Rectangle((int)position.X, (int)position.Y, collisionComponents[0].stopRectangle.Width, collisionComponents[0].stopRectangle.Height));
} }
} }

View file

@ -163,6 +163,7 @@ namespace ZoFo.GameCore.Graphics
} }
interval--; interval--;
} }
public override void Draw(Rectangle destinationRectangle, SpriteBatch _spriteBatch) public override void Draw(Rectangle destinationRectangle, SpriteBatch _spriteBatch)
@ -187,8 +188,9 @@ namespace ZoFo.GameCore.Graphics
destinationRectangle.Y -= CameraPosition.Y; destinationRectangle.Y -= CameraPosition.Y;
destinationRectangle = Scaling(destinationRectangle); destinationRectangle = Scaling(destinationRectangle);
_spriteBatch.Draw(texture,
destinationRectangle, sourceRectangle, Color.White); _spriteBatch.Draw(texture, destinationRectangle, sourceRectangle, Color.White, Rotation,
Vector2.Zero, Flip, 0);
} }
public override void Draw(Rectangle destinationRectangle, SpriteBatch _spriteBatch, Rectangle sourceRectangle) public override void Draw(Rectangle destinationRectangle, SpriteBatch _spriteBatch, Rectangle sourceRectangle)
{ {
@ -213,7 +215,8 @@ namespace ZoFo.GameCore.Graphics
destinationRectangle = Scaling(destinationRectangle); destinationRectangle = Scaling(destinationRectangle);
_spriteBatch.Draw(texture, _spriteBatch.Draw(texture,
destinationRectangle, sourceRectangle, Color.White); destinationRectangle, sourceRectangle, Color.White, 0,
Vector2.Zero, Flip, 0);
} }
private void buildSourceRectangle() private void buildSourceRectangle()
{ {

View file

@ -12,7 +12,7 @@ namespace ZoFo.GameCore.Graphics
public void LoadAnimations() public void LoadAnimations()
{ {
Animations = new List<AnimationContainer>(); Animations = new List<AnimationContainer>();
string[] animationFilesNames = Directory.GetFiles("Content/Textures/Animations"); string[] animationFilesNames = Directory.GetFiles(Path.Combine(AppContext.BaseDirectory, "Content", "Textures", "Animations"));
StreamReader reader; StreamReader reader;
foreach (var fileName in animationFilesNames) foreach (var fileName in animationFilesNames)

View file

@ -9,6 +9,9 @@ public abstract class GraphicsComponent
public static int scaling = 1; public static int scaling = 1;
public string mainTextureName;//TODO костыль - пофиксить public string mainTextureName;//TODO костыль - пофиксить
public SpriteEffects Flip = SpriteEffects.None;
public float Rotation;
public abstract void LoadContent(); public abstract void LoadContent();
public abstract void Update(); public abstract void Update();
public abstract void Draw(Rectangle destinationRectangle, SpriteBatch _spriteBatch); public abstract void Draw(Rectangle destinationRectangle, SpriteBatch _spriteBatch);

View file

@ -1,16 +0,0 @@
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
namespace ZoFo.GameCore.Graphics;
public interface IGraphicsComponent
{
public Rectangle ObjectDrawRectangle { get; set; }
public static int scaling = 1;
public string mainTextureName { get; set; }//TODO костыль - пофиксить
public abstract void LoadContent();
public abstract void Update();
public abstract void Draw(Rectangle destinationRectangle, SpriteBatch _spriteBatch);
public abstract void Draw(Rectangle destinationRectangle, SpriteBatch _spriteBatch, Rectangle sourceRectangle);
}

View file

@ -8,7 +8,6 @@ using ZoFo.GameCore.GUI;
namespace ZoFo.GameCore.Graphics namespace ZoFo.GameCore.Graphics
{ {
public class StaticGraphicsComponent : GraphicsComponent public class StaticGraphicsComponent : GraphicsComponent
{ {
private Texture2D texture; private Texture2D texture;
@ -53,11 +52,14 @@ namespace ZoFo.GameCore.Graphics
destinationRectangle.X -= CameraPosition.X; destinationRectangle.X -= CameraPosition.X;
destinationRectangle.Y -= CameraPosition.Y; destinationRectangle.Y -= CameraPosition.Y;
destinationRectangle = Scaling(destinationRectangle); destinationRectangle = Scaling(destinationRectangle);
_spriteBatch.Draw(texture, destinationRectangle, Color.White); _spriteBatch.Draw(texture, destinationRectangle, texture.Bounds, Color.White, Rotation,
Vector2.Zero, Flip, 0);
} }
public override void Draw(Rectangle destinationRectangle, SpriteBatch _spriteBatch, Rectangle sourceRectangle) public override void Draw(Rectangle destinationRectangle, SpriteBatch _spriteBatch, Rectangle sourceRectangle)
{ {
// Uncomment to go brrrr
//Rotation = new Random().Next(1, 365);
DebugHUD.Instance.Log("draw "); DebugHUD.Instance.Log("draw ");
destinationRectangle.X -= CameraPosition.X; destinationRectangle.X -= CameraPosition.X;
@ -65,7 +67,8 @@ namespace ZoFo.GameCore.Graphics
destinationRectangle = Scaling(destinationRectangle); destinationRectangle = Scaling(destinationRectangle);
_spriteBatch.Draw(texture, _spriteBatch.Draw(texture,
destinationRectangle, sourceRectangle, Color.White); destinationRectangle, sourceRectangle, Color.White, Rotation,
Vector2.Zero, Flip, 0);
} }
} }
} }

View file

@ -21,6 +21,7 @@ using ZoFo.GameCore.GameObjects.Entities.LivingEntities.Player;
using ZoFo.GameCore.GameObjects.MapObjects; using ZoFo.GameCore.GameObjects.MapObjects;
using ZoFo.GameCore.GameObjects.MapObjects.StopObjects; using ZoFo.GameCore.GameObjects.MapObjects.StopObjects;
using ZoFo.GameCore.Graphics; using ZoFo.GameCore.Graphics;
using ZoFo.GameCore.GameManagers.NetworkManager.SerializableDTO;
namespace ZoFo.GameCore namespace ZoFo.GameCore
{ {
@ -127,7 +128,7 @@ namespace ZoFo.GameCore
players = new List<Player>(); players = new List<Player>();
new MapManager().LoadMap(); new MapManager().LoadMap();
AppManager.Instance.server.RegisterGameObject(new EntittyForAnimationTests(new Vector2(0, 0))); //AppManager.Instance.server.RegisterGameObject(new EntittyForAnimationTests(new Vector2(0, 0)));
AppManager.Instance.server.RegisterGameObject(new Player(new Vector2(740, 140))); AppManager.Instance.server.RegisterGameObject(new Player(new Vector2(740, 140)));
AppManager.Instance.server.RegisterGameObject(new Zombie(new Vector2(1000, 1000))); AppManager.Instance.server.RegisterGameObject(new Zombie(new Vector2(1000, 1000)));
AppManager.Instance.server.RegisterGameObject(new Ammo(new Vector2(140, 440))); AppManager.Instance.server.RegisterGameObject(new Ammo(new Vector2(140, 440)));
@ -172,30 +173,13 @@ namespace ZoFo.GameCore
{ {
gameObjects.Add(gameObject); gameObjects.Add(gameObject);
if (gameObject is StopObject)
{
AddData(new UpdateStopObjectCreated()
{
Position = (gameObject as StopObject).position,
sourceRectangle = (gameObject as StopObject).sourceRectangle,
Size = (gameObject as StopObject).graphicsComponent.ObjectDrawRectangle.Size,
collisions = (gameObject as StopObject).collisionComponents.Select(x=>x.stopRectangle).ToArray(),
tileSetName = ((gameObject as StopObject).graphicsComponent as StaticGraphicsComponent)._textureName
});//TODO
foreach (var item in (gameObject as StopObject).collisionComponents)
{
collisionManager.Register(item);
}
return;
}
if (gameObject is MapObject) if (gameObject is MapObject)
{ {
AddData(new UpdateTileCreated() AddData(new UpdateTileCreated()
{ {
Position = (gameObject as MapObject).position, Position = (gameObject as MapObject).position,
sourceRectangle = (gameObject as MapObject).sourceRectangle, sourceRectangle = new SerializableRectangle((gameObject as MapObject).sourceRectangle),
Size = (gameObject as MapObject).graphicsComponent.ObjectDrawRectangle.Size, Size = new SerializablePoint((gameObject as MapObject).graphicsComponent.ObjectDrawRectangle.Size),
tileSetName = ((gameObject as MapObject).graphicsComponent as StaticGraphicsComponent)._textureName tileSetName = ((gameObject as MapObject).graphicsComponent as StaticGraphicsComponent)._textureName
});//TODO });//TODO
return; return;