diff --git a/ZoFo/Content/Content.mgcb b/ZoFo/Content/Content.mgcb index 14c8973..f2a0e0d 100644 --- a/ZoFo/Content/Content.mgcb +++ b/ZoFo/Content/Content.mgcb @@ -37,6 +37,9 @@ #begin MapData/TileMaps/main.tmj /copy:MapData/TileMaps/main.tmj +#begin MapData/TileSets/IconSet.tsj +/copy:MapData/TileSets/IconSet.tsj + #begin MapData/TileSets/tileset 1 collision.tsj /copy:MapData/TileSets/tileset 1 collision.tsj @@ -124,54 +127,54 @@ #begin Textures/Animations/player_left_idle.animation /copy:Textures/Animations/player_left_idle.animation -#begin Textures/Animations/player_look_down_weapon.animation -/copy:Textures/Animations/player_look_down_weapon.animation - #begin Textures/Animations/player_look_down.animation /copy:Textures/Animations/player_look_down.animation -#begin Textures/Animations/player_look_left_down_weapon.animation -/copy:Textures/Animations/player_look_left_down_weapon.animation - -#begin Textures/Animations/player_look_left_down.animation -/copy:Textures/Animations/player_look_left_down.animation - -#begin Textures/Animations/player_look_left_up_weapon.animation -/copy:Textures/Animations/player_look_left_up_weapon.animation - -#begin Textures/Animations/player_look_left_up.animation -/copy:Textures/Animations/player_look_left_up.animation - -#begin Textures/Animations/player_look_left_weapon.animation -/copy:Textures/Animations/player_look_left_weapon.animation +#begin Textures/Animations/player_look_down_weapon.animation +/copy:Textures/Animations/player_look_down_weapon.animation #begin Textures/Animations/player_look_left.animation /copy:Textures/Animations/player_look_left.animation -#begin Textures/Animations/player_look_right_down_weapon.animation -/copy:Textures/Animations/player_look_right_down_weapon.animation +#begin Textures/Animations/player_look_left_down.animation +/copy:Textures/Animations/player_look_left_down.animation -#begin Textures/Animations/player_look_right_down.animation -/copy:Textures/Animations/player_look_right_down.animation +#begin Textures/Animations/player_look_left_down_weapon.animation +/copy:Textures/Animations/player_look_left_down_weapon.animation -#begin Textures/Animations/player_look_right_up_weapon.animation -/copy:Textures/Animations/player_look_right_up_weapon.animation +#begin Textures/Animations/player_look_left_up.animation +/copy:Textures/Animations/player_look_left_up.animation -#begin Textures/Animations/player_look_right_up.animation -/copy:Textures/Animations/player_look_right_up.animation +#begin Textures/Animations/player_look_left_up_weapon.animation +/copy:Textures/Animations/player_look_left_up_weapon.animation -#begin Textures/Animations/player_look_right_weapon.animation -/copy:Textures/Animations/player_look_right_weapon.animation +#begin Textures/Animations/player_look_left_weapon.animation +/copy:Textures/Animations/player_look_left_weapon.animation #begin Textures/Animations/player_look_right.animation /copy:Textures/Animations/player_look_right.animation -#begin Textures/Animations/player_look_up_weapon.animation -/copy:Textures/Animations/player_look_up_weapon.animation +#begin Textures/Animations/player_look_right_down.animation +/copy:Textures/Animations/player_look_right_down.animation + +#begin Textures/Animations/player_look_right_down_weapon.animation +/copy:Textures/Animations/player_look_right_down_weapon.animation + +#begin Textures/Animations/player_look_right_up.animation +/copy:Textures/Animations/player_look_right_up.animation + +#begin Textures/Animations/player_look_right_up_weapon.animation +/copy:Textures/Animations/player_look_right_up_weapon.animation + +#begin Textures/Animations/player_look_right_weapon.animation +/copy:Textures/Animations/player_look_right_weapon.animation #begin Textures/Animations/player_look_up.animation /copy:Textures/Animations/player_look_up.animation +#begin Textures/Animations/player_look_up_weapon.animation +/copy:Textures/Animations/player_look_up_weapon.animation + #begin Textures/Animations/player_right_idle.animation /copy:Textures/Animations/player_right_idle.animation @@ -196,6 +199,21 @@ #begin Textures/Animations/testAnimationExample.animation /copy:Textures/Animations/testAnimationExample.animation +#begin Textures/Animations/zombie_attack.animation +/copy:Textures/Animations/zombie_attack.animation + +#begin Textures/Animations/zombie_damaged.animation +/copy:Textures/Animations/zombie_damaged.animation + +#begin Textures/Animations/zombie_death.animation +/copy:Textures/Animations/zombie_death.animation + +#begin Textures/Animations/zombie_idle.animation +/copy:Textures/Animations/zombie_idle.animation + +#begin Textures/Animations/zombie_walk.animation +/copy:Textures/Animations/zombie_walk.animation + #begin Textures/AnimationTextures/Character/hr-level1_idle.png /importer:TextureImporter /processor:TextureProcessor @@ -280,6 +298,30 @@ /processorParam:TextureFormat=Color /build:Textures/AnimationTextures/unicorn.png +#begin Textures/AnimationTextures/Zombie/zombie_spritesheet_v1.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/Zombie/zombie_spritesheet_v1.png + +#begin Textures/AnimationTextures/Zombie/zombie_spritesheet_v2.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/Zombie/zombie_spritesheet_v2.png + #begin Textures/GUI/background/base.png /importer:TextureImporter /processor:TextureProcessor @@ -568,6 +610,810 @@ /processorParam:TextureFormat=Color /build:Textures/icons/9.png +#begin Textures/icons/Collectables/Ammo.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Collectables/Ammo.png + +#begin Textures/icons/Collectables/BottleOfWater.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Collectables/BottleOfWater.png + +#begin Textures/icons/Collectables/Peeble.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Collectables/Peeble.png + +#begin Textures/icons/Collectables/PureBottleOfWater.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Collectables/PureBottleOfWater.png + +#begin Textures/icons/Collectables/RottenFlesh.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Collectables/RottenFlesh.png + +#begin Textures/icons/Collectables/Steel.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Collectables/Steel.png + +#begin Textures/icons/Collectables/Wood.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Collectables/Wood.png + +#begin Textures/icons/Material/Fabric.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Material/Fabric.png + +#begin Textures/icons/Material/Leather.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Material/Leather.png + +#begin Textures/icons/Material/Paper.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Material/Paper.png + +#begin Textures/icons/Material/Rope.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Material/Rope.png + +#begin Textures/icons/Material/String.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Material/String.png + +#begin Textures/icons/Material/Wooden Plank.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Material/Wooden Plank.png + +#begin Textures/icons/Material/Wool.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Material/Wool.png + +#begin Textures/icons/Misc/Book 2.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Misc/Book 2.png + +#begin Textures/icons/Misc/Book 3.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Misc/Book 3.png + +#begin Textures/icons/Misc/Book.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Misc/Book.png + +#begin Textures/icons/Misc/Candle.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Misc/Candle.png + +#begin Textures/icons/Misc/Chest.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Misc/Chest.png + +#begin Textures/icons/Misc/Copper Coin.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Misc/Copper Coin.png + +#begin Textures/icons/Misc/Crate.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Misc/Crate.png + +#begin Textures/icons/Misc/Envolop.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Misc/Envolop.png + +#begin Textures/icons/Misc/Gear.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Misc/Gear.png + +#begin Textures/icons/Misc/Golden Coin.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Misc/Golden Coin.png + +#begin Textures/icons/Misc/Golden Key.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Misc/Golden Key.png + +#begin Textures/icons/Misc/Heart.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Misc/Heart.png + +#begin Textures/icons/Misc/Iron Key.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Misc/Iron Key.png + +#begin Textures/icons/Misc/Lantern.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Misc/Lantern.png + +#begin Textures/icons/Misc/Map.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Misc/Map.png + +#begin Textures/icons/Misc/Rune Stone.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Misc/Rune Stone.png + +#begin Textures/icons/Misc/Scroll.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Misc/Scroll.png + +#begin Textures/icons/Misc/Silver Coin.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Misc/Silver Coin.png + +#begin Textures/icons/Misc/Silver Key.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Misc/Silver Key.png + +#begin Textures/icons/Monster Part/Bone.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Monster Part/Bone.png + +#begin Textures/icons/Monster Part/Egg.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Monster Part/Egg.png + +#begin Textures/icons/Monster Part/Feather.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Monster Part/Feather.png + +#begin Textures/icons/Monster Part/Monster Egg.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Monster Part/Monster Egg.png + +#begin Textures/icons/Monster Part/Monster Eye.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Monster Part/Monster Eye.png + +#begin Textures/icons/Monster Part/Skull.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Monster Part/Skull.png + +#begin Textures/icons/Monster Part/Slime Gel.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Monster Part/Slime Gel.png + +#begin Textures/icons/Ore & Gem/Coal.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Ore & Gem/Coal.png + +#begin Textures/icons/Ore & Gem/Copper Ingot.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Ore & Gem/Copper Ingot.png + +#begin Textures/icons/Ore & Gem/Copper Nugget.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Ore & Gem/Copper Nugget.png + +#begin Textures/icons/Ore & Gem/Crystal.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Ore & Gem/Crystal.png + +#begin Textures/icons/Ore & Gem/Cut Emerald.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Ore & Gem/Cut Emerald.png + +#begin Textures/icons/Ore & Gem/Cut Ruby.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Ore & Gem/Cut Ruby.png + +#begin Textures/icons/Ore & Gem/Cut Sapphire.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Ore & Gem/Cut Sapphire.png + +#begin Textures/icons/Ore & Gem/Cut Topaz.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Ore & Gem/Cut Topaz.png + +#begin Textures/icons/Ore & Gem/Diamond.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Ore & Gem/Diamond.png + +#begin Textures/icons/Ore & Gem/Emerald.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Ore & Gem/Emerald.png + +#begin Textures/icons/Ore & Gem/Gold Nugget.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Ore & Gem/Gold Nugget.png + +#begin Textures/icons/Ore & Gem/Golden Ingot.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Ore & Gem/Golden Ingot.png + +#begin Textures/icons/Ore & Gem/Obsidian.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Ore & Gem/Obsidian.png + +#begin Textures/icons/Ore & Gem/Pearl.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Ore & Gem/Pearl.png + +#begin Textures/icons/Ore & Gem/Ruby.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Ore & Gem/Ruby.png + +#begin Textures/icons/Ore & Gem/Sapphire.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Ore & Gem/Sapphire.png + +#begin Textures/icons/Ore & Gem/Silver Nugget.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Ore & Gem/Silver Nugget.png + +#begin Textures/icons/Ore & Gem/Topaz.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Ore & Gem/Topaz.png + +#begin Textures/icons/Potion/Blue Potion 2.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Potion/Blue Potion 2.png + +#begin Textures/icons/Potion/Blue Potion 3.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Potion/Blue Potion 3.png + +#begin Textures/icons/Potion/Empty Bottle.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Potion/Empty Bottle.png + +#begin Textures/icons/Potion/Green Potion 2.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Potion/Green Potion 2.png + +#begin Textures/icons/Potion/Green Potion 3.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Potion/Green Potion 3.png + +#begin Textures/icons/Potion/Green Potion.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Potion/Green Potion.png + +#begin Textures/icons/Potion/Red Potion 2.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Potion/Red Potion 2.png + +#begin Textures/icons/Potion/Red Potion 3.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Potion/Red Potion 3.png + +#begin Textures/icons/Potion/Red Potion.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/icons/Potion/Red Potion.png + #begin Textures/Test/pickaxe.webp /importer:TextureImporter /processor:TextureProcessor diff --git a/ZoFo/Content/MapData/MapSession.tiled-session b/ZoFo/Content/MapData/MapSession.tiled-session index c7b859f..acfc369 100644 --- a/ZoFo/Content/MapData/MapSession.tiled-session +++ b/ZoFo/Content/MapData/MapSession.tiled-session @@ -5,53 +5,74 @@ }, "activeFile": "TileMaps/main.tmj", "expandedProjectPaths": [ + ".", "TileSets", - "TileMaps", - "." + "TileMaps" ], "fileStates": { + "": { + "scaleInDock": 1 + }, "TileMaps/TileSets/TileSet 1.tsj": { "scaleInDock": 1 }, "TileMaps/main.tmj": { - "scale": 0.5, + "scale": 0.33, "selectedLayer": 1, "viewCenter": { - "x": 895, - "y": 270 + "x": 1010.6060606060606, + "y": 553.0303030303031 } }, + "TileMaps/main.tmj#IconSet": { + "dynamicWrapping": true, + "scaleInEditor": 1 + }, "TileSets/CollisionTileSet.tsj": { "scaleInDock": 0.75, "scaleInEditor": 1 }, + "TileSets/IconSet.tsj": { + "dynamicWrapping": true + }, "TileSets/TileSet 1.tsj": { + "dynamicWrapping": false, "scaleInDock": 1, "scaleInEditor": 1.5 }, + "TileSets/TilesetNature.tsj": { + "dynamicWrapping": false + "scaleInDock": 1 + }, "TileSets/WallSet.tsj": { "scaleInDock": 1, "scaleInEditor": 1 + }, + "TileSets/tileset 1 collision.tsj": { + "scaleInDock": 1 } }, - "last.imagePath": "D:/C#/Я смотрел ваши ХАКАТОНЫ/ZoFo/ZoFo/Content/Textures/TileSetImages", + "last.imagePath": "D:/C#/Я смотрел ваши ХАКАТОНЫ/ZoFo/ZoFo/Content/Textures/icons", + "last.objectTemplatePath": "D:/C#/Я смотрел ваши ХАКАТОНЫ/ZoFo/ZoFo/Content/MapData/Templates", "openFiles": [ "TileSets/TileSet 1.tsj", - "TileMaps/main.tmj", - "TileSets/CollisionTileSet.tsj" + "TileMaps/main.tmj" ], "project": "MapSession.tiled-project", "recentFiles": [ + "TileSets/TileSet 1.tsj", "TileMaps/main.tmj", "TileSets/CollisionTileSet.tsj", - "TileSets/TileSet 1.tsj", "TileSets/WallSet.tsj" ], + "stampsFolder": "D:/C#/Я смотрел ваши ХАКАТОНЫ/ZoFo/ZoFo/Content/MapData/TileStamps", + "tileset.embedInMap": false, "tileset.lastUsedFormat": "json", "tileset.margin": 0, "tileset.spacing": 0, "tileset.tileSize": { "height": 16, "width": 16 - } + }, + "tileset.type": 1 } diff --git a/ZoFo/Content/MapData/Templates/Ammo.tj b/ZoFo/Content/MapData/Templates/Ammo.tj new file mode 100644 index 0000000..6bba547 --- /dev/null +++ b/ZoFo/Content/MapData/Templates/Ammo.tj @@ -0,0 +1,18 @@ +{ "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" +} \ No newline at end of file diff --git a/ZoFo/Content/MapData/Templates/BottleOfWater.tj b/ZoFo/Content/MapData/Templates/BottleOfWater.tj new file mode 100644 index 0000000..14ab412 --- /dev/null +++ b/ZoFo/Content/MapData/Templates/BottleOfWater.tj @@ -0,0 +1,18 @@ +{ "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" +} \ No newline at end of file diff --git a/ZoFo/Content/MapData/Templates/Peeble.tj b/ZoFo/Content/MapData/Templates/Peeble.tj new file mode 100644 index 0000000..70ff1ff --- /dev/null +++ b/ZoFo/Content/MapData/Templates/Peeble.tj @@ -0,0 +1,18 @@ +{ "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" +} \ No newline at end of file diff --git a/ZoFo/Content/MapData/Templates/PureBottleOfWater.tj b/ZoFo/Content/MapData/Templates/PureBottleOfWater.tj new file mode 100644 index 0000000..72944f8 --- /dev/null +++ b/ZoFo/Content/MapData/Templates/PureBottleOfWater.tj @@ -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" +} \ No newline at end of file diff --git a/ZoFo/Content/MapData/Templates/RottenFlesh.tj b/ZoFo/Content/MapData/Templates/RottenFlesh.tj new file mode 100644 index 0000000..620179c --- /dev/null +++ b/ZoFo/Content/MapData/Templates/RottenFlesh.tj @@ -0,0 +1,18 @@ +{ "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" +} \ No newline at end of file diff --git a/ZoFo/Content/MapData/Templates/Steel.tj b/ZoFo/Content/MapData/Templates/Steel.tj new file mode 100644 index 0000000..64fa222 --- /dev/null +++ b/ZoFo/Content/MapData/Templates/Steel.tj @@ -0,0 +1,18 @@ +{ "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" +} \ No newline at end of file diff --git a/ZoFo/Content/MapData/Templates/Wood.tj b/ZoFo/Content/MapData/Templates/Wood.tj new file mode 100644 index 0000000..b4c4b4e --- /dev/null +++ b/ZoFo/Content/MapData/Templates/Wood.tj @@ -0,0 +1,18 @@ +{ "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" +} \ No newline at end of file diff --git a/ZoFo/Content/MapData/TileMaps/main.tmj b/ZoFo/Content/MapData/TileMaps/main.tmj index 1f5921c..136574c 100644 --- a/ZoFo/Content/MapData/TileMaps/main.tmj +++ b/ZoFo/Content/MapData/TileMaps/main.tmj @@ -1076,16 +1076,1052 @@ "y":0 }, { - "chunks":[], - "height":80, + "chunks":[ + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1074, 1075, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1098, 1099, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1122, 1123, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":0, + "y":0 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1068, 1069, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1092, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1116, 1117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1140, 1141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1074, 1075, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":16, + "y":0 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1144, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":32, + "y":0 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1018, 1019, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1042, 1043, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 573, 574, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 593, 594, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 613, 614, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":48, + "y":0 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1074, 1075, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1098, 1099, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1122, 1123, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 575, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 595, 596, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 615, 616, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1068, 1069, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":64, + "y":0 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1116, 1117, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1140, 1141, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":80, + "y":0 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 650, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 670, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1074, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 584, 585, 586, 0, 0, 1098, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 604, 605, 606, 0, 0, 1122, + 0, 0, 0, 0, 0, 650, 651, 652, 0, 0, 624, 625, 626, 0, 0, 0, + 0, 0, 0, 0, 0, 670, 671, 672, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1143, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":96, + "y":0 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 651, 652, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 671, 672, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1044, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1075, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1099, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1044, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":112, + "y":0 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1144, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":0, + "y":16 + }, + { + "data":[0, 1098, 1099, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1122, 1123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1068, 1069, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1092, 1093, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":16, + "y":16 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1068, 1069, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1092, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":32, + "y":16 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1018, 1019, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1042, 1043, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":48, + "y":16 + }, + { + "data":[0, 0, 0, 1092, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1018, 1019, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1042, 1043, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1068, 1069, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1092, 1093, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":64, + "y":16 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1068, 1069, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1092, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1074, 1075, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1098, 1099, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1122, 1123, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 650, 651, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 670, 671, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":80, + "y":16 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1143, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1070, 1071, 1072, 1073, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1094, 1095, 1096, 1097, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1118, 1119, 1120, 1121, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 652, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 672, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":96, + "y":16 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1044, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 577, 578, 579, 580, 0, 1044, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 597, 598, 599, 600, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 617, 618, 619, 620, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":112, + "y":16 + }, + + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 945, 946, 947, 948, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 969, 970, 971, 972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 993, 994, 995, 996, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1068, 1069, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1092, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1074, 1075, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1098, 1099, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1122, 1123, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1116, 1117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":0, + "y":32 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":16, + "y":32 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1018, 1019, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1042, 1043, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1068, 1069, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1092, 1093, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1143, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":32, + "y":32 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1068, 1069, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1092, 1093, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1018, 1019, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1042, 1043, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1144, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1144, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":48, + "y":32 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1074, 1075, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1098, 1099, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1122, 1123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1143, 0, 0, 0, 0, 0, 0, 0, 1116, 1117, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1140, 1141, 0, 0], + "height":16, + "width":16, + "x":64, + "y":32 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1068, 1069, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1018, + 0, 0, 0, 0, 1092, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1042, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1116, 1117, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1140, 1141, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":80, + "y":32 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1019, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1043, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1074, 1075, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1098, 1099, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1122, 1123, 0, 0, 0, 1068], + "height":16, + "width":16, + "x":96, + "y":32 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1142, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1044, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1069, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":112, + "y":32 + }, + { + "data":[0, 0, 0, 1140, 1141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":0, + "y":48 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1144, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 581, 582, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 601, 602, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 621, 622, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":16, + "y":48 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 584, 585, 586, 0, 0, 0, 577, 578, 579, 580, 0, 0, 0, 0, 0, + 0, 604, 605, 606, 0, 0, 0, 597, 598, 599, 600, 0, 0, 0, 0, 0, + 0, 624, 625, 626, 0, 0, 0, 617, 618, 619, 620, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 573, 574, 575, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 593, 594, 595, + 583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 613, 614, 615, + 603, 0, 0, 0, 0, 0, 0, 1144, 0, 0, 0, 0, 0, 0, 0, 0, + 623, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":32, + "y":48 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1070, 1071, 1072, 1073, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1094, 1095, 1096, 1097, 0, 0, 0, 0, 0, + 576, 0, 0, 0, 0, 0, 0, 1118, 1119, 1120, 1121, 0, 0, 0, 0, 0, + 596, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 616, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1068, 1069, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1092, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":48, + "y":48 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 650, 651, 652, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":64, + "y":48 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1092, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 945, 946, 947, 948, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 969, 970, 971, 972, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 993, 994, 995, 996, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1144, 0, 0, 0, 1070, 1071, 1072, 1073, 0, 0, 0], + "height":16, + "width":16, + "x":96, + "y":48 + }, + { + "data":[1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1044, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 581, 582, 583, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 601, 602, 603, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 621, 622, 623, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":112, + "y":48 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1143, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1144, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1018, 1019, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1042, 1043, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":0, + "y":64 + }, + + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1143, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1144, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1074, 1075, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1098, 1099, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1122, 1123, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":16, + "y":64 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1068, 1069, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1092, 1093, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 945, 946, 947, 948, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 969, 970, 971, 972, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 993, 994, 995, 996, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":32, + "y":64 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1018, 1019, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1042, 1043, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":48, + "y":64 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 670, 671, 672, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 581, 582, 583, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 601, 602, 603, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 621, 622, 623, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1074, 1075, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":64, + "y":64 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1116, 1117, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1140, 1141, 0, 0], + "height":16, + "width":16, + "x":80, + "y":64 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 1094, 1095, 1096, 1097, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1118, 1119, 1120, 1121, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1074, 1075, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1098, 1099, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1122, 1123, 0, 0, 0, 0, 0, 0, 0, 1144, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":96, + "y":64 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1044, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1068, 1069, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1044, 0, 1092, 1093, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":112, + "y":64 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 584, 585, 586, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 604, 605, 606, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 624, 625, 626, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1018, 1019, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1042, 1043, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":0, + "y":80 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1144, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":16, + "y":80 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 577, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 597, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 617, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1018, 1019, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1042, 1043, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":32, + "y":80 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 578, 579, 580, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 598, 599, 600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 618, 619, 620, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":48, + "y":80 + }, + { + "data":[1098, 1099, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1122, 1123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1074, 1075, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1098, 1099, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1074, 1075, 0, 1122, 1123, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1098, 1099, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1122, 1123, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":64, + "y":80 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1116, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1140, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":80, + "y":80 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1116, 1117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1140, 1141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1144, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":96, + "y":80 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1074, 1075, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1098, 1099, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1122, 1123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 584, 585, 586, 0, 0, 0, 0, 0, 0, 1074, 1075, 0, 0, 0, + 0, 0, 604, 605, 606, 0, 0, 0, 0, 0, 0, 1098, 1099, 0, 0, 0, + 0, 0, 624, 625, 626, 0, 0, 0, 0, 0, 0, 1122, 1123, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":112, + "y":80 + }], + "height":144, "id":5, "name":"Collidable", "opacity":1, - "startx":0, - "starty":0, + "startx":-16, + "starty":-16, "type":"tilelayer", "visible":true, - "width":64, + "width":208, "x":0, "y":0 }, @@ -1115,7 +2151,7 @@ "nextobjectid":1, "orientation":"orthogonal", "renderorder":"right-down", - "tiledversion":"1.10.2", + "tiledversion":"1.11.0", "tileheight":16, "tilesets":[ { @@ -1125,6 +2161,10 @@ { "firstgid":573, "source":"..\/TileSets\/tileset 1 collision.tsj" + }, + { + "firstgid":813, + "source":"..\/TileSets\/TilesetNature.tsj" }], "tilewidth":16, "type":"map", diff --git a/ZoFo/Content/MapData/TileSets/IconSet.tsj b/ZoFo/Content/MapData/TileSets/IconSet.tsj new file mode 100644 index 0000000..186df25 --- /dev/null +++ b/ZoFo/Content/MapData/TileSets/IconSet.tsj @@ -0,0 +1,60 @@ +{ "columns":0, + "grid": + { + "height":1, + "orientation":"orthogonal", + "width":1 + }, + "margin":0, + "name":"IconSet", + "spacing":0, + "tilecount":7, + "tiledversion":"1.10.2", + "tileheight":1200, + "tiles":[ + { + "id":0, + "image":"..\/..\/Textures\/icons\/Collectables\/ammunition.png", + "imageheight":512, + "imagewidth":512 + }, + { + "id":1, + "image":"..\/..\/Textures\/icons\/Collectables\/Blue Potion.png", + "imageheight":32, + "imagewidth":32 + }, + { + "id":2, + "image":"..\/..\/Textures\/icons\/Collectables\/Water Bottle.png", + "imageheight":32, + "imagewidth":32 + }, + { + "id":3, + "image":"..\/..\/Textures\/icons\/Collectables\/Wood Log.png", + "imageheight":32, + "imagewidth":32 + }, + { + "id":4, + "image":"..\/..\/Textures\/icons\/Collectables\/Silver Ingot.png", + "imageheight":32, + "imagewidth":32 + }, + { + "id":5, + "image":"..\/..\/Textures\/icons\/Collectables\/Monster Meat.png", + "imageheight":32, + "imagewidth":32 + }, + { + "id":6, + "image":"..\/..\/Textures\/icons\/Collectables\/Stone.png", + "imageheight":1200, + "imagewidth":1200 + }], + "tilewidth":1200, + "type":"tileset", + "version":"1.10" +} \ No newline at end of file diff --git a/ZoFo/Content/MapData/TileStamps/boulders.stamp b/ZoFo/Content/MapData/TileStamps/boulders.stamp new file mode 100644 index 0000000..a76d82f --- /dev/null +++ b/ZoFo/Content/MapData/TileStamps/boulders.stamp @@ -0,0 +1 @@ +{"name":"Boulders","variations":[{"map":{"compressionlevel":-1,"height":3,"infinite":false,"layers":[{"compression":"zlib","data":"eJwNwwcNACAMALCZ55iAYYIjjzZpiYhqszucpsvt8fr8tSAHbw==","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":"eJw7x8DAcB6InwHxcyAGACFwA2s=","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":1,"infinite":false,"layers":[{"compression":"zlib","data":"eJx7wcDAAAADpADp","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":2,"infinite":false,"layers":[{"compression":"zlib","data":"eJxjYGRgYARiCSCWBGIAAWQANw==","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":"eJwNwwcNACAMALDxTHBMcPxbo02aU0Sx2uwOp8vt8fr8FqQBVw==","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":"eJxjY2RgYAdiOSCWB2IzIDYHYgAHYgC+","encoding":"base64","height":3,"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":"eJwzYGRgMARiDyD2BGIACOQA9w==","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":1,"infinite":false,"layers":[{"compression":"zlib","data":"eJzzYmRgAAABLwBM","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":"eJzzZmRgAAABMwBN","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":"eJzzYWRgAAABNwBO","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}]} \ No newline at end of file diff --git a/ZoFo/Content/MapData/TileStamps/stone buildings.stamp b/ZoFo/Content/MapData/TileStamps/stone buildings.stamp new file mode 100644 index 0000000..47d327e --- /dev/null +++ b/ZoFo/Content/MapData/TileStamps/stone buildings.stamp @@ -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.10.2","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.10.2","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.10.2","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.10.2","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.10.2","tileheight":16,"tilesets":[{"firstgid":1,"source":"../TileSets/tileset 1 collision.tsj"}],"tilewidth":16,"type":"map","version":"1.10","width":3},"probability":1}]} \ No newline at end of file diff --git a/ZoFo/Content/Textures/AnimationTextures/Zombie/zombie_spritesheet_v1.png b/ZoFo/Content/Textures/AnimationTextures/Zombie/zombie_spritesheet_v1.png new file mode 100644 index 0000000..d54b7ba Binary files /dev/null and b/ZoFo/Content/Textures/AnimationTextures/Zombie/zombie_spritesheet_v1.png differ diff --git a/ZoFo/Content/Textures/AnimationTextures/Zombie/zombie_spritesheet_v2.png b/ZoFo/Content/Textures/AnimationTextures/Zombie/zombie_spritesheet_v2.png new file mode 100644 index 0000000..c8ca02c Binary files /dev/null and b/ZoFo/Content/Textures/AnimationTextures/Zombie/zombie_spritesheet_v2.png differ diff --git a/ZoFo/Content/Textures/Animations/zombie_attack.animation b/ZoFo/Content/Textures/Animations/zombie_attack.animation new file mode 100644 index 0000000..b8129db --- /dev/null +++ b/ZoFo/Content/Textures/Animations/zombie_attack.animation @@ -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":true,"offset":"0, 0"} diff --git a/ZoFo/Content/Textures/Animations/zombie_damaged.animation b/ZoFo/Content/Textures/Animations/zombie_damaged.animation new file mode 100644 index 0000000..6d0609d --- /dev/null +++ b/ZoFo/Content/Textures/Animations/zombie_damaged.animation @@ -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"} diff --git a/ZoFo/Content/Textures/Animations/zombie_death.animation b/ZoFo/Content/Textures/Animations/zombie_death.animation new file mode 100644 index 0000000..97aaa9c --- /dev/null +++ b/ZoFo/Content/Textures/Animations/zombie_death.animation @@ -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":true,"offset":"0, 0"} diff --git a/ZoFo/Content/Textures/Animations/zombie_idle.animation b/ZoFo/Content/Textures/Animations/zombie_idle.animation new file mode 100644 index 0000000..b96e1a3 --- /dev/null +++ b/ZoFo/Content/Textures/Animations/zombie_idle.animation @@ -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"} diff --git a/ZoFo/Content/Textures/Animations/zombie_walk.animation b/ZoFo/Content/Textures/Animations/zombie_walk.animation new file mode 100644 index 0000000..f6dbfa5 --- /dev/null +++ b/ZoFo/Content/Textures/Animations/zombie_walk.animation @@ -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":5}],"textureFrameInterval":0,"framesCount":8,"isCycle":true,"offset":"0, 0"} diff --git a/ZoFo/Content/Textures/icons/Collectables/Ammo.png b/ZoFo/Content/Textures/icons/Collectables/Ammo.png new file mode 100644 index 0000000..9c793f7 Binary files /dev/null and b/ZoFo/Content/Textures/icons/Collectables/Ammo.png differ diff --git a/ZoFo/Content/Textures/icons/Collectables/BottleOfWater.png b/ZoFo/Content/Textures/icons/Collectables/BottleOfWater.png new file mode 100644 index 0000000..86015b6 Binary files /dev/null and b/ZoFo/Content/Textures/icons/Collectables/BottleOfWater.png differ diff --git a/ZoFo/Content/Textures/icons/Collectables/Peeble.png b/ZoFo/Content/Textures/icons/Collectables/Peeble.png new file mode 100644 index 0000000..dfb4f75 Binary files /dev/null and b/ZoFo/Content/Textures/icons/Collectables/Peeble.png differ diff --git a/ZoFo/Content/Textures/icons/Collectables/PureBottleOfWater.png b/ZoFo/Content/Textures/icons/Collectables/PureBottleOfWater.png new file mode 100644 index 0000000..29812cb Binary files /dev/null and b/ZoFo/Content/Textures/icons/Collectables/PureBottleOfWater.png differ diff --git a/ZoFo/Content/Textures/icons/Collectables/RottenFlesh.png b/ZoFo/Content/Textures/icons/Collectables/RottenFlesh.png new file mode 100644 index 0000000..beb3904 Binary files /dev/null and b/ZoFo/Content/Textures/icons/Collectables/RottenFlesh.png differ diff --git a/ZoFo/Content/Textures/icons/Collectables/Steel.png b/ZoFo/Content/Textures/icons/Collectables/Steel.png new file mode 100644 index 0000000..83cec5d Binary files /dev/null and b/ZoFo/Content/Textures/icons/Collectables/Steel.png differ diff --git a/ZoFo/Content/Textures/icons/Collectables/Wood.png b/ZoFo/Content/Textures/icons/Collectables/Wood.png new file mode 100644 index 0000000..661a581 Binary files /dev/null and b/ZoFo/Content/Textures/icons/Collectables/Wood.png differ diff --git a/ZoFo/Content/Textures/icons/Material/Fabric.png b/ZoFo/Content/Textures/icons/Material/Fabric.png new file mode 100644 index 0000000..86f1fea Binary files /dev/null and b/ZoFo/Content/Textures/icons/Material/Fabric.png differ diff --git a/ZoFo/Content/Textures/icons/Material/Leather.png b/ZoFo/Content/Textures/icons/Material/Leather.png new file mode 100644 index 0000000..5469647 Binary files /dev/null and b/ZoFo/Content/Textures/icons/Material/Leather.png differ diff --git a/ZoFo/Content/Textures/icons/Material/Paper.png b/ZoFo/Content/Textures/icons/Material/Paper.png new file mode 100644 index 0000000..a2745c2 Binary files /dev/null and b/ZoFo/Content/Textures/icons/Material/Paper.png differ diff --git a/ZoFo/Content/Textures/icons/Material/Rope.png b/ZoFo/Content/Textures/icons/Material/Rope.png new file mode 100644 index 0000000..aadc1f6 Binary files /dev/null and b/ZoFo/Content/Textures/icons/Material/Rope.png differ diff --git a/ZoFo/Content/Textures/icons/Material/String.png b/ZoFo/Content/Textures/icons/Material/String.png new file mode 100644 index 0000000..e5b737d Binary files /dev/null and b/ZoFo/Content/Textures/icons/Material/String.png differ diff --git a/ZoFo/Content/Textures/icons/Material/Wooden Plank.png b/ZoFo/Content/Textures/icons/Material/Wooden Plank.png new file mode 100644 index 0000000..002b1f0 Binary files /dev/null and b/ZoFo/Content/Textures/icons/Material/Wooden Plank.png differ diff --git a/ZoFo/Content/Textures/icons/Material/Wool.png b/ZoFo/Content/Textures/icons/Material/Wool.png new file mode 100644 index 0000000..0721e18 Binary files /dev/null and b/ZoFo/Content/Textures/icons/Material/Wool.png differ diff --git a/ZoFo/Content/Textures/icons/Misc/Book 2.png b/ZoFo/Content/Textures/icons/Misc/Book 2.png new file mode 100644 index 0000000..3647643 Binary files /dev/null and b/ZoFo/Content/Textures/icons/Misc/Book 2.png differ diff --git a/ZoFo/Content/Textures/icons/Misc/Book 3.png b/ZoFo/Content/Textures/icons/Misc/Book 3.png new file mode 100644 index 0000000..fc95b46 Binary files /dev/null and b/ZoFo/Content/Textures/icons/Misc/Book 3.png differ diff --git a/ZoFo/Content/Textures/icons/Misc/Book.png b/ZoFo/Content/Textures/icons/Misc/Book.png new file mode 100644 index 0000000..72da883 Binary files /dev/null and b/ZoFo/Content/Textures/icons/Misc/Book.png differ diff --git a/ZoFo/Content/Textures/icons/Misc/Candle.png b/ZoFo/Content/Textures/icons/Misc/Candle.png new file mode 100644 index 0000000..668d746 Binary files /dev/null and b/ZoFo/Content/Textures/icons/Misc/Candle.png differ diff --git a/ZoFo/Content/Textures/icons/Misc/Chest.png b/ZoFo/Content/Textures/icons/Misc/Chest.png new file mode 100644 index 0000000..c489e19 Binary files /dev/null and b/ZoFo/Content/Textures/icons/Misc/Chest.png differ diff --git a/ZoFo/Content/Textures/icons/Misc/Copper Coin.png b/ZoFo/Content/Textures/icons/Misc/Copper Coin.png new file mode 100644 index 0000000..a3ea56c Binary files /dev/null and b/ZoFo/Content/Textures/icons/Misc/Copper Coin.png differ diff --git a/ZoFo/Content/Textures/icons/Misc/Crate.png b/ZoFo/Content/Textures/icons/Misc/Crate.png new file mode 100644 index 0000000..515179f Binary files /dev/null and b/ZoFo/Content/Textures/icons/Misc/Crate.png differ diff --git a/ZoFo/Content/Textures/icons/Misc/Envolop.png b/ZoFo/Content/Textures/icons/Misc/Envolop.png new file mode 100644 index 0000000..353d1e2 Binary files /dev/null and b/ZoFo/Content/Textures/icons/Misc/Envolop.png differ diff --git a/ZoFo/Content/Textures/icons/Misc/Gear.png b/ZoFo/Content/Textures/icons/Misc/Gear.png new file mode 100644 index 0000000..ca61852 Binary files /dev/null and b/ZoFo/Content/Textures/icons/Misc/Gear.png differ diff --git a/ZoFo/Content/Textures/icons/Misc/Golden Coin.png b/ZoFo/Content/Textures/icons/Misc/Golden Coin.png new file mode 100644 index 0000000..e229bc6 Binary files /dev/null and b/ZoFo/Content/Textures/icons/Misc/Golden Coin.png differ diff --git a/ZoFo/Content/Textures/icons/Misc/Golden Key.png b/ZoFo/Content/Textures/icons/Misc/Golden Key.png new file mode 100644 index 0000000..6a38826 Binary files /dev/null and b/ZoFo/Content/Textures/icons/Misc/Golden Key.png differ diff --git a/ZoFo/Content/Textures/icons/Misc/Heart.png b/ZoFo/Content/Textures/icons/Misc/Heart.png new file mode 100644 index 0000000..46c8c85 Binary files /dev/null and b/ZoFo/Content/Textures/icons/Misc/Heart.png differ diff --git a/ZoFo/Content/Textures/icons/Misc/Iron Key.png b/ZoFo/Content/Textures/icons/Misc/Iron Key.png new file mode 100644 index 0000000..05431f3 Binary files /dev/null and b/ZoFo/Content/Textures/icons/Misc/Iron Key.png differ diff --git a/ZoFo/Content/Textures/icons/Misc/Lantern.png b/ZoFo/Content/Textures/icons/Misc/Lantern.png new file mode 100644 index 0000000..17c8269 Binary files /dev/null and b/ZoFo/Content/Textures/icons/Misc/Lantern.png differ diff --git a/ZoFo/Content/Textures/icons/Misc/Map.png b/ZoFo/Content/Textures/icons/Misc/Map.png new file mode 100644 index 0000000..dd03538 Binary files /dev/null and b/ZoFo/Content/Textures/icons/Misc/Map.png differ diff --git a/ZoFo/Content/Textures/icons/Misc/Rune Stone.png b/ZoFo/Content/Textures/icons/Misc/Rune Stone.png new file mode 100644 index 0000000..c859aa1 Binary files /dev/null and b/ZoFo/Content/Textures/icons/Misc/Rune Stone.png differ diff --git a/ZoFo/Content/Textures/icons/Misc/Scroll.png b/ZoFo/Content/Textures/icons/Misc/Scroll.png new file mode 100644 index 0000000..a9150e0 Binary files /dev/null and b/ZoFo/Content/Textures/icons/Misc/Scroll.png differ diff --git a/ZoFo/Content/Textures/icons/Misc/Silver Coin.png b/ZoFo/Content/Textures/icons/Misc/Silver Coin.png new file mode 100644 index 0000000..3fd8a1b Binary files /dev/null and b/ZoFo/Content/Textures/icons/Misc/Silver Coin.png differ diff --git a/ZoFo/Content/Textures/icons/Misc/Silver Key.png b/ZoFo/Content/Textures/icons/Misc/Silver Key.png new file mode 100644 index 0000000..a8d1a88 Binary files /dev/null and b/ZoFo/Content/Textures/icons/Misc/Silver Key.png differ diff --git a/ZoFo/Content/Textures/icons/Monster Part/Bone.png b/ZoFo/Content/Textures/icons/Monster Part/Bone.png new file mode 100644 index 0000000..875f234 Binary files /dev/null and b/ZoFo/Content/Textures/icons/Monster Part/Bone.png differ diff --git a/ZoFo/Content/Textures/icons/Monster Part/Egg.png b/ZoFo/Content/Textures/icons/Monster Part/Egg.png new file mode 100644 index 0000000..72c63b6 Binary files /dev/null and b/ZoFo/Content/Textures/icons/Monster Part/Egg.png differ diff --git a/ZoFo/Content/Textures/icons/Monster Part/Feather.png b/ZoFo/Content/Textures/icons/Monster Part/Feather.png new file mode 100644 index 0000000..266c099 Binary files /dev/null and b/ZoFo/Content/Textures/icons/Monster Part/Feather.png differ diff --git a/ZoFo/Content/Textures/icons/Monster Part/Monster Egg.png b/ZoFo/Content/Textures/icons/Monster Part/Monster Egg.png new file mode 100644 index 0000000..1c25f6f Binary files /dev/null and b/ZoFo/Content/Textures/icons/Monster Part/Monster Egg.png differ diff --git a/ZoFo/Content/Textures/icons/Monster Part/Monster Eye.png b/ZoFo/Content/Textures/icons/Monster Part/Monster Eye.png new file mode 100644 index 0000000..46f7dd9 Binary files /dev/null and b/ZoFo/Content/Textures/icons/Monster Part/Monster Eye.png differ diff --git a/ZoFo/Content/Textures/icons/Monster Part/Skull.png b/ZoFo/Content/Textures/icons/Monster Part/Skull.png new file mode 100644 index 0000000..a43677f Binary files /dev/null and b/ZoFo/Content/Textures/icons/Monster Part/Skull.png differ diff --git a/ZoFo/Content/Textures/icons/Monster Part/Slime Gel.png b/ZoFo/Content/Textures/icons/Monster Part/Slime Gel.png new file mode 100644 index 0000000..348dc3a Binary files /dev/null and b/ZoFo/Content/Textures/icons/Monster Part/Slime Gel.png differ diff --git a/ZoFo/Content/Textures/icons/Ore & Gem/Coal.png b/ZoFo/Content/Textures/icons/Ore & Gem/Coal.png new file mode 100644 index 0000000..4b31230 Binary files /dev/null and b/ZoFo/Content/Textures/icons/Ore & Gem/Coal.png differ diff --git a/ZoFo/Content/Textures/icons/Ore & Gem/Copper Ingot.png b/ZoFo/Content/Textures/icons/Ore & Gem/Copper Ingot.png new file mode 100644 index 0000000..87b5414 Binary files /dev/null and b/ZoFo/Content/Textures/icons/Ore & Gem/Copper Ingot.png differ diff --git a/ZoFo/Content/Textures/icons/Ore & Gem/Copper Nugget.png b/ZoFo/Content/Textures/icons/Ore & Gem/Copper Nugget.png new file mode 100644 index 0000000..5bf5b77 Binary files /dev/null and b/ZoFo/Content/Textures/icons/Ore & Gem/Copper Nugget.png differ diff --git a/ZoFo/Content/Textures/icons/Ore & Gem/Crystal.png b/ZoFo/Content/Textures/icons/Ore & Gem/Crystal.png new file mode 100644 index 0000000..84b4ad5 Binary files /dev/null and b/ZoFo/Content/Textures/icons/Ore & Gem/Crystal.png differ diff --git a/ZoFo/Content/Textures/icons/Ore & Gem/Cut Emerald.png b/ZoFo/Content/Textures/icons/Ore & Gem/Cut Emerald.png new file mode 100644 index 0000000..f6915ff Binary files /dev/null and b/ZoFo/Content/Textures/icons/Ore & Gem/Cut Emerald.png differ diff --git a/ZoFo/Content/Textures/icons/Ore & Gem/Cut Ruby.png b/ZoFo/Content/Textures/icons/Ore & Gem/Cut Ruby.png new file mode 100644 index 0000000..f3324b8 Binary files /dev/null and b/ZoFo/Content/Textures/icons/Ore & Gem/Cut Ruby.png differ diff --git a/ZoFo/Content/Textures/icons/Ore & Gem/Cut Sapphire.png b/ZoFo/Content/Textures/icons/Ore & Gem/Cut Sapphire.png new file mode 100644 index 0000000..bc10d18 Binary files /dev/null and b/ZoFo/Content/Textures/icons/Ore & Gem/Cut Sapphire.png differ diff --git a/ZoFo/Content/Textures/icons/Ore & Gem/Cut Topaz.png b/ZoFo/Content/Textures/icons/Ore & Gem/Cut Topaz.png new file mode 100644 index 0000000..186ea83 Binary files /dev/null and b/ZoFo/Content/Textures/icons/Ore & Gem/Cut Topaz.png differ diff --git a/ZoFo/Content/Textures/icons/Ore & Gem/Diamond.png b/ZoFo/Content/Textures/icons/Ore & Gem/Diamond.png new file mode 100644 index 0000000..ab88c6d Binary files /dev/null and b/ZoFo/Content/Textures/icons/Ore & Gem/Diamond.png differ diff --git a/ZoFo/Content/Textures/icons/Ore & Gem/Emerald.png b/ZoFo/Content/Textures/icons/Ore & Gem/Emerald.png new file mode 100644 index 0000000..71d792a Binary files /dev/null and b/ZoFo/Content/Textures/icons/Ore & Gem/Emerald.png differ diff --git a/ZoFo/Content/Textures/icons/Ore & Gem/Gold Nugget.png b/ZoFo/Content/Textures/icons/Ore & Gem/Gold Nugget.png new file mode 100644 index 0000000..efb2bdc Binary files /dev/null and b/ZoFo/Content/Textures/icons/Ore & Gem/Gold Nugget.png differ diff --git a/ZoFo/Content/Textures/icons/Ore & Gem/Golden Ingot.png b/ZoFo/Content/Textures/icons/Ore & Gem/Golden Ingot.png new file mode 100644 index 0000000..0ce2a77 Binary files /dev/null and b/ZoFo/Content/Textures/icons/Ore & Gem/Golden Ingot.png differ diff --git a/ZoFo/Content/Textures/icons/Ore & Gem/Obsidian.png b/ZoFo/Content/Textures/icons/Ore & Gem/Obsidian.png new file mode 100644 index 0000000..7077bfc Binary files /dev/null and b/ZoFo/Content/Textures/icons/Ore & Gem/Obsidian.png differ diff --git a/ZoFo/Content/Textures/icons/Ore & Gem/Pearl.png b/ZoFo/Content/Textures/icons/Ore & Gem/Pearl.png new file mode 100644 index 0000000..c05a104 Binary files /dev/null and b/ZoFo/Content/Textures/icons/Ore & Gem/Pearl.png differ diff --git a/ZoFo/Content/Textures/icons/Ore & Gem/Ruby.png b/ZoFo/Content/Textures/icons/Ore & Gem/Ruby.png new file mode 100644 index 0000000..5953f23 Binary files /dev/null and b/ZoFo/Content/Textures/icons/Ore & Gem/Ruby.png differ diff --git a/ZoFo/Content/Textures/icons/Ore & Gem/Sapphire.png b/ZoFo/Content/Textures/icons/Ore & Gem/Sapphire.png new file mode 100644 index 0000000..8ee8eb9 Binary files /dev/null and b/ZoFo/Content/Textures/icons/Ore & Gem/Sapphire.png differ diff --git a/ZoFo/Content/Textures/icons/Ore & Gem/Silver Nugget.png b/ZoFo/Content/Textures/icons/Ore & Gem/Silver Nugget.png new file mode 100644 index 0000000..12ba6f8 Binary files /dev/null and b/ZoFo/Content/Textures/icons/Ore & Gem/Silver Nugget.png differ diff --git a/ZoFo/Content/Textures/icons/Ore & Gem/Topaz.png b/ZoFo/Content/Textures/icons/Ore & Gem/Topaz.png new file mode 100644 index 0000000..14f60e0 Binary files /dev/null and b/ZoFo/Content/Textures/icons/Ore & Gem/Topaz.png differ diff --git a/ZoFo/Content/Textures/icons/Potion/Blue Potion 2.png b/ZoFo/Content/Textures/icons/Potion/Blue Potion 2.png new file mode 100644 index 0000000..e3f35cc Binary files /dev/null and b/ZoFo/Content/Textures/icons/Potion/Blue Potion 2.png differ diff --git a/ZoFo/Content/Textures/icons/Potion/Blue Potion 3.png b/ZoFo/Content/Textures/icons/Potion/Blue Potion 3.png new file mode 100644 index 0000000..08bd33c Binary files /dev/null and b/ZoFo/Content/Textures/icons/Potion/Blue Potion 3.png differ diff --git a/ZoFo/Content/Textures/icons/Potion/Empty Bottle.png b/ZoFo/Content/Textures/icons/Potion/Empty Bottle.png new file mode 100644 index 0000000..14d86eb Binary files /dev/null and b/ZoFo/Content/Textures/icons/Potion/Empty Bottle.png differ diff --git a/ZoFo/Content/Textures/icons/Potion/Green Potion 2.png b/ZoFo/Content/Textures/icons/Potion/Green Potion 2.png new file mode 100644 index 0000000..f1cb3eb Binary files /dev/null and b/ZoFo/Content/Textures/icons/Potion/Green Potion 2.png differ diff --git a/ZoFo/Content/Textures/icons/Potion/Green Potion 3.png b/ZoFo/Content/Textures/icons/Potion/Green Potion 3.png new file mode 100644 index 0000000..cab446c Binary files /dev/null and b/ZoFo/Content/Textures/icons/Potion/Green Potion 3.png differ diff --git a/ZoFo/Content/Textures/icons/Potion/Green Potion.png b/ZoFo/Content/Textures/icons/Potion/Green Potion.png new file mode 100644 index 0000000..ffb9a9a Binary files /dev/null and b/ZoFo/Content/Textures/icons/Potion/Green Potion.png differ diff --git a/ZoFo/Content/Textures/icons/Potion/Red Potion 2.png b/ZoFo/Content/Textures/icons/Potion/Red Potion 2.png new file mode 100644 index 0000000..775547c Binary files /dev/null and b/ZoFo/Content/Textures/icons/Potion/Red Potion 2.png differ diff --git a/ZoFo/Content/Textures/icons/Potion/Red Potion 3.png b/ZoFo/Content/Textures/icons/Potion/Red Potion 3.png new file mode 100644 index 0000000..f6e7087 Binary files /dev/null and b/ZoFo/Content/Textures/icons/Potion/Red Potion 3.png differ diff --git a/ZoFo/Content/Textures/icons/Potion/Red Potion.png b/ZoFo/Content/Textures/icons/Potion/Red Potion.png new file mode 100644 index 0000000..4492710 Binary files /dev/null and b/ZoFo/Content/Textures/icons/Potion/Red Potion.png differ diff --git a/ZoFo/GameCore/Client.cs b/ZoFo/GameCore/Client.cs index 7274abf..82e5f20 100644 --- a/ZoFo/GameCore/Client.cs +++ b/ZoFo/GameCore/Client.cs @@ -24,6 +24,7 @@ using ZoFo.GameCore.GUI; using ZoFo.GameCore.GameObjects.Entities.Interactables.Collectables; using ZoFo.GameCore.GameObjects.MapObjects.StopObjects; using ZoFo.GameCore.GameObjects.Entities.LivingEntities.Enemies; +using ZoFo.GameCore.Graphics; using Newtonsoft.Json.Linq; using Newtonsoft.Json; namespace ZoFo.GameCore @@ -49,8 +50,17 @@ namespace ZoFo.GameCore networkManager.AddData(new UpdateInput() { InputMovementDirection = AppManager.Instance.InputManager.InputMovementDirection, - InputAttackDirection = AppManager.Instance.InputManager.InputAttackDirection + InputAttackDirection = AppManager.Instance.InputManager.InputAttackDirection }); + + }; + AppManager.Instance.InputManager.OnInteract += () => + { + networkManager.AddData(new UpdateInputInteraction() { }); + }; + AppManager.Instance.InputManager.ShootEvent += () => + { + networkManager.AddData(new UpdateInputShoot() { }); }; } @@ -83,10 +93,12 @@ namespace ZoFo.GameCore #endregion + Player myPlayer; List mapObjects = new List(); List gameObjects = new List(); List players = new List(); List stopObjects = new List(); + /// /// Клиент должен обнговлять игру анимаций /// @@ -98,6 +110,10 @@ namespace ZoFo.GameCore AppManager.Instance.debugHud.Set("GameTime", gameTime.TotalGameTime.ToString()); gameObjects[i].UpdateAnimations(); } + + networkManager.SendData();//set to ticks + if (myPlayer!=null) + GraphicsComponent.CameraPosition = (myPlayer.position + myPlayer.graphicsComponent.ObjectDrawRectangle.Size.ToVector2()/2 - AppManager.Instance.CurentScreenResolution.ToVector2()/(2*GraphicsComponent.scaling)).ToPoint(); } internal void Draw(SpriteBatch spriteBatch) { @@ -127,16 +143,17 @@ namespace ZoFo.GameCore (update as UpdateTileCreated).tileSetName )); } - //else if (update is UpdateStopObjectCreated) - //{ - // stopObjects.Add( - // new StopObject( - // (update as UpdateStopObjectCreated).Position, - // (update as UpdateStopObjectCreated).Size.ToVector2(), - // (update as UpdateStopObjectCreated).sourceRectangle, - // (update as UpdateStopObjectCreated).tileSetName - // )); - //} + else if (update is UpdateStopObjectCreated) + { + stopObjects.Add( + new StopObject( + (update as UpdateStopObjectCreated).Position, + (update as UpdateStopObjectCreated).Size.GetPoint().ToVector2(), + (update as UpdateStopObjectCreated).sourceRectangle.GetRectangle(), + (update as UpdateStopObjectCreated).tileSetName, + (update as UpdateStopObjectCreated).collisions.Select(x =>x.GetRectangle()).ToArray() + )); + } else if (update is UpdateGameObjectCreated) { GameObject created_gameObject; @@ -146,6 +163,7 @@ namespace ZoFo.GameCore { created_gameObject = new Player((update as UpdateGameObjectCreated).position); players.Add(created_gameObject as Player); + myPlayer = players[0]; gameObjects.Add(created_gameObject); } if ((update as UpdateGameObjectCreated).GameObjectType == "Ammo") @@ -165,9 +183,23 @@ namespace ZoFo.GameCore else if (update is UpdatePosition) { var ent = FindEntityById(update.IdEntity); - + ent.position = (update as UpdatePosition).NewPosition; - DebugHUD.Instance.Log("newPosition " + ent.position); + } + else if (update is UpdateAnimation) + { + var ent = FindEntityById(update.IdEntity); + if (ent != null) + ((ent as Entity).graphicsComponent as AnimatedGraphicsComponent).StartAnimation((update as UpdateAnimation).animationId); + //DebugHUD.Instance.Log("new Animation " + ent.position); + } + else if (update is UpdateGameObjectDeleted) + { + var ent = FindEntityById(update.IdEntity); + + if (ent != null) + DeleteObject(ent); + } } @@ -186,6 +218,16 @@ namespace ZoFo.GameCore } return null; } + public void DeleteObject(Entity entity) + { + + if (gameObjects.Contains(entity)) + gameObjects.Remove(entity); + //if (entities.Contains(entity)) + // entities.Remove(entity); + if (players.Contains(entity)) + players.Remove(entity as Player); + } } } \ No newline at end of file diff --git a/ZoFo/GameCore/GUI/DebugHUD.cs b/ZoFo/GameCore/GUI/DebugHUD.cs index 294530a..f7e4b8e 100644 --- a/ZoFo/GameCore/GUI/DebugHUD.cs +++ b/ZoFo/GameCore/GUI/DebugHUD.cs @@ -62,6 +62,10 @@ public class DebugHUD { _text[key] = value; } + public static void DebugSet(string key, string value) + { + Instance._text[key] = value; + } public void Log(string value) { @@ -71,4 +75,12 @@ public class DebugHUD _log.RemoveAt(0); } } + public static void DebugLog(string value) + { + Instance._log.Add(value); + if (Instance._log.Count > 30) + { + Instance._log.RemoveAt(0); + } + } } \ No newline at end of file diff --git a/ZoFo/GameCore/GameManagers/CollisionManager/CollisionComponent.cs b/ZoFo/GameCore/GameManagers/CollisionManager/CollisionComponent.cs index fa9f9d6..0209483 100644 --- a/ZoFo/GameCore/GameManagers/CollisionManager/CollisionComponent.cs +++ b/ZoFo/GameCore/GameManagers/CollisionManager/CollisionComponent.cs @@ -43,12 +43,11 @@ namespace ZoFo.GameCore.GameManagers.CollisionManager public GameObject gameObject { get; set; } - bool doesStop; - bool hasCollision; + public bool hasCollision; public Rectangle stopRectangle; // triggers for rectangle - bool isTrigger; + public bool isTrigger; public Rectangle triggerRectangle; //delegate @@ -58,13 +57,21 @@ namespace ZoFo.GameCore.GameManagers.CollisionManager //events DoorInteraction - public event EventHandler OnTriggerEnter; - public event EventHandler OnTriggerZone; - public event EventHandler OnTriggerExit; - - public event EventHandler OnCollision; + public delegate void CollisionAction(Player player); + public event CollisionAction? OnTriggerEnter; + public event CollisionAction? OnTriggerZone; + public event CollisionAction? OnTriggerExit; + + public delegate void CoollisionEvent(GameObject gameObject); + public event CoollisionEvent? OnCollision; + + + + public void PlayerInZone(Player player) => OnTriggerZone?.Invoke(player); + public void PlayerEnter(Player player) => OnTriggerEnter?.Invoke(player); + public void PlayerExit(Player player) => OnTriggerExit?.Invoke(player); + public void OnCollisionWithObject(GameObject gameObject) => OnCollision?.Invoke(gameObject); + - - } } diff --git a/ZoFo/GameCore/GameManagers/CollisionManager/CollisionManager.cs b/ZoFo/GameCore/GameManagers/CollisionManager/CollisionManager.cs index 25736fe..84d4f10 100644 --- a/ZoFo/GameCore/GameManagers/CollisionManager/CollisionManager.cs +++ b/ZoFo/GameCore/GameManagers/CollisionManager/CollisionManager.cs @@ -12,6 +12,7 @@ using ZoFo.GameCore.GameObjects.Entities; using ZoFo.GameCore.GameObjects.Entities.LivingEntities; using ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient; using ZoFo.GameCore.Graphics; +using ZoFo.GameCore.GameObjects.Entities.LivingEntities.Player; namespace ZoFo.GameCore.GameManagers.CollisionManager { @@ -25,127 +26,193 @@ namespace ZoFo.GameCore.GameManagers.CollisionManager //чекаем коллизии в листе + + /// + /// минимальный накоп изменения перед перевдижением + /// + const float minimalValueToChange = 4; public void CheckComponentCollision(CollisionComponent componentOfEntity) { var entity = componentOfEntity.gameObject as LivingEntity; //for (int i = 0; i < ObjectsWithCollisions.Count; i++) //{ var currentRect = entity.collisionComponent.stopRectangle;//задаём РЕК - currentRect.X+=(int)entity.position.X; - currentRect.Y+=(int)entity.position.Y; + currentRect.X += (int)entity.position.X; + currentRect.Y += (int)entity.position.Y; var newRect = currentRect; // задаём значение старого РЕК новому РЕК - var collidedX = false; // соприкосновение - var tryingRectX = currentRect;//переменная для попытки перемещения по X - - tryingRectX.Offset((int)(entity.velocity.X), 0);//задаём значения для tryingRectX по X и по Y - - foreach (var item in ObjectsWithCollisions)//фильтрация + if (Math.Abs((int)entity.velocity.X) > minimalValueToChange ) //TODO { - if (item == componentOfEntity) continue; - - Rectangle rectChecking = item.stopRectangle.SetOrigin(item.gameObject.position); - if (Math.Abs(item.gameObject.position.X - componentOfEntity.gameObject.position.X) < 550 - && Math.Abs(item.gameObject.position.Y - componentOfEntity.gameObject.position.Y) < 550 - && tryingRectX.Intersects(rectChecking)) + var collidedX = false; // соприкосновение + var tryingRectX = currentRect;//переменная для попытки перемещения по X + tryingRectX.Offset((int)(entity.velocity.X), 0);//задаём значения для tryingRectX по X и по Y + + foreach (var item in ObjectsWithCollisions)//фильтрация { - collidedX = true;// меняем значение соприкосновения на true - entity.OnCollision(item);//подписываем entity на ивент коллизии + if (item == componentOfEntity) continue; - break;// выход + Rectangle rectChecking = item.stopRectangle.SetOrigin(item.gameObject.position); + if (Math.Abs(item.gameObject.position.X - componentOfEntity.gameObject.position.X) < 550 + && Math.Abs(item.gameObject.position.Y - componentOfEntity.gameObject.position.Y) < 550 + && tryingRectX.Intersects(rectChecking)) + + { + collidedX = true;// меняем значение соприкосновения на true + //entity.OnCollision(item);//подписываем entity на ивент коллизии + item.OnCollisionWithObject(entity); + entity.collisionComponent.OnCollisionWithObject(item.gameObject); + break;// выход + } } - } - if (collidedX)// срабатывает, если перемещение блокируется - { - entity.velocity.X = 0;// задаём значение смещения entity на 0 - } - else - { - entity.position.X += entity.velocity.X; //update player position - newRect.X = tryingRectX.X;//значение по X для нового РЕК приравниваем к значению испытуемого РЕК - } + if (collidedX)// срабатывает, если перемещение блокируется + { + entity.velocity.X = 0;// задаём значение смещения entity на 0 + } + else + { + entity.position.X += entity.velocity.X; //update player position + newRect.X = tryingRectX.X;//значение по X для нового РЕК приравниваем к значению испытуемого РЕК + } + entity.velocity.X = 0; + } //==ПОВТОРЯЕМ ТОЖЕ САМОЕ ДЛЯ Y== var collidedY = false; // соприкосновение var tryingRectY = currentRect;//переменная для попытки перемещения по X - tryingRectY.Offset(new Point(0, (int)entity.velocity.Y));//задаём значения для tryingRectX по X и по Y - - foreach (var item in ObjectsWithCollisions)//фильтрация + if (Math.Abs((int)entity.velocity.Y)> minimalValueToChange) //TODO { - if (item == componentOfEntity) continue; - Rectangle rectChecking = item.stopRectangle.SetOrigin(item.gameObject.position); - if (Math.Abs(item.gameObject.position.X - componentOfEntity.gameObject.position.X) < 550 - && Math.Abs(item.gameObject.position.Y - componentOfEntity.gameObject.position.Y) < 550 - && tryingRectY.Intersects(rectChecking)) + tryingRectY.Offset(new Point(0, (int)entity.velocity.Y));//задаём значения для tryingRectX по X и по Y + + foreach (var item in ObjectsWithCollisions)//фильтрация { - collidedY = true;// меняем значение соприкосновения на true - entity.OnCollision(item);//подписываем entity на ивент коллизии + if (item == componentOfEntity) continue; + Rectangle rectChecking = item.stopRectangle.SetOrigin(item.gameObject.position); + if (Math.Abs(item.gameObject.position.X - componentOfEntity.gameObject.position.X) < 550 + && Math.Abs(item.gameObject.position.Y - componentOfEntity.gameObject.position.Y) < 550 + && tryingRectY.Intersects(rectChecking)) - break;// выход + { + collidedY = true;// меняем значение соприкосновения на true + entity.OnCollision(item);//подписываем entity на ивент коллизии + + break;// выход + } } + + if (collidedY)// срабатывает, если перемещение блокируется + { + entity.velocity.Y = 0;// задаём значение смещения entity на 0 + } + else + { + entity.position.Y += entity.velocity.Y; + newRect.Y = tryingRectY.Y;//значение по X для нового РЕК приравниваем к значению испытуемого РЕК + } + entity.velocity.Y = 0; } - if (collidedY)// срабатывает, если перемещение блокируется - { - entity.velocity.Y = 0;// задаём значение смещения entity на 0 - } - else - { - entity.position.Y += entity.velocity.Y; - newRect.Y = tryingRectY.Y;//значение по X для нового РЕК приравниваем к значению испытуемого РЕК - } - + entity.graphicsComponent.ObjectDrawRectangle.X = (int)entity.position.X; entity.graphicsComponent.ObjectDrawRectangle.Y = (int)entity.position.Y; AppManager.Instance.server.AddData(new UpdatePosition() { NewPosition = entity.position, IdEntity = entity.Id }); AppManager.Instance.debugHud.Set("testPos", entity.position.ToString()); //TODO remove - entity.velocity = Vector2.Zero; + } + + public void UpdateTriggerZones(Player player) + { + + var entity = player as LivingEntity; + var currentRect = entity.collisionComponent.stopRectangle;//задаём РЕК + currentRect.X += (int)entity.position.X; + currentRect.Y += (int)entity.position.Y; + + + for (int i = 0; i < ObjectsWithTriggers.Count; i++) + { + int c = ObjectsWithTriggers.Count; + + if (ObjectsWithTriggers[i].triggerRectangle.SetOrigin(ObjectsWithTriggers[i].gameObject.position).Intersects(currentRect)) + { + ObjectsWithTriggers[i].PlayerInZone(player); + } + i -= c - ObjectsWithTriggers.Count; + } } //обновление позиции объекта - public void UpdatePositions() + public void ResolvePhysics() { foreach (var item in EntitiesWithMovements) { CheckComponentCollision(item); } + foreach (var item in AppManager.Instance.server.players) + { + UpdateTriggerZones(item); + } } public CollisionManager() { - //graphicsComponent - //.ObjectDrawRectangle = new Rectangle(0, 0, 16 * 12, 16 * 16); EntitiesWithMovements = new List(); ObjectsWithCollisions = new List(); + ObjectsWithTriggers = new List(); } //регистрация компонента(его коллизии) public void Register(CollisionComponent component) { - ObjectsWithCollisions.Add(component); + if (component.hasCollision) + ObjectsWithCollisions.Add(component); + if (component.isTrigger) + ObjectsWithTriggers.Add(component); if (component.gameObject is LivingEntity) { EntitiesWithMovements.Add(component); } } + public void Deregister(CollisionComponent component) + { + if (ObjectsWithCollisions.Contains(component)) + ObjectsWithCollisions.Remove(component); + if (ObjectsWithTriggers.Contains(component)) + ObjectsWithTriggers.Remove(component); + if (component.gameObject is LivingEntity) + { + if (EntitiesWithMovements.Contains(component)) + EntitiesWithMovements.Remove(component); + } + } + public Player[] GetPlayersInZone(Rectangle rectangle) + { + List players = new List(); + foreach (var item in AppManager.Instance.server.players)//фильтрация + { + if (item.collisionComponent.stopRectangle.SetOrigin(item.position).Intersects(rectangle)) + { + players.Add(item); + } + } + return players.ToArray(); + } } public static class ExtentionClass { public static Rectangle SetOrigin(this Rectangle rectangle, Vector2 origin) { - rectangle.X = (int)origin.X; - rectangle.Y = (int)origin.Y; + rectangle.X += (int)origin.X; + rectangle.Y += (int)origin.Y; return rectangle; } } diff --git a/ZoFo/GameCore/GameManagers/InputManager.cs b/ZoFo/GameCore/GameManagers/InputManager.cs index dd13535..552552f 100644 --- a/ZoFo/GameCore/GameManagers/InputManager.cs +++ b/ZoFo/GameCore/GameManagers/InputManager.cs @@ -10,6 +10,7 @@ using System.Linq; using System.Reflection.Metadata.Ecma335; using System.Text; using System.Threading.Tasks; +using ZoFo.GameCore.GUI; namespace ZoFo.GameCore.GameManagers { @@ -27,9 +28,6 @@ namespace ZoFo.GameCore.GameManagers private Vector2 prevInputMovementDirection; public Vector2 InputAttackDirection; private Vector2 prevInputAttackDirection; - - public event Action TalkEvent; - public ScopeState currentScopeState; // Положение оружия. Left, Right, Straight, Back, StraightLeft, StraightRight, BackLeft, BackRight. private ScopeState prevCurrentScopeState; private bool _cheatsEnabled = false; @@ -48,6 +46,7 @@ namespace ZoFo.GameCore.GameManagers public InputManager() { + isInteract = true; InputMovementDirection = new Vector2(0, 0); InputAttackDirection = new Vector2(0, 0); this.isShoot = false; @@ -170,41 +169,49 @@ namespace ZoFo.GameCore.GameManagers #endregion // Cheats #region Обработка состояния объекта. Задает значение полю scopeState. - if (keyBoardState.IsKeyDown(Keys.Up) || keyBoardState.IsKeyDown(Keys.W)) - { - currentScopeState = ScopeState.Straight; - } - else if (keyBoardState.IsKeyDown(Keys.Down) || keyBoardState.IsKeyDown(Keys.S)) - { - currentScopeState = ScopeState.Back; - } - else if(keyBoardState.IsKeyDown(Keys.Left) || keyBoardState.IsKeyDown(Keys.A)) - { - currentScopeState = ScopeState.Left; - } - else if(keyBoardState.IsKeyDown(Keys.Right) || keyBoardState.IsKeyDown(Keys.D)) - { - currentScopeState = ScopeState.Right; - } - else if(keyBoardState.IsKeyDown(Keys.Right) && keyBoardState.IsKeyDown(Keys.Up) || + if(keyBoardState.IsKeyDown(Keys.Right) && keyBoardState.IsKeyDown(Keys.Up) || keyBoardState.IsKeyDown(Keys.D) && keyBoardState.IsKeyDown(Keys.W)) { currentScopeState = ScopeState.StraightRight; + InputMovementDirection = new Vector2(1, -1); } else if(keyBoardState.IsKeyDown(Keys.Left) && keyBoardState.IsKeyDown(Keys.Up) || keyBoardState.IsKeyDown(Keys.A) && keyBoardState.IsKeyDown(Keys.W)) { currentScopeState = ScopeState.StraightLeft; + InputMovementDirection = new Vector2(-1, -1); } else if(keyBoardState.IsKeyDown(Keys.Right) && keyBoardState.IsKeyDown(Keys.Down) || keyBoardState.IsKeyDown(Keys.D) && keyBoardState.IsKeyDown(Keys.S)) { currentScopeState = ScopeState.BackRight; + InputMovementDirection = new Vector2(1, 1); } else if(keyBoardState.IsKeyDown(Keys.Left) && keyBoardState.IsKeyDown(Keys.Down) || keyBoardState.IsKeyDown(Keys.A) && keyBoardState.IsKeyDown(Keys.S)) { currentScopeState = ScopeState.BackLeft; + InputMovementDirection = new Vector2(-1, 1); + } + else if (keyBoardState.IsKeyDown(Keys.Up) || keyBoardState.IsKeyDown(Keys.W)) + { + currentScopeState = ScopeState.Straight; + InputMovementDirection = new Vector2(0, -1); + } + else if (keyBoardState.IsKeyDown(Keys.Down) || keyBoardState.IsKeyDown(Keys.S)) + { + currentScopeState = ScopeState.Back; + InputMovementDirection = new Vector2(0, 1); + } + else if(keyBoardState.IsKeyDown(Keys.Left) || keyBoardState.IsKeyDown(Keys.A)) + { + currentScopeState = ScopeState.Left; + InputMovementDirection = new Vector2(-1, 0); + } + else if(keyBoardState.IsKeyDown(Keys.Right) || keyBoardState.IsKeyDown(Keys.D)) + { + currentScopeState = ScopeState.Right; + InputMovementDirection = new Vector2(1, 0); } #endregion @@ -247,6 +254,8 @@ namespace ZoFo.GameCore.GameManagers prevInputAttackDirection = InputAttackDirection; prevCurrentScopeState = currentScopeState; #endregion + + DebugHUD.Instance.Set("controls", currentScopeState.ToString()); } } } diff --git a/ZoFo/GameCore/GameManagers/MapManager/MapElements/Layer.cs b/ZoFo/GameCore/GameManagers/MapManager/MapElements/Layer.cs index cf04682..b02bb26 100644 --- a/ZoFo/GameCore/GameManagers/MapManager/MapElements/Layer.cs +++ b/ZoFo/GameCore/GameManagers/MapManager/MapElements/Layer.cs @@ -10,11 +10,14 @@ namespace ZoFo.GameCore.GameManagers.MapManager.MapElements public class Layer { public List Chunks { get; set; } + public List Objects { get; set; } public int Height { get; set; } public int Width { get; set; } public int Id { get; set; } public bool Visibility { get; set; } public string Class { get; set; } public string Type { get; set; } + public string Name { get; set; } + } } diff --git a/ZoFo/GameCore/GameManagers/MapManager/MapElements/Object.cs b/ZoFo/GameCore/GameManagers/MapManager/MapElements/Object.cs index f4c4336..96a15e1 100644 --- a/ZoFo/GameCore/GameManagers/MapManager/MapElements/Object.cs +++ b/ZoFo/GameCore/GameManagers/MapManager/MapElements/Object.cs @@ -4,13 +4,16 @@ using System.Linq; using System.Text; using System.Threading.Tasks; + namespace ZoFo.GameCore.GameManagers.MapManager.MapElements { public class Object { public double Height { get; set; } public double Width { get; set; } - public double X { get; set; } - public double Y { get; set; } + public float X { get; set; } + public float Y { get; set; } + public string Template { get; set; } + public string Type { get; set; } } } diff --git a/ZoFo/GameCore/GameManagers/MapManager/MapElements/Template.cs b/ZoFo/GameCore/GameManagers/MapManager/MapElements/Template.cs new file mode 100644 index 0000000..f954c37 --- /dev/null +++ b/ZoFo/GameCore/GameManagers/MapManager/MapElements/Template.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using ZoFo.GameCore.GameManagers.MapManager.MapElements; + +namespace ZoFo.GameCore.GameManagers.MapManager.MapElements +{ + public class Template + { + public Object Object { get; set; } + public string Type { get; set; } + } +} diff --git a/ZoFo/GameCore/GameManagers/MapManager/MapManager.cs b/ZoFo/GameCore/GameManagers/MapManager/MapManager.cs index 72dcdea..1aba430 100644 --- a/ZoFo/GameCore/GameManagers/MapManager/MapManager.cs +++ b/ZoFo/GameCore/GameManagers/MapManager/MapManager.cs @@ -9,6 +9,7 @@ using System.Text; using System.Text.Json; using System.Threading.Tasks; using ZoFo.GameCore.GameManagers.MapManager.MapElements; +using ZoFo.GameCore.GameObjects; using ZoFo.GameCore.GameObjects.MapObjects; using ZoFo.GameCore.GameObjects.MapObjects.StopObjects; @@ -17,9 +18,16 @@ namespace ZoFo.GameCore.GameManagers.MapManager public class MapManager { private static readonly string _templatePath = "Content/MapData/TileMaps/{0}.tmj"; + private static readonly JsonSerializerOptions _options = new JsonSerializerOptions { PropertyNameCaseInsensitive = true }; // Задача настроек для JsonSerialize + private static readonly Dictionary _classPath = new Dictionary() { + { "Collectables", "ZoFo.GameCore.GameObjects.Entities.Interactables.Collectables." }, + { "Enemies", "ZoFo.GameCore.GameObjects.Entities.LivingEntities.Enemies." } + }; //private static readonly float _scale = 1.0f; private List _tileSets = new List(); + private TileMap _tileMap = new TileMap(); + /// /// Загрузка карты. Передаётся название файла карты. По умолчанию main. @@ -28,86 +36,95 @@ namespace ZoFo.GameCore.GameManagers.MapManager public void LoadMap(string mapName = "main") { // Загрузка TileMap - var options = new JsonSerializerOptions - { - PropertyNameCaseInsensitive = true - }; - TileMap tileMap = - JsonSerializer.Deserialize(File.ReadAllText(Path.Combine(AppContext.BaseDirectory, string.Format(_templatePath, mapName))), options); + _tileMap = JsonSerializer.Deserialize(File.ReadAllText(string.Format(_templatePath, mapName)), _options); // Загрузка TileSet-ов по TileSetInfo - List tileSets = new List(); - foreach (TileSetInfo tileSetInfo in tileMap.TileSets) + foreach (TileSetInfo tileSetInfo in _tileMap.TileSets) { TileSet tileSet = LoadTileSet(Path.Combine(AppContext.BaseDirectory, "Content", "MapData", "TileMaps", tileSetInfo.Source)); tileSet.FirstGid = tileSetInfo.FirstGid; - tileSets.Add(tileSet); + _tileSets.Add(tileSet); } - tileSets.Reverse(); + _tileSets.Reverse(); - foreach (var layer in tileMap.Layers) + + foreach (var layer in _tileMap.Layers) { if (layer.Type == "objectgroup") { - + ProcessObjectLayers(layer); } else { - foreach (var chunk in layer.Chunks) + ProcessTileLayers(layer); + } + } + } + + private void ProcessTileLayers(Layer layer) + { + foreach (var chunk in layer.Chunks) + { + for (int i = 0; i < chunk.Data.Length; i++) + { + 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; + + int relativeColumn = number % tileSet.Columns; + int relativeRow = number / tileSet.Columns; // относительно левого угла чанка + + Rectangle sourceRectangle = new Rectangle(relativeColumn * (tileSet.TileWidth + tileSet.Spacing) + tileSet.Margin, + relativeRow * (tileSet.TileHeight + tileSet.Spacing) + tileSet.Margin, + tileSet.TileWidth, tileSet.TileHeight); + + Vector2 position = new Vector2( + (i % chunk.Width) * _tileMap.TileWidth + chunk.X * _tileMap.TileWidth, + (i / chunk.Height) * _tileMap.TileHeight + chunk.Y * _tileMap.TileHeight); + + Tile tile = tileSet.Tiles[number]; // По факту может быть StopObjectom, но на уровне Tiled это все в первую очередь Tile + + switch (tile.Type) { - if (tileSet.FirstGid <= chunk.Data[i]) - { - int number = chunk.Data[i] - tileSet.FirstGid; - - int relativeColumn = number % tileSet.Columns; - int relativeRow = number / tileSet.Columns; // относительно левого угла чанка - - Rectangle sourceRectangle = new Rectangle(relativeColumn * (tileSet.TileWidth + tileSet.Spacing) + tileSet.Margin, - relativeRow * (tileSet.TileHeight + tileSet.Spacing) + tileSet.Margin, - tileSet.TileWidth, tileSet.TileHeight); - - Vector2 position = new Vector2( - (i % chunk.Width) * tileMap.TileWidth + chunk.X * tileMap.TileWidth, - (i / chunk.Height) * tileMap.TileHeight + chunk.Y * tileMap.TileHeight); - - Tile tile = tileSet.Tiles[number]; // По факту может быть StopObjectom, но на уровне Tiled это все в первую очередь Tile - string textureName = Path.Combine(AppContext.BaseDirectory, "Content", "Textures", "TileSetImages", - Path.GetFileName(tileSet.Image).Replace(".png", "")); - switch (tile.Type) - { - 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; - } + case "Tile": + AppManager.Instance.server.RegisterGameObject(new MapObject(position, + new Vector2(tileSet.TileWidth, tileSet.TileHeight), + sourceRectangle, + "Textures/TileSetImages/" + Path.GetFileName(tileSet.Image).Replace(".png", ""))); + break; + + case "StopObject": + var collisionRectangles = LoadRectangles(tile); // Грузит коллизии обьектов + + AppManager.Instance.server.RegisterGameObject(new StopObject(position, + new Vector2(tileSet.TileWidth, tileSet.TileHeight), + sourceRectangle, + "Textures/TileSetImages/" + Path.GetFileName(tileSet.Image).Replace(".png", ""), + collisionRectangles.ToArray())); + break; + + default: break; - } } + break; } } } } } + private void ProcessObjectLayers(Layer layer) + { + foreach (var item in layer.Objects) + { + string type = Path.GetFileName(item.Template).Replace(".tj", ""); + var collectable = Activator.CreateInstance(Type.GetType(_classPath[layer.Name] + type), new Vector2(item.X, item.Y)); + AppManager.Instance.server.RegisterGameObject(collectable as GameObject); + } + } + /// /// Загружает и парсит TileSet по его пути. /// @@ -115,15 +132,8 @@ namespace ZoFo.GameCore.GameManagers.MapManager /// private TileSet LoadTileSet(string path) { - using (StreamReader reader = new StreamReader(path)) - { - var options = new JsonSerializerOptions //TODO Remove - { - PropertyNameCaseInsensitive = true - }; - string data = reader.ReadToEnd(); - return JsonSerializer.Deserialize(data, options); - } + return JsonSerializer.Deserialize(File.ReadAllText(path), _options); + } /// @@ -146,5 +156,10 @@ namespace ZoFo.GameCore.GameManagers.MapManager return collisionRectangles; } + + private MapElements.Object LoadObject(string path) + { + return JsonSerializer.Deserialize(File.ReadAllText(path), _options); + } } } \ No newline at end of file diff --git a/ZoFo/GameCore/GameManagers/NetworkManager/ClientNetworkManager.cs b/ZoFo/GameCore/GameManagers/NetworkManager/ClientNetworkManager.cs index 6e1e6b4..85d8a19 100644 --- a/ZoFo/GameCore/GameManagers/NetworkManager/ClientNetworkManager.cs +++ b/ZoFo/GameCore/GameManagers/NetworkManager/ClientNetworkManager.cs @@ -42,6 +42,13 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager public void SendData() { + for (int i = 0; i < updates.Count; i++) + { + + AppManager.Instance.server.ProcessIUpdateData(updates[i]); + } + updates.Clear(); + return;// TODO remove byte[] bytes = Encoding.UTF8.GetBytes(JsonSerializer.Serialize(updates)); //нужно сериализовать socket.Send(bytes); } @@ -98,7 +105,7 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager 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; foreach (var ip in ipList) @@ -107,8 +114,8 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager { return ip; } - } - return IPAddress.Loopback; + }*/ + return IPAddress.Parse("127.0.0.1"); } //поток 2 @@ -117,7 +124,7 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager while(socket.Connected) { byte[] bytes = new byte[65535]; - var countAnsw = socket.Receive(bytes, SocketFlags.Partial); //Вылетает если кто то закрыл + var countAnsw = socket.Receive(bytes); //Вылетает если кто то закрыл string update = Encoding.UTF8.GetString(bytes, 0, countAnsw); // обновление отосланные сервером GetDataSent(update); } diff --git a/ZoFo/GameCore/GameManagers/NetworkManager/ServerNetworkManager.cs b/ZoFo/GameCore/GameManagers/NetworkManager/ServerNetworkManager.cs index 697c61d..366bafc 100644 --- a/ZoFo/GameCore/GameManagers/NetworkManager/ServerNetworkManager.cs +++ b/ZoFo/GameCore/GameManagers/NetworkManager/ServerNetworkManager.cs @@ -51,18 +51,17 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager /// /// public static IPAddress GetIp() - { - string hostName = Dns.GetHostName(); // Retrive the Name of HOST - var ipList = Dns.GetHostEntry(hostName).AddressList; - + { + /*string hostName = Dns.GetHostName(); // Retrive the Name of HOST + var ipList = Dns.GetHostByName(hostName).AddressList; foreach (var ip in ipList) { if (ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) { return ip; - } - } - return IPAddress.Loopback; + } + }*/ + return IPAddress.Parse("127.0.0.1"); } /// @@ -172,7 +171,7 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager while (client.Connected) { var buff = new byte[65535]; - var answ = client.Receive(buff, SocketFlags.Partial); + var answ = client.Receive(buff); string response = Encoding.UTF8.GetString(buff, 0, answ); GetDataSend(response); } diff --git a/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ClientToServer/UpdateInputInteraction.cs b/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ClientToServer/UpdateInputInteraction.cs new file mode 100644 index 0000000..243fce0 --- /dev/null +++ b/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ClientToServer/UpdateInputInteraction.cs @@ -0,0 +1,12 @@ +using System; +using ZoFo.GameCore.GameManagers.NetworkManager; + +namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ClientToServer; + +/// +/// уведомляет сервер о том, что игрок взаимодействует +/// +public class UpdateInputInteraction : UpdateData +{ + public UpdateInputInteraction() { UpdateType = "UpdateInputInteraction"; } +} diff --git a/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ClientToServer/UpdateShootInteraction.cs b/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ClientToServer/UpdateShootInteraction.cs new file mode 100644 index 0000000..d5ef20c --- /dev/null +++ b/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ClientToServer/UpdateShootInteraction.cs @@ -0,0 +1,9 @@ +using System; +using ZoFo.GameCore.GameManagers.NetworkManager.Updates; + +namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ClientToServer; + +public class UpdateInputShoot : UpdateData +{ + public UpdateInputShoot() { UpdateType = "UpdateInputShoot"; } +} diff --git a/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ServerToClient/UpdateAnimation.cs b/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ServerToClient/UpdateAnimation.cs index 4e9b972..108e4ba 100644 --- a/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ServerToClient/UpdateAnimation.cs +++ b/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ServerToClient/UpdateAnimation.cs @@ -12,5 +12,6 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient public class UpdateAnimation : UpdateData { public UpdateAnimation() { UpdateType = "UpdateAnimation"; } + public string animationId { get; set; } } } diff --git a/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ServerToClient/UpdateInteraction.cs b/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ServerToClient/UpdateInteraction.cs index 6f4711d..25848ca 100644 --- a/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ServerToClient/UpdateInteraction.cs +++ b/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ServerToClient/UpdateInteraction.cs @@ -2,6 +2,8 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient; /// /// При попытке взаимодействия с объектом +/// отправляет пользователю разрешение на взаимодействие +/// TODO: Вероятно убрать(обсудить) /// public class UpdateInteraction : UpdateData { diff --git a/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ServerToClient/UpdateStopObjectCreated.cs b/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ServerToClient/UpdateStopObjectCreated.cs new file mode 100644 index 0000000..a8389e3 --- /dev/null +++ b/ZoFo/GameCore/GameManagers/NetworkManager/Updates/ServerToClient/UpdateStopObjectCreated.cs @@ -0,0 +1,22 @@ +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Graphics; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using ZoFo.GameCore.GameManagers.NetworkManager.SerializableDTO; + +namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient +{ + internal class UpdateStopObjectCreated : UpdateData + { + public UpdateStopObjectCreated() { UpdateType = "UpdateStopObjectCreated"; } + public Texture2D TextureTile { get; set; } + public Vector2 Position { get; set; } + public SerializablePoint Size { get; set; } + public SerializableRectangle sourceRectangle { get; set; } + public string tileSetName { get; set; } + public SerializableRectangle[] collisions { get; set; } + } +} diff --git a/ZoFo/GameCore/GameObjects/Entities/EntittyForAnimationTests.cs b/ZoFo/GameCore/GameObjects/Entities/EntittyForAnimationTests.cs index 2bad778..20e779e 100644 --- a/ZoFo/GameCore/GameObjects/Entities/EntittyForAnimationTests.cs +++ b/ZoFo/GameCore/GameObjects/Entities/EntittyForAnimationTests.cs @@ -14,11 +14,11 @@ namespace ZoFo.GameCore.GameObjects.Entities //public override GraphicsComponent graphicsComponent { get; } = new GraphicsComponent(new List { "тут пишите название анимации" }, "сдублируйте " + - public override GraphicsComponent graphicsComponent { get; } = new AnimatedGraphicsComponent(new List { "player_idle_rotate_weapon" }, "player_idle_rotate_weapon"); + public override GraphicsComponent graphicsComponent { get; } = new AnimatedGraphicsComponent(new List { "zombie_idle" }, "zombie_idle"); public EntittyForAnimationTests(Vector2 position) : base(position) { - graphicsComponent.ObjectDrawRectangle = new Rectangle(0,0,16*12, 16 * 16); + graphicsComponent.ObjectDrawRectangle = new Rectangle(0,0,16*20, 16 * 20); position = new Vector2(10, 10); } diff --git a/ZoFo/GameCore/GameObjects/Entities/Entity.cs b/ZoFo/GameCore/GameObjects/Entities/Entity.cs index 456d8da..f0e4ebf 100644 --- a/ZoFo/GameCore/GameObjects/Entities/Entity.cs +++ b/ZoFo/GameCore/GameObjects/Entities/Entity.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Text; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; +using ZoFo.GameCore.GameManagers; using ZoFo.GameCore.GameManagers.CollisionManager; namespace ZoFo.GameCore.GameObjects.Entities @@ -36,6 +37,23 @@ namespace ZoFo.GameCore.GameObjects.Entities Update(); base.UpdateLogic(); } + + public void StartAnimation(string animationId) + { + (graphicsComponent as Graphics.AnimatedGraphicsComponent).StartAnimation(animationId); + AppManager.Instance.server.AddData(new GameManagers.NetworkManager.Updates.ServerToClient.UpdateAnimation() + { + animationId = animationId, + IdEntity = Id + }); + + } + public override void Draw(SpriteBatch spriteBatch) + { + DrawDebugRectangle(spriteBatch, collisionComponent.stopRectangle.SetOrigin(position), Color.Orange); + + base.Draw(spriteBatch); + } } } diff --git a/ZoFo/GameCore/GameObjects/Entities/Interactables/Collectables/Ammo.cs b/ZoFo/GameCore/GameObjects/Entities/Interactables/Collectables/Ammo.cs index ba4f1bc..8ae256f 100644 --- a/ZoFo/GameCore/GameObjects/Entities/Interactables/Collectables/Ammo.cs +++ b/ZoFo/GameCore/GameObjects/Entities/Interactables/Collectables/Ammo.cs @@ -8,21 +8,31 @@ using ZoFo.GameCore.GameManagers.CollisionManager; using ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient; using ZoFo.GameCore.GameManagers; using ZoFo.GameCore.Graphics; +using Microsoft.Xna.Framework.Graphics; +using ZoFo.GameCore.GUI; namespace ZoFo.GameCore.GameObjects.Entities.Interactables.Collectables { class Ammo:Collectable { - public override StaticGraphicsComponent graphicsComponent { get; } = new("Textures/icons/8"); + public override StaticGraphicsComponent graphicsComponent { get; } = new(_path + "Ammo"); public Ammo(Vector2 position) : base(position) { graphicsComponent.ObjectDrawRectangle.Width = 20; graphicsComponent.ObjectDrawRectangle.Height = 20; + + collisionComponent.triggerRectangle = new Rectangle(0, 0, 20, 20); } - public override void OnInteraction(object sender, CollisionComponent e) + public override void OnInteraction(GameObject sender) { + DebugHUD.DebugLog("collected"); AppManager.Instance.server.AddData(new UpdateLoot("Ammo")); AppManager.Instance.server.DeleteObject(this); } + public override void Draw(SpriteBatch spriteBatch) + { + DrawDebugRectangle(spriteBatch, collisionComponent.triggerRectangle.SetOrigin(position), Color.Blue); + base.Draw(spriteBatch); + } } } diff --git a/ZoFo/GameCore/GameObjects/Entities/Interactables/Collectables/Antiradine.cs b/ZoFo/GameCore/GameObjects/Entities/Interactables/Collectables/Antiradine.cs index 01f36a9..b8f2bcb 100644 --- a/ZoFo/GameCore/GameObjects/Entities/Interactables/Collectables/Antiradine.cs +++ b/ZoFo/GameCore/GameObjects/Entities/Interactables/Collectables/Antiradine.cs @@ -18,7 +18,7 @@ namespace ZoFo.GameCore.GameObjects.Entities.Interactables.Collectables { } - public override void OnInteraction(object sender, CollisionComponent e) + public override void OnInteraction(GameObject sender) { AppManager.Instance.server.AddData(new UpdateLoot("Antiradine")); AppManager.Instance.server.DeleteObject(this); diff --git a/ZoFo/GameCore/GameObjects/Entities/Interactables/Collectables/BottleOfWater.cs b/ZoFo/GameCore/GameObjects/Entities/Interactables/Collectables/BottleOfWater.cs index 528f614..2a4e542 100644 --- a/ZoFo/GameCore/GameObjects/Entities/Interactables/Collectables/BottleOfWater.cs +++ b/ZoFo/GameCore/GameObjects/Entities/Interactables/Collectables/BottleOfWater.cs @@ -14,12 +14,12 @@ namespace ZoFo.GameCore.GameObjects.Entities.Interactables.Collectables { public class BottleOfWater : Collectable { - public override StaticGraphicsComponent graphicsComponent { get; } = new("BottleOfWater"); + public override StaticGraphicsComponent graphicsComponent { get; } = new(_path + "BottleOfWater"); public BottleOfWater(Vector2 position) : base(position) { } - public override void OnInteraction(object sender, CollisionComponent e) + public override void OnInteraction(GameObject sender) { AppManager.Instance.server.AddData(new UpdateLoot("BottleOfWater")); AppManager.Instance.server.DeleteObject(this); diff --git a/ZoFo/GameCore/GameObjects/Entities/Interactables/Collectables/Collectable.cs b/ZoFo/GameCore/GameObjects/Entities/Interactables/Collectables/Collectable.cs index 9bb5227..840a5f4 100644 --- a/ZoFo/GameCore/GameObjects/Entities/Interactables/Collectables/Collectable.cs +++ b/ZoFo/GameCore/GameObjects/Entities/Interactables/Collectables/Collectable.cs @@ -7,11 +7,12 @@ using ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient; namespace ZoFo.GameCore.GameObjects.Entities.Interactables.Collectables; public class Collectable : Interactable { + protected static readonly string _path = "Textures/icons/Collectables/"; public Collectable(Vector2 position) : base(position) { } - public override void OnInteraction(object sender, CollisionComponent e) + public override void OnInteraction(GameObject sender) { // AppManager.Instance.server.AddData(new UpdateLoot()); diff --git a/ZoFo/GameCore/GameObjects/Entities/Interactables/Collectables/Peeble.cs b/ZoFo/GameCore/GameObjects/Entities/Interactables/Collectables/Peeble.cs index 5525cfd..9b6ad47 100644 --- a/ZoFo/GameCore/GameObjects/Entities/Interactables/Collectables/Peeble.cs +++ b/ZoFo/GameCore/GameObjects/Entities/Interactables/Collectables/Peeble.cs @@ -14,13 +14,13 @@ namespace ZoFo.GameCore.GameObjects.Entities.Interactables.Collectables { public class Peeble:Collectable { - public override StaticGraphicsComponent graphicsComponent { get; } = new("Peeble"); + public override StaticGraphicsComponent graphicsComponent { get; } = new(_path + "Peeble"); public Peeble(Vector2 position) : base(position) { } - public override void OnInteraction(object sender, CollisionComponent e) + public override void OnInteraction(GameObject sender) { AppManager.Instance.server.AddData(new UpdateLoot("Peeble")); AppManager.Instance.server.DeleteObject(this); diff --git a/ZoFo/GameCore/GameObjects/Entities/Interactables/Collectables/PureBottleOfWater.cs b/ZoFo/GameCore/GameObjects/Entities/Interactables/Collectables/PureBottleOfWater.cs index 1523f6e..d318bf6 100644 --- a/ZoFo/GameCore/GameObjects/Entities/Interactables/Collectables/PureBottleOfWater.cs +++ b/ZoFo/GameCore/GameObjects/Entities/Interactables/Collectables/PureBottleOfWater.cs @@ -13,12 +13,12 @@ namespace ZoFo.GameCore.GameObjects.Entities.Interactables.Collectables { class PureBottleOfWater:Collectable { - public override StaticGraphicsComponent graphicsComponent { get; } = new("PureBottleOfWater"); + public override StaticGraphicsComponent graphicsComponent { get; } = new(_path + "PureBottleOfWater"); public PureBottleOfWater(Vector2 position) : base(position) { } - public override void OnInteraction(object sender, CollisionComponent e) + public override void OnInteraction(GameObject sender) { AppManager.Instance.server.AddData(new UpdateLoot("PureBottleOfWater")); AppManager.Instance.server.DeleteObject(this); diff --git a/ZoFo/GameCore/GameObjects/Entities/Interactables/Collectables/RottenFlesh.cs b/ZoFo/GameCore/GameObjects/Entities/Interactables/Collectables/RottenFlesh.cs index 147f30d..a1ce270 100644 --- a/ZoFo/GameCore/GameObjects/Entities/Interactables/Collectables/RottenFlesh.cs +++ b/ZoFo/GameCore/GameObjects/Entities/Interactables/Collectables/RottenFlesh.cs @@ -13,12 +13,12 @@ namespace ZoFo.GameCore.GameObjects.Entities.Interactables.Collectables { class RottenFlesh:Collectable { - public override StaticGraphicsComponent graphicsComponent { get; } = new("RottenFlesh"); + public override StaticGraphicsComponent graphicsComponent { get; } = new(_path + "RottenFlesh"); public RottenFlesh(Vector2 position) : base(position) { } - public override void OnInteraction(object sender, CollisionComponent e) + public override void OnInteraction(GameObject sender) { AppManager.Instance.server.AddData(new UpdateLoot("RottenFlesh")); AppManager.Instance.server.DeleteObject(this); diff --git a/ZoFo/GameCore/GameObjects/Entities/Interactables/Collectables/Steel.cs b/ZoFo/GameCore/GameObjects/Entities/Interactables/Collectables/Steel.cs index 5618236..a8bbe9d 100644 --- a/ZoFo/GameCore/GameObjects/Entities/Interactables/Collectables/Steel.cs +++ b/ZoFo/GameCore/GameObjects/Entities/Interactables/Collectables/Steel.cs @@ -13,12 +13,12 @@ namespace ZoFo.GameCore.GameObjects.Entities.Interactables.Collectables { class Steel:Collectable { - public override StaticGraphicsComponent graphicsComponent { get; } = new("Steel"); + public override StaticGraphicsComponent graphicsComponent { get; } = new(_path + "Steel"); public Steel(Vector2 position) : base(position) { } - public override void OnInteraction(object sender, CollisionComponent e) + public override void OnInteraction(GameObject sender) { AppManager.Instance.server.AddData(new UpdateLoot("Steel")); AppManager.Instance.server.DeleteObject(this); diff --git a/ZoFo/GameCore/GameObjects/Entities/Interactables/Collectables/Wood.cs b/ZoFo/GameCore/GameObjects/Entities/Interactables/Collectables/Wood.cs index 85af71b..15d6ee6 100644 --- a/ZoFo/GameCore/GameObjects/Entities/Interactables/Collectables/Wood.cs +++ b/ZoFo/GameCore/GameObjects/Entities/Interactables/Collectables/Wood.cs @@ -9,13 +9,13 @@ namespace ZoFo.GameCore.GameObjects.Entities.Interactables.Collectables; public class Wood : Collectable { - public override StaticGraphicsComponent graphicsComponent { get; } = new("Wood"); + public override StaticGraphicsComponent graphicsComponent { get; } = new(_path + "Wood"); public Wood(Vector2 position) : base(position) { } - public override void OnInteraction(object sender, CollisionComponent e) + public override void OnInteraction(GameObject sender) { AppManager.Instance.server.AddData(new UpdateLoot("Wood")); AppManager.Instance.server.DeleteObject(this); diff --git a/ZoFo/GameCore/GameObjects/Entities/Interactables/Door.cs b/ZoFo/GameCore/GameObjects/Entities/Interactables/Door.cs index 23ce44f..06c0898 100644 --- a/ZoFo/GameCore/GameObjects/Entities/Interactables/Door.cs +++ b/ZoFo/GameCore/GameObjects/Entities/Interactables/Door.cs @@ -16,7 +16,7 @@ public class Door : Interactable //graphicsComponent.OnAnimationEnd += _ => { isOpened = !isOpened; };//���������, ��� ����� ������ ������������� - SD } - public override void OnInteraction(object sender, CollisionComponent e) + public override void OnInteraction(GameObject sender) { //graphicsComponent.AnimationSelect("DoorInteraction", isOpened); //graphicsComponent.AnimationStep(); diff --git a/ZoFo/GameCore/GameObjects/Entities/Interactables/Interactable.cs b/ZoFo/GameCore/GameObjects/Entities/Interactables/Interactable.cs index 270b986..bc61ff9 100644 --- a/ZoFo/GameCore/GameObjects/Entities/Interactables/Interactable.cs +++ b/ZoFo/GameCore/GameObjects/Entities/Interactables/Interactable.cs @@ -13,17 +13,19 @@ public class Interactable : Entity public Interactable(Vector2 position) : base(position) { - collisionComponent.OnTriggerEnter += (sender, e) => ChangeInteraction(sender, e, true); - collisionComponent.OnTriggerExit += (sender, e) => ChangeInteraction(sender, e, false); + collisionComponent.isTrigger = true; + collisionComponent.hasCollision = false; + collisionComponent.OnTriggerEnter += (sender) => ChangeInteraction(sender, true); + collisionComponent.OnTriggerExit += (sender) => ChangeInteraction(sender, false); collisionComponent.OnTriggerZone += OnInteraction; } - private void ChangeInteraction(object sender, CollisionComponent e, bool isReady) + private void ChangeInteraction(GameObject sender, bool isReady) { AppManager.Instance.server.AddData(new UpdateInteractionReady((sender as Player).Id, isReady)); } - public virtual void OnInteraction(object sender, CollisionComponent e) + public virtual void OnInteraction(GameObject sender) { } diff --git a/ZoFo/GameCore/GameObjects/Entities/LivingEntities/Enemies/Zombie.cs b/ZoFo/GameCore/GameObjects/Entities/LivingEntities/Enemies/Zombie.cs index bc504f9..496382f 100644 --- a/ZoFo/GameCore/GameObjects/Entities/LivingEntities/Enemies/Zombie.cs +++ b/ZoFo/GameCore/GameObjects/Entities/LivingEntities/Enemies/Zombie.cs @@ -11,27 +11,33 @@ namespace ZoFo.GameCore.GameObjects.Entities.LivingEntities.Enemies { class Zombie : Enemy { - public override GraphicsComponent graphicsComponent { get; } = new AnimatedGraphicsComponent("Textures/icons/8"); + public override GraphicsComponent graphicsComponent { get; } = new AnimatedGraphicsComponent(new List { "zombie_damaged", "zombie_walk", "zombie_idle", "zombie_attack", "zombie_death" }, "zombie_walk"); public Zombie(Vector2 position) : base(position) { health = 5; - speed =2; - collisionComponent.stopRectangle = new Rectangle(0, 0, 100, 100); - graphicsComponent.ObjectDrawRectangle = new Rectangle(0, 0, 100, 100); + speed = 2; + graphicsComponent.ObjectDrawRectangle = new Rectangle(0, 0, 30, 30); + collisionComponent.stopRectangle = new Rectangle(10, 20, 10, 10); + StartAnimation("zombie_walk"); } - + public override void Update() { Vector2 duration = Vector2.Normalize( AppManager.Instance.server.players[0].position - position ); - velocity=new Vector2(duration.X * speed, duration.Y*speed); - if(position.X>595 && 605>position.X && position.Y>495 && 505>position.Y) + velocity += new Vector2(duration.X * speed, duration.Y * speed); + if (Random.Shared.NextDouble() > 0.9) { - velocity = Vector2.Zero; + + StartAnimation("zombie_walk"); } - //position.X += velocity.X*t; - //position.Y += velocity.Y * t; + if (Random.Shared.NextDouble() > 0.9) + { + + //StartAnimation("zombie_idle"); + } + } } } diff --git a/ZoFo/GameCore/GameObjects/Entities/LivingEntities/LivingEntity.cs b/ZoFo/GameCore/GameObjects/Entities/LivingEntities/LivingEntity.cs index cc6cb9c..36523a8 100644 --- a/ZoFo/GameCore/GameObjects/Entities/LivingEntities/LivingEntity.cs +++ b/ZoFo/GameCore/GameObjects/Entities/LivingEntities/LivingEntity.cs @@ -19,6 +19,7 @@ public class LivingEntity : Entity public LivingEntity(Vector2 position) : base(position) { inputManager = new InputManager(); + collisionComponent.hasCollision = true; } public override GraphicsComponent graphicsComponent { get; } = null; @@ -32,9 +33,23 @@ public class LivingEntity : Entity public void OnCollision(CollisionComponent component) { - + + } + + public override void UpdateAnimations() + { + base.UpdateAnimations(); + } + Vector2 prevPosition_forClient; + public override void Draw(SpriteBatch spriteBatch) + { + if ((position - prevPosition_forClient).X < 0) + graphicsComponent.Flip = SpriteEffects.FlipHorizontally; + else if ((position - prevPosition_forClient).X > 0) + graphicsComponent.Flip = SpriteEffects.None; + base.Draw(spriteBatch); + prevPosition_forClient = position; } - } diff --git a/ZoFo/GameCore/GameObjects/Entities/LivingEntities/Player/Player.cs b/ZoFo/GameCore/GameObjects/Entities/LivingEntities/Player/Player.cs index 42d89c2..04143f1 100644 --- a/ZoFo/GameCore/GameObjects/Entities/LivingEntities/Player/Player.cs +++ b/ZoFo/GameCore/GameObjects/Entities/LivingEntities/Player/Player.cs @@ -18,17 +18,21 @@ public class Player : LivingEntity /// /// Факт того, что плеер в этом апдейте пытается стрелять /// - public bool IsTryingToShoot { get; set; } + //public bool IsTryingToShoot { get; set; } private float speed; private int health; public override GraphicsComponent graphicsComponent { get; } = new AnimatedGraphicsComponent(new List { "player_look_down" }, "player_look_down"); private LootData lootData; + //public bool isTryingToInteract { get; set; } public Player(Vector2 position) : base(position) { - //InputWeaponRotation = new Vector2(0, 0); - //InputPlayerRotation = new Vector2(0, 0); - graphicsComponent.ObjectDrawRectangle = new Rectangle(0, 0, 100, 100); - collisionComponent.stopRectangle = new Rectangle(0, 0, 100, 100); + graphicsComponent.ObjectDrawRectangle = new Rectangle(0, 0, 30, 30); + collisionComponent.stopRectangle = new Rectangle(0, 20, 30, 10); + speed = 10; + //isTryingToInteract = false; + //IsTryingToShoot = false; + + StartAnimation("player_look_down"); } @@ -37,20 +41,21 @@ public class Player : LivingEntity MovementLogic(); } - float t; - public void MovementLogic() + public void MovementLogic() { - //velocity.X = 3+(float)Math.Sin(t); - t++; - if (InputPlayerRotation.X > 0.9) - { - } - if (Keyboard.GetState().IsKeyDown(Keys.D)) velocity.X = 5; - if (Keyboard.GetState().IsKeyDown(Keys.A)) velocity.X = -5; - if (Keyboard.GetState().IsKeyDown(Keys.S)) velocity.Y = 5; - if (Keyboard.GetState().IsKeyDown(Keys.W)) velocity.Y = -5; + velocity = InputPlayerRotation * speed; } public void HandleNewInput(UpdateInput updateInput) + { + InputPlayerRotation = updateInput.InputMovementDirection; + InputWeaponRotation = updateInput.InputAttackDirection; + + } + public void HandleInteract(UpdateInputInteraction updateInputInteraction) + { + //isTryingToInteract = true; + } + public void HandleShoot(UpdateInputShoot updateInputShoot) { } diff --git a/ZoFo/GameCore/GameObjects/GameObject.cs b/ZoFo/GameCore/GameObjects/GameObject.cs index 85189ea..5e40de1 100644 --- a/ZoFo/GameCore/GameObjects/GameObject.cs +++ b/ZoFo/GameCore/GameObjects/GameObject.cs @@ -83,8 +83,6 @@ public abstract class GameObject { graphicsComponent.Draw(graphicsComponent.ObjectDrawRectangle, spriteBatch); //debug - DrawDebugRectangle(spriteBatch, graphicsComponent.ObjectDrawRectangle); - if (AppManager.Instance.InputManager.CollisionsCheat) DrawDebugRectangle(spriteBatch, graphicsComponent.ObjectDrawRectangle); diff --git a/ZoFo/GameCore/Graphics/AnimatedGraphicsComponent.cs b/ZoFo/GameCore/Graphics/AnimatedGraphicsComponent.cs index bc2d8ff..b6b7d45 100644 --- a/ZoFo/GameCore/Graphics/AnimatedGraphicsComponent.cs +++ b/ZoFo/GameCore/Graphics/AnimatedGraphicsComponent.cs @@ -125,8 +125,9 @@ namespace ZoFo.GameCore.Graphics buildSourceRectangle(); SetInterval(); - } + } + public void StopAnimation() { currentFrame = 0; diff --git a/ZoFo/GameCore/Graphics/AnimationBuilder.cs b/ZoFo/GameCore/Graphics/AnimationBuilder.cs index 50f9162..6dd24de 100644 --- a/ZoFo/GameCore/Graphics/AnimationBuilder.cs +++ b/ZoFo/GameCore/Graphics/AnimationBuilder.cs @@ -12,7 +12,7 @@ namespace ZoFo.GameCore.Graphics public void LoadAnimations() { Animations = new List(); - string[] animationFilesNames = Directory.GetFiles(Path.Combine(AppContext.BaseDirectory, "Content", "Textures", "Animations")); + string[] animationFilesNames = Directory.GetFiles(Path.Combine(AppContext.BaseDirectory, "Content", "Textures", "Animations"), "*.animation", SearchOption.AllDirectories); StreamReader reader; foreach (var fileName in animationFilesNames) diff --git a/ZoFo/GameCore/Graphics/GraphicsComponent.cs b/ZoFo/GameCore/Graphics/GraphicsComponent.cs index 3fa8fa4..b4580ab 100644 --- a/ZoFo/GameCore/Graphics/GraphicsComponent.cs +++ b/ZoFo/GameCore/Graphics/GraphicsComponent.cs @@ -6,7 +6,7 @@ namespace ZoFo.GameCore.Graphics; public abstract class GraphicsComponent { public Rectangle ObjectDrawRectangle; - public static int scaling = 1; + public static int scaling = 3; public string mainTextureName;//TODO костыль - пофиксить public SpriteEffects Flip = SpriteEffects.None; diff --git a/ZoFo/GameCore/Graphics/StaticGraphicsComponent.cs b/ZoFo/GameCore/Graphics/StaticGraphicsComponent.cs index a631c5d..d7f1dca 100644 --- a/ZoFo/GameCore/Graphics/StaticGraphicsComponent.cs +++ b/ZoFo/GameCore/Graphics/StaticGraphicsComponent.cs @@ -47,7 +47,7 @@ namespace ZoFo.GameCore.Graphics public override void Draw(Rectangle destinationRectangle, SpriteBatch _spriteBatch) { - DebugHUD.Instance.Log("draw "); + //DebugHUD.Instance.Log("draw "); destinationRectangle.X -= CameraPosition.X; destinationRectangle.Y -= CameraPosition.Y; @@ -57,10 +57,10 @@ namespace ZoFo.GameCore.Graphics } public override void Draw(Rectangle destinationRectangle, SpriteBatch _spriteBatch, Rectangle sourceRectangle) - { + { + //DebugHUD.Instance.Log("draw "); // Uncomment to go brrrr - //Rotation = new Random().Next(1, 365); - DebugHUD.Instance.Log("draw "); + //Rotation = new Random().Next(1, 365); destinationRectangle.X -= CameraPosition.X; destinationRectangle.Y -= CameraPosition.Y; diff --git a/ZoFo/GameCore/Server.cs b/ZoFo/GameCore/Server.cs index 89b1bbb..baa753a 100644 --- a/ZoFo/GameCore/Server.cs +++ b/ZoFo/GameCore/Server.cs @@ -12,6 +12,7 @@ using ZoFo.GameCore.GameManagers.CollisionManager; using ZoFo.GameCore.GameManagers.MapManager; using ZoFo.GameCore.GameManagers.NetworkManager; using ZoFo.GameCore.GameManagers.NetworkManager.Updates; +using ZoFo.GameCore.GameManagers.NetworkManager.Updates.ClientToServer; using ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient; using ZoFo.GameCore.GameObjects; using ZoFo.GameCore.GameObjects.Entities; @@ -29,7 +30,7 @@ namespace ZoFo.GameCore { private ServerNetworkManager networkManager; private int ticks = 0; - public IPEndPoint MyIp { get { return networkManager.InfoConnect; } } + public IPEndPoint MyIp { get { return networkManager.InfoConnect; } } public Server() { networkManager = new ServerNetworkManager(); @@ -78,11 +79,17 @@ namespace ZoFo.GameCore break; case "UpdatePlayerParametrs": break; - case "UpdatePosition": + case "UpdateInput": + players[0].HandleNewInput(updateData as UpdateInput); break; case "UpdateTileCreated": break; - + case "UpdateInputInteraction": + players[0].HandleInteract(updateData as UpdateInputInteraction); + break; + case "UpdateInputShoot": + players[0].HandleShoot(updateData as UpdateInputShoot); + break; } } @@ -130,7 +137,10 @@ namespace ZoFo.GameCore //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 Zombie(new Vector2(1000, 1000))); + for (int i = 0; i < 20; i++) + for (int j = 0; j < 20; j++) + AppManager.Instance.server.RegisterGameObject(new Zombie(new Vector2(1300 + i*70, 1000+j*70))); + AppManager.Instance.server.RegisterGameObject(new Ammo(new Vector2(140, 440))); AppManager.Instance.server.RegisterGameObject(new Ammo(new Vector2(240, 440))); } @@ -147,7 +157,7 @@ namespace ZoFo.GameCore public List gameObjects; public List entities; //entity - public List players; + public List players; public void Update(GameTime gameTime) { if (ticks == 3) //ОБРАБАТЫВАЕТСЯ 20 РАЗ В СЕКУНДУ @@ -156,7 +166,7 @@ namespace ZoFo.GameCore { go.UpdateLogic(); } - collisionManager.UpdatePositions(); + collisionManager.ResolvePhysics(); ticks = 0; networkManager.SendData(); } @@ -173,6 +183,22 @@ namespace ZoFo.GameCore { gameObjects.Add(gameObject); + if (gameObject is StopObject) + { + AddData(new UpdateStopObjectCreated() + { + Position = (gameObject as StopObject).position, + sourceRectangle = new SerializableRectangle((gameObject as StopObject).sourceRectangle), + Size = new SerializablePoint((gameObject as StopObject).graphicsComponent.ObjectDrawRectangle.Size), + tileSetName = ((gameObject as StopObject).graphicsComponent as StaticGraphicsComponent)._textureName, + collisions = (gameObject as StopObject).collisionComponents.Select(x => new SerializableRectangle(x.stopRectangle)).ToArray() + });//TODO + foreach (var col in (gameObject as StopObject).collisionComponents) + { + collisionManager.Register(col); + } + return; + } if (gameObject is MapObject) { AddData(new UpdateTileCreated() @@ -181,25 +207,29 @@ namespace ZoFo.GameCore sourceRectangle = new SerializableRectangle((gameObject as MapObject).sourceRectangle), Size = new SerializablePoint((gameObject as MapObject).graphicsComponent.ObjectDrawRectangle.Size), tileSetName = ((gameObject as MapObject).graphicsComponent as StaticGraphicsComponent)._textureName - });//TODO + }); return; } if (gameObject is Entity entity) { - AddData(new UpdateGameObjectCreated() { GameObjectType = gameObject.GetType().Name, IdEntity = entity.Id, - position = gameObject.position}); + AddData(new UpdateGameObjectCreated() + { + GameObjectType = gameObject.GetType().Name, + IdEntity = entity.Id, + position = gameObject.position + }); collisionManager.Register(entity.collisionComponent); } else - AddData(new UpdateGameObjectCreated() { GameObjectType = gameObject.GetType().Name, + AddData(new UpdateGameObjectCreated() + { + GameObjectType = gameObject.GetType().Name, position = gameObject.position }); if (gameObject is Player) - { - players.Add(gameObject as Player); - } + players.Add(gameObject as Player); ////var elems = gameObject.GetType().GetProperties(System.Reflection.BindingFlags.Public); ////if (elems.Count()>0) TODO ////{ @@ -207,20 +237,26 @@ namespace ZoFo.GameCore ////} } - + /// /// Удаляет игровой объект /// /// - public void DeleteObject(GameObject gameObject) + public void DeleteObject(Entity entity) { - gameObjects.Remove(gameObject); + if (gameObjects.Contains(entity)) + gameObjects.Remove(entity); + if (entities.Contains(entity)) + entities.Remove(entity); + if (players.Contains(entity)) + players.Remove(entity as Player); AddData(new UpdateGameObjectDeleted() - { GameObjectType = gameObject.GetType().Name} + { GameObjectType = entity.GetType().Name, IdEntity = entity.Id } ); + collisionManager.Deregister(entity.collisionComponent); } } - + #endregion #endregion