From 9e6ef227cc4ef2991c3af9f935ae7b97ba0bb27e Mon Sep 17 00:00:00 2001 From: josua Date: Wed, 10 Jun 2020 11:18:43 +1000 Subject: [PATCH] Started changing the graphics from old opengl to opengl core profile --- .classpath | 44 +++- layer.bdf | Bin 348 -> 7194 bytes src/projectzombie/Main.java | 5 +- src/projectzombie/audio/AudioObject.java | 6 +- src/projectzombie/audio/AudioRandom.java | 2 +- src/projectzombie/display/Camera.java | 28 +-- src/projectzombie/display/DisplayRender.java | 73 +----- .../display/DisplayRenderUI.java | 18 +- src/projectzombie/display/DisplayWindow.java | 28 +-- .../display/bossbar/BossBars.java | 6 +- .../lighting/ChunkLightingCollection.java | 6 +- .../display/lighting/ChunkLightingTemp.java | 2 +- .../display/lighting/DynamicLighting.java | 4 +- .../display/lighting/TileLighting.java | 8 +- .../transparent/ITransparentObject.java | 12 - .../transparent/TransparentObject.java | 22 -- .../transparent/TransparentObjects.java | 56 ----- src/projectzombie/entity/Entity.java | 25 +- src/projectzombie/entity/EntityBoss.java | 18 +- src/projectzombie/entity/EntityBullet.java | 8 +- src/projectzombie/entity/EntityDummy.java | 8 +- src/projectzombie/entity/EntityExplosion.java | 8 +- src/projectzombie/entity/EntityFlare.java | 6 +- .../entity/EntityGrapplingHook.java | 8 +- src/projectzombie/entity/EntityItem.java | 4 +- src/projectzombie/entity/EntityParticle.java | 4 +- src/projectzombie/entity/EntityTnt.java | 12 +- src/projectzombie/entity/EntityVertical.java | 8 +- src/projectzombie/entity/EntityZombie.java | 12 +- .../entity/EntityZombieArmored.java | 6 +- .../entity/particle/ParticleBlood.java | 8 +- .../entity/particle/ParticleBreak.java | 8 +- .../entity/particle/ParticleLava.java | 6 +- .../entity/particle/ParticleSmoke.java | 6 +- .../entity/particle/ParticleSpark.java | 2 +- .../entity/particle/ParticleWater.java | 8 +- .../entity/player/EntityPlayer.java | 14 +- .../init/{Textures.java => Models.java} | 16 +- src/projectzombie/init/Resources.java | 6 +- .../input/CursorPosCallback.java | 2 +- src/projectzombie/input/KeyCallback.java | 2 +- src/projectzombie/input/types/Input.java | 2 +- src/projectzombie/input/types/InputGUI.java | 2 +- src/projectzombie/input/types/InputGame.java | 4 +- src/projectzombie/items/Item.java | 2 +- src/projectzombie/items/ItemAmmo.java | 4 +- .../items/ItemDefenceUpgrade.java | 4 +- src/projectzombie/items/ItemEmpty.java | 2 +- src/projectzombie/items/ItemFlare.java | 4 +- .../items/ItemGrapplingHook.java | 8 +- src/projectzombie/items/ItemGunUpgrade.java | 4 +- src/projectzombie/items/ItemHealthPotion.java | 4 +- src/projectzombie/items/ItemLantern.java | 8 +- src/projectzombie/items/ItemRock.java | 4 +- src/projectzombie/items/ItemSpawn.java | 2 +- src/projectzombie/items/ItemTnt.java | 4 +- .../items/spawner/ItemSpawnZombie.java | 6 +- src/projectzombie/menu/MenuSettings.java | 2 +- src/projectzombie/menu/gui/Button.java | 8 +- src/projectzombie/menu/gui/ButtonGroup.java | 2 +- src/projectzombie/menu/gui/GUI.java | 2 +- src/projectzombie/menu/gui/GUIComponent.java | 2 +- src/projectzombie/menu/gui/Label.java | 4 +- src/projectzombie/menu/gui/Overlay.java | 6 +- .../menu/gui/components/ButtonBasic.java | 2 +- .../menu/gui/components/ButtonGroupPause.java | 2 +- .../menu/gui/components/ButtonSetting.java | 2 +- .../menu/gui/components/LabelMain.java | 2 +- .../menu/gui/components/LabelPause.java | 2 +- .../gui/components/OverlayBackground.java | 2 +- src/projectzombie/model/Model.java | 65 ++++++ src/projectzombie/model/ModelChar.java | 30 +++ src/projectzombie/model/ModelTile.java | 34 +++ src/projectzombie/model/ModelVertical.java | 44 ++++ src/projectzombie/text/Text.java | 193 ++++++++------- src/projectzombie/tiles/Tile.java | 22 +- src/projectzombie/tiles/TileBossPortal.java | 10 +- src/projectzombie/tiles/TileChest.java | 8 +- src/projectzombie/tiles/TileDirt.java | 4 +- src/projectzombie/tiles/TileFlat.java | 4 +- src/projectzombie/tiles/TileFlatFaded.java | 4 +- src/projectzombie/tiles/TileGrass.java | 4 +- src/projectzombie/tiles/TileLadder.java | 8 +- src/projectzombie/tiles/TileLadderUp.java | 8 +- src/projectzombie/tiles/TileLantern.java | 8 +- src/projectzombie/tiles/TileLava.java | 8 +- src/projectzombie/tiles/TileLavaFlow.java | 8 +- src/projectzombie/tiles/TilePortalDown.java | 6 +- src/projectzombie/tiles/TileRock.java | 8 +- src/projectzombie/tiles/TileSand.java | 4 +- src/projectzombie/tiles/TileStone.java | 4 +- src/projectzombie/tiles/TileTree.java | 6 +- src/projectzombie/tiles/TileVertical.java | 2 +- src/projectzombie/tiles/TileWall.java | 4 +- src/projectzombie/tiles/TileWater.java | 8 +- src/projectzombie/tiles/TileWaterFlow.java | 6 +- src/projectzombie/util/gl/VerticalRender.java | 4 +- .../gl/texture/AnimationEventHandler.java | 29 --- .../util/gl/texture/AnimationReference.java | 52 ----- .../util/gl/texture/TextureReference.java | 2 +- src/projectzombie/util/math/ColorRange.java | 3 +- src/projectzombie/util/math/MathHelpers.java | 112 --------- src/projectzombie/util/math/TileState.java | 2 +- src/projectzombie/util/math/astar/AStar.java | 2 +- .../util/math/astar/AStarSearcher.java | 4 +- src/projectzombie/util/math/map/IMap2D.java | 2 +- src/projectzombie/util/math/map/Map2D.java | 2 +- .../util/math/map/Map2DElement.java | 2 +- .../util/math/range/Range2i.java | 17 -- .../util/math/range/Range3i.java | 19 -- .../util/math/range/Range4i.java | 21 -- src/projectzombie/util/math/vec/Vec2d.java | 94 -------- src/projectzombie/util/math/vec/Vec2i.java | 120 ---------- src/projectzombie/util/math/vec/Vec3d.java | 101 -------- src/projectzombie/util/math/vec/Vec3i.java | 133 ----------- src/projectzombie/util/math/vec/Vec4d.java | 110 --------- src/projectzombie/util/math/vec/Vec4i.java | 147 ------------ src/projectzombie/world/chunk/Chunk.java | 10 +- src/projectzombie/world/chunk/ChunkEmpty.java | 6 +- .../world/chunk/ChunkEventHandler.java | 4 +- src/projectzombie/world/layer/Layer.java | 6 +- .../world/layer/layergen/LayerGen.java | 2 +- .../layer/layergen/LayerGenBossArena.java | 8 +- .../world/layer/layergen/LayerGenCaves.java | 8 +- .../world/layer/layergen/LayerGenEarth.java | 6 +- .../layer/layergen/LayerGenLavaCaves.java | 6 +- .../layergen/LayerGenRememberPlayerPos.java | 2 +- src/resources/texture/char/char_0.png | Bin 0 -> 612 bytes src/resources/texture/char/char_1.png | Bin 0 -> 615 bytes src/resources/texture/char/char_2.png | Bin 0 -> 625 bytes src/resources/texture/char/char_3.png | Bin 0 -> 635 bytes src/resources/texture/char/char_4.png | Bin 0 -> 634 bytes src/resources/texture/char/char_5.png | Bin 0 -> 623 bytes src/resources/texture/char/char_6.png | Bin 0 -> 633 bytes src/resources/texture/char/char_7.png | Bin 0 -> 612 bytes src/resources/texture/char/char_8.png | Bin 0 -> 637 bytes src/resources/texture/char/char_9.png | Bin 0 -> 629 bytes src/resources/texture/char/char_bslash.png | Bin 0 -> 1101 bytes src/resources/texture/char/char_cbracket.png | Bin 0 -> 1100 bytes src/resources/texture/char/char_colon.png | Bin 0 -> 1104 bytes src/resources/texture/char/char_comma.png | Bin 0 -> 1103 bytes src/resources/texture/char/char_dollar.png | Bin 0 -> 1033 bytes src/resources/texture/char/char_equals.png | Bin 0 -> 1075 bytes .../texture/char/char_exclamation.png | Bin 0 -> 1091 bytes src/resources/texture/char/char_fslash.png | Bin 0 -> 1087 bytes src/resources/texture/char/char_fullstop.png | Bin 0 -> 1103 bytes src/resources/texture/char/char_gthan.png | Bin 0 -> 1082 bytes src/resources/texture/char/char_hashtag.png | Bin 0 -> 1038 bytes src/resources/texture/char/char_l_a.png | Bin 0 -> 1026 bytes src/resources/texture/char/char_l_b.png | Bin 0 -> 1044 bytes src/resources/texture/char/char_l_c.png | Bin 0 -> 1049 bytes src/resources/texture/char/char_l_d.png | Bin 0 -> 1001 bytes src/resources/texture/char/char_l_e.png | Bin 0 -> 1009 bytes src/resources/texture/char/char_l_f.png | Bin 0 -> 1075 bytes src/resources/texture/char/char_l_g.png | Bin 0 -> 1044 bytes src/resources/texture/char/char_l_h.png | Bin 0 -> 1053 bytes src/resources/texture/char/char_l_i.png | Bin 0 -> 1040 bytes src/resources/texture/char/char_l_j.png | Bin 0 -> 1092 bytes src/resources/texture/char/char_l_k.png | Bin 0 -> 1042 bytes src/resources/texture/char/char_l_l.png | Bin 0 -> 1066 bytes src/resources/texture/char/char_l_m.png | Bin 0 -> 1030 bytes src/resources/texture/char/char_l_n.png | Bin 0 -> 1059 bytes src/resources/texture/char/char_l_o.png | Bin 0 -> 1030 bytes src/resources/texture/char/char_l_p.png | Bin 0 -> 1043 bytes src/resources/texture/char/char_l_q.png | Bin 0 -> 1038 bytes src/resources/texture/char/char_l_r.png | Bin 0 -> 1085 bytes src/resources/texture/char/char_l_s.png | Bin 0 -> 1030 bytes src/resources/texture/char/char_l_t.png | Bin 0 -> 1034 bytes src/resources/texture/char/char_l_u.png | Bin 0 -> 1025 bytes src/resources/texture/char/char_l_v.png | Bin 0 -> 1072 bytes src/resources/texture/char/char_l_w.png | Bin 0 -> 1053 bytes src/resources/texture/char/char_l_x.png | Bin 0 -> 1068 bytes src/resources/texture/char/char_l_y.png | Bin 0 -> 1090 bytes src/resources/texture/char/char_l_z.png | Bin 0 -> 1037 bytes src/resources/texture/char/char_lthan.png | Bin 0 -> 1082 bytes src/resources/texture/char/char_minus.png | Bin 0 -> 1079 bytes src/resources/texture/char/char_obracket.png | Bin 0 -> 1095 bytes src/resources/texture/char/char_percent.png | Bin 0 -> 1084 bytes src/resources/texture/char/char_plus.png | Bin 0 -> 1079 bytes src/resources/texture/char/char_question.png | Bin 0 -> 1088 bytes src/resources/texture/char/char_space.png | Bin 0 -> 1097 bytes src/resources/texture/char/char_u_a.png | Bin 0 -> 1029 bytes src/resources/texture/char/char_u_b.png | Bin 0 -> 1009 bytes src/resources/texture/char/char_u_c.png | Bin 0 -> 1067 bytes src/resources/texture/char/char_u_d.png | Bin 0 -> 1014 bytes src/resources/texture/char/char_u_e.png | Bin 0 -> 1027 bytes src/resources/texture/char/char_u_f.png | Bin 0 -> 1039 bytes src/resources/texture/char/char_u_g.png | Bin 0 -> 1047 bytes src/resources/texture/char/char_u_h.png | Bin 0 -> 1043 bytes src/resources/texture/char/char_u_i.png | Bin 0 -> 1047 bytes src/resources/texture/char/char_u_j.png | Bin 0 -> 1060 bytes src/resources/texture/char/char_u_k.png | Bin 0 -> 1062 bytes src/resources/texture/char/char_u_l.png | Bin 0 -> 1050 bytes src/resources/texture/char/char_u_m.png | Bin 0 -> 1023 bytes src/resources/texture/char/char_u_n.png | Bin 0 -> 1024 bytes src/resources/texture/char/char_u_o.png | Bin 0 -> 1018 bytes src/resources/texture/char/char_u_p.png | Bin 0 -> 1033 bytes src/resources/texture/char/char_u_q.png | Bin 0 -> 1039 bytes src/resources/texture/char/char_u_r.png | Bin 0 -> 987 bytes src/resources/texture/char/char_u_s.png | Bin 0 -> 1051 bytes src/resources/texture/char/char_u_t.png | Bin 0 -> 1044 bytes src/resources/texture/char/char_u_u.png | Bin 0 -> 1026 bytes src/resources/texture/char/char_u_v.png | Bin 0 -> 1079 bytes src/resources/texture/char/char_u_w.png | Bin 0 -> 1011 bytes src/resources/texture/char/char_u_x.png | Bin 0 -> 1067 bytes src/resources/texture/char/char_u_y.png | Bin 0 -> 1074 bytes src/resources/texture/char/char_u_z.png | Bin 0 -> 992 bytes .../texture/char/char_underscore.png | Bin 0 -> 1071 bytes src/resources/texture/char/char_unknown.png | Bin 0 -> 1081 bytes src/resources/texture/char/char_vertical.png | Bin 0 -> 1084 bytes .../entity/armored/armored_zombie_b_0.png | Bin 0 -> 1213 bytes .../entity/armored/armored_zombie_b_1.png | Bin 0 -> 1211 bytes .../entity/armored/armored_zombie_b_2.png | Bin 0 -> 1213 bytes .../entity/armored/armored_zombie_b_3.png | Bin 0 -> 1214 bytes .../entity/armored/armored_zombie_f_0.png | Bin 0 -> 1247 bytes .../entity/armored/armored_zombie_f_1.png | Bin 0 -> 1252 bytes .../entity/armored/armored_zombie_f_2.png | Bin 0 -> 1253 bytes .../entity/armored/armored_zombie_f_3.png | Bin 0 -> 1241 bytes .../texture/entity/boss_1/boss_1_still.png | Bin 0 -> 1831 bytes .../texture/entity/boss_1/boss_1_still_0.png | Bin 0 -> 1831 bytes .../texture/entity/boss_1/boss_1_still_1.png | Bin 0 -> 1773 bytes .../texture/entity/boss_1/boss_1_still_2.png | Bin 0 -> 1773 bytes .../texture/entity/boss_1/boss_1_still_3.png | Bin 0 -> 1824 bytes .../texture/entity/boss_1/boss_1_walk_0.png | Bin 0 -> 1823 bytes .../texture/entity/boss_1/boss_1_walk_1.png | Bin 0 -> 1831 bytes .../texture/entity/boss_1/boss_1_walk_2.png | Bin 0 -> 1827 bytes .../texture/entity/boss_1/boss_1_walk_3.png | Bin 0 -> 1831 bytes .../texture/entity/boss_1/boss_1_wg_0.png | Bin 0 -> 1823 bytes .../texture/entity/boss_1/boss_1_wg_1.png | Bin 0 -> 1773 bytes .../texture/entity/boss_1/boss_1_wg_2.png | Bin 0 -> 1772 bytes .../texture/entity/boss_1/boss_1_wg_3.png | Bin 0 -> 1824 bytes src/resources/texture/entity/dummy.png | Bin 0 -> 1186 bytes src/resources/texture/entity/flare.png | Bin 0 -> 1119 bytes .../texture/entity/grappling_hook.png | Bin 0 -> 2315 bytes .../texture/entity/player/player_bb_0.png | Bin 0 -> 1084 bytes .../texture/entity/player/player_bb_1.png | Bin 0 -> 1085 bytes .../texture/entity/player/player_bb_2.png | Bin 0 -> 1093 bytes .../texture/entity/player/player_bb_3.png | Bin 0 -> 1087 bytes .../texture/entity/player/player_bf_0.png | Bin 0 -> 1122 bytes .../texture/entity/player/player_bf_1.png | Bin 0 -> 1120 bytes .../texture/entity/player/player_bf_2.png | Bin 0 -> 1125 bytes .../texture/entity/player/player_bf_3.png | Bin 0 -> 1122 bytes .../texture/entity/player/player_wb_0.png | Bin 0 -> 1077 bytes .../texture/entity/player/player_wb_1.png | Bin 0 -> 1081 bytes .../texture/entity/player/player_wb_2.png | Bin 0 -> 1080 bytes .../texture/entity/player/player_wb_3.png | Bin 0 -> 1083 bytes .../texture/entity/player/player_wf_0.png | Bin 0 -> 1123 bytes .../texture/entity/player/player_wf_1.png | Bin 0 -> 1123 bytes .../texture/entity/player/player_wf_2.png | Bin 0 -> 1130 bytes .../texture/entity/player/player_wf_3.png | Bin 0 -> 1127 bytes .../texture/entity/smoke/smoke_0.png | Bin 0 -> 1005 bytes .../texture/entity/smoke/smoke_1.png | Bin 0 -> 984 bytes .../texture/entity/smoke/smoke_2.png | Bin 0 -> 985 bytes .../texture/entity/smoke/smoke_3.png | Bin 0 -> 1021 bytes .../texture/entity/smoke/smoke_4.png | Bin 0 -> 1046 bytes .../texture/entity/smoke/smoke_5.png | Bin 0 -> 932 bytes src/resources/texture/entity/tnt.png | Bin 0 -> 1182 bytes .../texture/entity/zombie/zombie_b_0.png | Bin 0 -> 1147 bytes .../texture/entity/zombie/zombie_b_1.png | Bin 0 -> 1172 bytes .../texture/entity/zombie/zombie_b_2.png | Bin 0 -> 1154 bytes .../texture/entity/zombie/zombie_b_3.png | Bin 0 -> 1177 bytes .../texture/entity/zombie/zombie_f_0.png | Bin 0 -> 1181 bytes .../texture/entity/zombie/zombie_f_1.png | Bin 0 -> 1180 bytes .../texture/entity/zombie/zombie_f_2.png | Bin 0 -> 1185 bytes .../texture/entity/zombie/zombie_f_3.png | Bin 0 -> 1187 bytes src/resources/texture/gui/button_hover.png | Bin 0 -> 3269 bytes src/resources/texture/gui/button_normal.png | Bin 0 -> 2877 bytes src/resources/texture/gui/gun.png | Bin 0 -> 1068 bytes src/resources/texture/gui/health_empty.png | Bin 0 -> 5336 bytes src/resources/texture/gui/health_full.png | Bin 0 -> 4999 bytes src/resources/texture/gui/hotbar.png | Bin 0 -> 9579 bytes src/resources/texture/gui/hotbar_selected.png | Bin 0 -> 1410 bytes src/resources/texture/gui/shield.png | Bin 0 -> 981 bytes src/resources/texture/item/ammo_box.png | Bin 0 -> 1253 bytes src/resources/texture/item/grappling_hook.png | Bin 0 -> 1109 bytes src/resources/texture/item/gun_upgrade.png | Bin 0 -> 1152 bytes src/resources/texture/item/health_potion.png | Bin 0 -> 1179 bytes src/resources/texture/item/rock.png | Bin 0 -> 1179 bytes src/resources/texture/item/shield_upgrade.png | Bin 0 -> 1153 bytes src/resources/texture/list.txt | 219 ++++++++++++++++++ src/resources/texture/tile/boss_portal.png | Bin 0 -> 2349 bytes src/resources/texture/tile/chest.png | Bin 0 -> 1124 bytes src/resources/texture/tile/dirt.png | Bin 0 -> 1139 bytes src/resources/texture/tile/grass.png | Bin 0 -> 1032 bytes src/resources/texture/tile/ladder.png | Bin 0 -> 1153 bytes src/resources/texture/tile/ladder_down.png | Bin 0 -> 959 bytes .../texture/tile/lantern/lantern_0.png | Bin 0 -> 1104 bytes .../texture/tile/lantern/lantern_1.png | Bin 0 -> 1099 bytes .../texture/tile/lantern/lantern_2.png | Bin 0 -> 1107 bytes .../texture/tile/lantern/lantern_3.png | Bin 0 -> 1111 bytes .../texture/tile/lantern/lantern_4.png | Bin 0 -> 1099 bytes .../texture/tile/lantern/lantern_5.png | Bin 0 -> 1110 bytes src/resources/texture/tile/lava/lava_0.png | Bin 0 -> 1096 bytes src/resources/texture/tile/lava/lava_1.png | Bin 0 -> 1097 bytes src/resources/texture/tile/lava/lava_10.png | Bin 0 -> 1098 bytes src/resources/texture/tile/lava/lava_11.png | Bin 0 -> 1097 bytes src/resources/texture/tile/lava/lava_12.png | Bin 0 -> 1098 bytes src/resources/texture/tile/lava/lava_13.png | Bin 0 -> 1099 bytes src/resources/texture/tile/lava/lava_14.png | Bin 0 -> 1101 bytes src/resources/texture/tile/lava/lava_15.png | Bin 0 -> 1101 bytes src/resources/texture/tile/lava/lava_2.png | Bin 0 -> 1096 bytes src/resources/texture/tile/lava/lava_3.png | Bin 0 -> 1100 bytes src/resources/texture/tile/lava/lava_4.png | Bin 0 -> 1100 bytes src/resources/texture/tile/lava/lava_5.png | Bin 0 -> 1098 bytes src/resources/texture/tile/lava/lava_6.png | Bin 0 -> 1099 bytes src/resources/texture/tile/lava/lava_7.png | Bin 0 -> 1102 bytes src/resources/texture/tile/lava/lava_8.png | Bin 0 -> 1100 bytes src/resources/texture/tile/lava/lava_9.png | Bin 0 -> 1100 bytes .../texture/tile/lava_flow/lava_flow_0.png | Bin 0 -> 1111 bytes .../texture/tile/lava_flow/lava_flow_1.png | Bin 0 -> 1114 bytes .../texture/tile/lava_flow/lava_flow_10.png | Bin 0 -> 1118 bytes .../texture/tile/lava_flow/lava_flow_11.png | Bin 0 -> 1115 bytes .../texture/tile/lava_flow/lava_flow_12.png | Bin 0 -> 1116 bytes .../texture/tile/lava_flow/lava_flow_13.png | Bin 0 -> 1121 bytes .../texture/tile/lava_flow/lava_flow_14.png | Bin 0 -> 1121 bytes .../texture/tile/lava_flow/lava_flow_15.png | Bin 0 -> 1120 bytes .../texture/tile/lava_flow/lava_flow_2.png | Bin 0 -> 1114 bytes .../texture/tile/lava_flow/lava_flow_3.png | Bin 0 -> 1114 bytes .../texture/tile/lava_flow/lava_flow_4.png | Bin 0 -> 1114 bytes .../texture/tile/lava_flow/lava_flow_5.png | Bin 0 -> 1117 bytes .../texture/tile/lava_flow/lava_flow_6.png | Bin 0 -> 1119 bytes .../texture/tile/lava_flow/lava_flow_7.png | Bin 0 -> 1119 bytes .../texture/tile/lava_flow/lava_flow_8.png | Bin 0 -> 1116 bytes .../texture/tile/lava_flow/lava_flow_9.png | Bin 0 -> 1115 bytes src/resources/texture/tile/rock.png | Bin 0 -> 1221 bytes src/resources/texture/tile/sand.png | Bin 0 -> 996 bytes src/resources/texture/tile/stone.png | Bin 0 -> 1159 bytes src/resources/texture/tile/stone_hard.png | Bin 0 -> 1231 bytes src/resources/texture/tile/tree.png | Bin 0 -> 1692 bytes src/resources/texture/tile/tunnel_down.png | Bin 0 -> 961 bytes src/resources/texture/tile/water/water_0.png | Bin 0 -> 6652 bytes src/resources/texture/tile/water/water_1.png | Bin 0 -> 6651 bytes src/resources/texture/tile/water/water_10.png | Bin 0 -> 6646 bytes src/resources/texture/tile/water/water_11.png | Bin 0 -> 6642 bytes src/resources/texture/tile/water/water_12.png | Bin 0 -> 6665 bytes src/resources/texture/tile/water/water_13.png | Bin 0 -> 6658 bytes src/resources/texture/tile/water/water_14.png | Bin 0 -> 6646 bytes src/resources/texture/tile/water/water_15.png | Bin 0 -> 6644 bytes src/resources/texture/tile/water/water_2.png | Bin 0 -> 6645 bytes src/resources/texture/tile/water/water_3.png | Bin 0 -> 6650 bytes src/resources/texture/tile/water/water_4.png | Bin 0 -> 6648 bytes src/resources/texture/tile/water/water_5.png | Bin 0 -> 6645 bytes src/resources/texture/tile/water/water_6.png | Bin 0 -> 6658 bytes src/resources/texture/tile/water/water_7.png | Bin 0 -> 6672 bytes src/resources/texture/tile/water/water_8.png | Bin 0 -> 6657 bytes src/resources/texture/tile/water/water_9.png | Bin 0 -> 6657 bytes 346 files changed, 829 insertions(+), 1563 deletions(-) delete mode 100755 src/projectzombie/display/transparent/ITransparentObject.java delete mode 100755 src/projectzombie/display/transparent/TransparentObject.java delete mode 100755 src/projectzombie/display/transparent/TransparentObjects.java rename src/projectzombie/init/{Textures.java => Models.java} (96%) create mode 100644 src/projectzombie/model/Model.java create mode 100644 src/projectzombie/model/ModelChar.java create mode 100644 src/projectzombie/model/ModelTile.java create mode 100644 src/projectzombie/model/ModelVertical.java delete mode 100755 src/projectzombie/util/gl/texture/AnimationEventHandler.java delete mode 100755 src/projectzombie/util/gl/texture/AnimationReference.java delete mode 100755 src/projectzombie/util/math/MathHelpers.java delete mode 100755 src/projectzombie/util/math/range/Range2i.java delete mode 100755 src/projectzombie/util/math/range/Range3i.java delete mode 100755 src/projectzombie/util/math/range/Range4i.java delete mode 100755 src/projectzombie/util/math/vec/Vec2d.java delete mode 100755 src/projectzombie/util/math/vec/Vec2i.java delete mode 100755 src/projectzombie/util/math/vec/Vec3d.java delete mode 100755 src/projectzombie/util/math/vec/Vec3i.java delete mode 100755 src/projectzombie/util/math/vec/Vec4d.java delete mode 100755 src/projectzombie/util/math/vec/Vec4i.java create mode 100644 src/resources/texture/char/char_0.png create mode 100644 src/resources/texture/char/char_1.png create mode 100644 src/resources/texture/char/char_2.png create mode 100644 src/resources/texture/char/char_3.png create mode 100644 src/resources/texture/char/char_4.png create mode 100644 src/resources/texture/char/char_5.png create mode 100644 src/resources/texture/char/char_6.png create mode 100644 src/resources/texture/char/char_7.png create mode 100644 src/resources/texture/char/char_8.png create mode 100644 src/resources/texture/char/char_9.png create mode 100644 src/resources/texture/char/char_bslash.png create mode 100644 src/resources/texture/char/char_cbracket.png create mode 100644 src/resources/texture/char/char_colon.png create mode 100644 src/resources/texture/char/char_comma.png create mode 100644 src/resources/texture/char/char_dollar.png create mode 100644 src/resources/texture/char/char_equals.png create mode 100644 src/resources/texture/char/char_exclamation.png create mode 100644 src/resources/texture/char/char_fslash.png create mode 100644 src/resources/texture/char/char_fullstop.png create mode 100644 src/resources/texture/char/char_gthan.png create mode 100644 src/resources/texture/char/char_hashtag.png create mode 100644 src/resources/texture/char/char_l_a.png create mode 100644 src/resources/texture/char/char_l_b.png create mode 100644 src/resources/texture/char/char_l_c.png create mode 100644 src/resources/texture/char/char_l_d.png create mode 100644 src/resources/texture/char/char_l_e.png create mode 100644 src/resources/texture/char/char_l_f.png create mode 100644 src/resources/texture/char/char_l_g.png create mode 100644 src/resources/texture/char/char_l_h.png create mode 100644 src/resources/texture/char/char_l_i.png create mode 100644 src/resources/texture/char/char_l_j.png create mode 100644 src/resources/texture/char/char_l_k.png create mode 100644 src/resources/texture/char/char_l_l.png create mode 100644 src/resources/texture/char/char_l_m.png create mode 100644 src/resources/texture/char/char_l_n.png create mode 100644 src/resources/texture/char/char_l_o.png create mode 100644 src/resources/texture/char/char_l_p.png create mode 100644 src/resources/texture/char/char_l_q.png create mode 100644 src/resources/texture/char/char_l_r.png create mode 100644 src/resources/texture/char/char_l_s.png create mode 100644 src/resources/texture/char/char_l_t.png create mode 100644 src/resources/texture/char/char_l_u.png create mode 100644 src/resources/texture/char/char_l_v.png create mode 100644 src/resources/texture/char/char_l_w.png create mode 100644 src/resources/texture/char/char_l_x.png create mode 100644 src/resources/texture/char/char_l_y.png create mode 100644 src/resources/texture/char/char_l_z.png create mode 100644 src/resources/texture/char/char_lthan.png create mode 100644 src/resources/texture/char/char_minus.png create mode 100644 src/resources/texture/char/char_obracket.png create mode 100644 src/resources/texture/char/char_percent.png create mode 100644 src/resources/texture/char/char_plus.png create mode 100644 src/resources/texture/char/char_question.png create mode 100644 src/resources/texture/char/char_space.png create mode 100644 src/resources/texture/char/char_u_a.png create mode 100644 src/resources/texture/char/char_u_b.png create mode 100644 src/resources/texture/char/char_u_c.png create mode 100644 src/resources/texture/char/char_u_d.png create mode 100644 src/resources/texture/char/char_u_e.png create mode 100644 src/resources/texture/char/char_u_f.png create mode 100644 src/resources/texture/char/char_u_g.png create mode 100644 src/resources/texture/char/char_u_h.png create mode 100644 src/resources/texture/char/char_u_i.png create mode 100644 src/resources/texture/char/char_u_j.png create mode 100644 src/resources/texture/char/char_u_k.png create mode 100644 src/resources/texture/char/char_u_l.png create mode 100644 src/resources/texture/char/char_u_m.png create mode 100644 src/resources/texture/char/char_u_n.png create mode 100644 src/resources/texture/char/char_u_o.png create mode 100644 src/resources/texture/char/char_u_p.png create mode 100644 src/resources/texture/char/char_u_q.png create mode 100644 src/resources/texture/char/char_u_r.png create mode 100644 src/resources/texture/char/char_u_s.png create mode 100644 src/resources/texture/char/char_u_t.png create mode 100644 src/resources/texture/char/char_u_u.png create mode 100644 src/resources/texture/char/char_u_v.png create mode 100644 src/resources/texture/char/char_u_w.png create mode 100644 src/resources/texture/char/char_u_x.png create mode 100644 src/resources/texture/char/char_u_y.png create mode 100644 src/resources/texture/char/char_u_z.png create mode 100644 src/resources/texture/char/char_underscore.png create mode 100644 src/resources/texture/char/char_unknown.png create mode 100644 src/resources/texture/char/char_vertical.png create mode 100644 src/resources/texture/entity/armored/armored_zombie_b_0.png create mode 100644 src/resources/texture/entity/armored/armored_zombie_b_1.png create mode 100644 src/resources/texture/entity/armored/armored_zombie_b_2.png create mode 100644 src/resources/texture/entity/armored/armored_zombie_b_3.png create mode 100644 src/resources/texture/entity/armored/armored_zombie_f_0.png create mode 100644 src/resources/texture/entity/armored/armored_zombie_f_1.png create mode 100644 src/resources/texture/entity/armored/armored_zombie_f_2.png create mode 100644 src/resources/texture/entity/armored/armored_zombie_f_3.png create mode 100644 src/resources/texture/entity/boss_1/boss_1_still.png create mode 100644 src/resources/texture/entity/boss_1/boss_1_still_0.png create mode 100644 src/resources/texture/entity/boss_1/boss_1_still_1.png create mode 100644 src/resources/texture/entity/boss_1/boss_1_still_2.png create mode 100644 src/resources/texture/entity/boss_1/boss_1_still_3.png create mode 100644 src/resources/texture/entity/boss_1/boss_1_walk_0.png create mode 100644 src/resources/texture/entity/boss_1/boss_1_walk_1.png create mode 100644 src/resources/texture/entity/boss_1/boss_1_walk_2.png create mode 100644 src/resources/texture/entity/boss_1/boss_1_walk_3.png create mode 100644 src/resources/texture/entity/boss_1/boss_1_wg_0.png create mode 100644 src/resources/texture/entity/boss_1/boss_1_wg_1.png create mode 100644 src/resources/texture/entity/boss_1/boss_1_wg_2.png create mode 100644 src/resources/texture/entity/boss_1/boss_1_wg_3.png create mode 100644 src/resources/texture/entity/dummy.png create mode 100644 src/resources/texture/entity/flare.png create mode 100644 src/resources/texture/entity/grappling_hook.png create mode 100644 src/resources/texture/entity/player/player_bb_0.png create mode 100644 src/resources/texture/entity/player/player_bb_1.png create mode 100644 src/resources/texture/entity/player/player_bb_2.png create mode 100644 src/resources/texture/entity/player/player_bb_3.png create mode 100644 src/resources/texture/entity/player/player_bf_0.png create mode 100644 src/resources/texture/entity/player/player_bf_1.png create mode 100644 src/resources/texture/entity/player/player_bf_2.png create mode 100644 src/resources/texture/entity/player/player_bf_3.png create mode 100644 src/resources/texture/entity/player/player_wb_0.png create mode 100644 src/resources/texture/entity/player/player_wb_1.png create mode 100644 src/resources/texture/entity/player/player_wb_2.png create mode 100644 src/resources/texture/entity/player/player_wb_3.png create mode 100644 src/resources/texture/entity/player/player_wf_0.png create mode 100644 src/resources/texture/entity/player/player_wf_1.png create mode 100644 src/resources/texture/entity/player/player_wf_2.png create mode 100644 src/resources/texture/entity/player/player_wf_3.png create mode 100644 src/resources/texture/entity/smoke/smoke_0.png create mode 100644 src/resources/texture/entity/smoke/smoke_1.png create mode 100644 src/resources/texture/entity/smoke/smoke_2.png create mode 100644 src/resources/texture/entity/smoke/smoke_3.png create mode 100644 src/resources/texture/entity/smoke/smoke_4.png create mode 100644 src/resources/texture/entity/smoke/smoke_5.png create mode 100644 src/resources/texture/entity/tnt.png create mode 100644 src/resources/texture/entity/zombie/zombie_b_0.png create mode 100644 src/resources/texture/entity/zombie/zombie_b_1.png create mode 100644 src/resources/texture/entity/zombie/zombie_b_2.png create mode 100644 src/resources/texture/entity/zombie/zombie_b_3.png create mode 100644 src/resources/texture/entity/zombie/zombie_f_0.png create mode 100644 src/resources/texture/entity/zombie/zombie_f_1.png create mode 100644 src/resources/texture/entity/zombie/zombie_f_2.png create mode 100644 src/resources/texture/entity/zombie/zombie_f_3.png create mode 100644 src/resources/texture/gui/button_hover.png create mode 100644 src/resources/texture/gui/button_normal.png create mode 100644 src/resources/texture/gui/gun.png create mode 100644 src/resources/texture/gui/health_empty.png create mode 100644 src/resources/texture/gui/health_full.png create mode 100644 src/resources/texture/gui/hotbar.png create mode 100644 src/resources/texture/gui/hotbar_selected.png create mode 100644 src/resources/texture/gui/shield.png create mode 100644 src/resources/texture/item/ammo_box.png create mode 100644 src/resources/texture/item/grappling_hook.png create mode 100644 src/resources/texture/item/gun_upgrade.png create mode 100644 src/resources/texture/item/health_potion.png create mode 100644 src/resources/texture/item/rock.png create mode 100644 src/resources/texture/item/shield_upgrade.png create mode 100644 src/resources/texture/list.txt create mode 100644 src/resources/texture/tile/boss_portal.png create mode 100644 src/resources/texture/tile/chest.png create mode 100644 src/resources/texture/tile/dirt.png create mode 100644 src/resources/texture/tile/grass.png create mode 100644 src/resources/texture/tile/ladder.png create mode 100644 src/resources/texture/tile/ladder_down.png create mode 100644 src/resources/texture/tile/lantern/lantern_0.png create mode 100644 src/resources/texture/tile/lantern/lantern_1.png create mode 100644 src/resources/texture/tile/lantern/lantern_2.png create mode 100644 src/resources/texture/tile/lantern/lantern_3.png create mode 100644 src/resources/texture/tile/lantern/lantern_4.png create mode 100644 src/resources/texture/tile/lantern/lantern_5.png create mode 100644 src/resources/texture/tile/lava/lava_0.png create mode 100644 src/resources/texture/tile/lava/lava_1.png create mode 100644 src/resources/texture/tile/lava/lava_10.png create mode 100644 src/resources/texture/tile/lava/lava_11.png create mode 100644 src/resources/texture/tile/lava/lava_12.png create mode 100644 src/resources/texture/tile/lava/lava_13.png create mode 100644 src/resources/texture/tile/lava/lava_14.png create mode 100644 src/resources/texture/tile/lava/lava_15.png create mode 100644 src/resources/texture/tile/lava/lava_2.png create mode 100644 src/resources/texture/tile/lava/lava_3.png create mode 100644 src/resources/texture/tile/lava/lava_4.png create mode 100644 src/resources/texture/tile/lava/lava_5.png create mode 100644 src/resources/texture/tile/lava/lava_6.png create mode 100644 src/resources/texture/tile/lava/lava_7.png create mode 100644 src/resources/texture/tile/lava/lava_8.png create mode 100644 src/resources/texture/tile/lava/lava_9.png create mode 100644 src/resources/texture/tile/lava_flow/lava_flow_0.png create mode 100644 src/resources/texture/tile/lava_flow/lava_flow_1.png create mode 100644 src/resources/texture/tile/lava_flow/lava_flow_10.png create mode 100644 src/resources/texture/tile/lava_flow/lava_flow_11.png create mode 100644 src/resources/texture/tile/lava_flow/lava_flow_12.png create mode 100644 src/resources/texture/tile/lava_flow/lava_flow_13.png create mode 100644 src/resources/texture/tile/lava_flow/lava_flow_14.png create mode 100644 src/resources/texture/tile/lava_flow/lava_flow_15.png create mode 100644 src/resources/texture/tile/lava_flow/lava_flow_2.png create mode 100644 src/resources/texture/tile/lava_flow/lava_flow_3.png create mode 100644 src/resources/texture/tile/lava_flow/lava_flow_4.png create mode 100644 src/resources/texture/tile/lava_flow/lava_flow_5.png create mode 100644 src/resources/texture/tile/lava_flow/lava_flow_6.png create mode 100644 src/resources/texture/tile/lava_flow/lava_flow_7.png create mode 100644 src/resources/texture/tile/lava_flow/lava_flow_8.png create mode 100644 src/resources/texture/tile/lava_flow/lava_flow_9.png create mode 100644 src/resources/texture/tile/rock.png create mode 100644 src/resources/texture/tile/sand.png create mode 100644 src/resources/texture/tile/stone.png create mode 100644 src/resources/texture/tile/stone_hard.png create mode 100644 src/resources/texture/tile/tree.png create mode 100644 src/resources/texture/tile/tunnel_down.png create mode 100644 src/resources/texture/tile/water/water_0.png create mode 100644 src/resources/texture/tile/water/water_1.png create mode 100644 src/resources/texture/tile/water/water_10.png create mode 100644 src/resources/texture/tile/water/water_11.png create mode 100644 src/resources/texture/tile/water/water_12.png create mode 100644 src/resources/texture/tile/water/water_13.png create mode 100644 src/resources/texture/tile/water/water_14.png create mode 100644 src/resources/texture/tile/water/water_15.png create mode 100644 src/resources/texture/tile/water/water_2.png create mode 100644 src/resources/texture/tile/water/water_3.png create mode 100644 src/resources/texture/tile/water/water_4.png create mode 100644 src/resources/texture/tile/water/water_5.png create mode 100644 src/resources/texture/tile/water/water_6.png create mode 100644 src/resources/texture/tile/water/water_7.png create mode 100644 src/resources/texture/tile/water/water_8.png create mode 100644 src/resources/texture/tile/water/water_9.png diff --git a/.classpath b/.classpath index a78e5fc..9b934e1 100755 --- a/.classpath +++ b/.classpath @@ -3,10 +3,44 @@ - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/layer.bdf b/layer.bdf index 1ccd40617bd80084703d18cfcb7c7701aed9b3d7..2154d69f527db4d42b5c0422ac452ce97691e8b0 100644 GIT binary patch literal 7194 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 GLK*-WeU+U6 diff --git a/src/projectzombie/Main.java b/src/projectzombie/Main.java index b58aa8e..90c482b 100755 --- a/src/projectzombie/Main.java +++ b/src/projectzombie/Main.java @@ -18,7 +18,7 @@ import projectzombie.init.LayerGenerators; import projectzombie.init.Layers; import projectzombie.init.Resources; import projectzombie.init.Sounds; -import projectzombie.init.Textures; +import projectzombie.init.Models; import projectzombie.init.Tiles; import projectzombie.input.JoystickCallback; import projectzombie.input.KeyCallback; @@ -98,9 +98,6 @@ public class Main window = new DisplayWindow("Project Zombie"); window.init(); - // Initialise the textures - Textures.initTextures(window); - // Initialize the gamepad JoystickCallback.JOYSTICK_CALLBACK.init(); diff --git a/src/projectzombie/audio/AudioObject.java b/src/projectzombie/audio/AudioObject.java index f3a9ab1..91ac956 100755 --- a/src/projectzombie/audio/AudioObject.java +++ b/src/projectzombie/audio/AudioObject.java @@ -22,9 +22,9 @@ import org.lwjgl.system.MemoryStack; import projectzombie.Main; import projectzombie.resources.Resource; -import projectzombie.util.math.MathHelpers; -import projectzombie.util.math.vec.Vec2d; -import projectzombie.util.math.vec.Vec3d; +import gl_engine.MathHelpers; +import gl_engine.vec.Vec2d; +import gl_engine.vec.Vec3d; public class AudioObject { diff --git a/src/projectzombie/audio/AudioRandom.java b/src/projectzombie/audio/AudioRandom.java index 4b7976a..15015ab 100755 --- a/src/projectzombie/audio/AudioRandom.java +++ b/src/projectzombie/audio/AudioRandom.java @@ -2,7 +2,7 @@ package projectzombie.audio; import java.util.Random; -import projectzombie.util.math.vec.Vec3d; +import gl_engine.vec.Vec3d; public class AudioRandom extends AudioObject { diff --git a/src/projectzombie/display/Camera.java b/src/projectzombie/display/Camera.java index bfdde10..0a6669c 100755 --- a/src/projectzombie/display/Camera.java +++ b/src/projectzombie/display/Camera.java @@ -1,27 +1,27 @@ package projectzombie.display; -import projectzombie.util.math.MathHelpers; -import projectzombie.util.math.vec.Vec2d; -import projectzombie.util.math.vec.Vec3d; +import gl_engine.matrix.Matrix4; +import gl_engine.vec.Vec3d; public class Camera { - public Vec3d pos; - public Vec2d angle; + public double angle = 45; public int renderDistance; - public double cameraDistance; - public double distanceFromPlayer; + private Matrix4 matrix; public static Camera camera; - public Camera(Vec3d pos, Vec2d angle, double cameraDistance, int renderDistance) + public Camera(Vec3d pos) { - this.angle = new Vec2d(angle.x, -angle.y); - this.pos = pos.subtract(MathHelpers.moveTowards3( - cameraDistance, new Vec2d(Math.toRadians(angle.x), Math.toRadians(-angle.y)))); - this.cameraDistance = cameraDistance; - this.renderDistance = renderDistance; + Matrix4 identity = Matrix4.identity(); - this.distanceFromPlayer = 10; + identity = Matrix4.multiply(identity, Matrix4.translate(pos.x, 0, pos.y)); + identity = Matrix4.multiply(identity, Matrix4.rotate(angle, 0, 1, 0)); + identity = Matrix4.multiply(identity, Matrix4.rotate(-50, 1, 0, 0)); + identity = Matrix4.multiply(identity, Matrix4.translate(0, 0, -8)); + } + + public Matrix4 getMatrix() { + return matrix; } } diff --git a/src/projectzombie/display/DisplayRender.java b/src/projectzombie/display/DisplayRender.java index 921b3fd..b778fff 100755 --- a/src/projectzombie/display/DisplayRender.java +++ b/src/projectzombie/display/DisplayRender.java @@ -11,18 +11,17 @@ import static org.lwjgl.opengl.GL11.glLoadMatrixf; import static org.lwjgl.opengl.GL11.glMatrixMode; import static org.lwjgl.opengl.GL11.glViewport; -import org.joml.Matrix4f; import org.lwjgl.opengl.GL; import org.lwjgl.system.MemoryStack; +import gl_engine.matrix.Matrix4; import projectzombie.Main; import projectzombie.display.lighting.DynamicLighting; -import projectzombie.display.transparent.TransparentObjects; import projectzombie.entity.player.EntityPlayer; -import projectzombie.init.Textures; +import projectzombie.init.Models; import projectzombie.util.gl.GlHelpers; -import projectzombie.util.math.vec.Vec2d; -import projectzombie.util.math.vec.Vec3d; +import gl_engine.vec.Vec2d; +import gl_engine.vec.Vec3d; import projectzombie.world.chunk.Chunk; import projectzombie.world.chunk.ChunkEventHandler; @@ -35,67 +34,20 @@ public class DisplayRender Main.window.setHeight(h); // Setup GL and clear the colour - GL.createCapabilities(); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glViewport(0, 0, w, h); - // Push the matrix - GlHelpers.pushMatrix(); - - // Enable some stuff - GlHelpers.enableTexture2d(); - GlHelpers.enableDepthTest(); - GlHelpers.enableBlend(); - GlHelpers.enableAlpha(); - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - - // Set the colour to white - GlHelpers.color4(1, 1, 1, 1); - - // Bind the texmap - Textures.texmap.bindTexture(); - if(Main.menu.doGameRender) { - // Push the matrix - GlHelpers.pushMatrix(); - if(ChunkEventHandler.loaded) { - // Set matrix mode - glMatrixMode(GL_MODELVIEW); - - TransparentObjects.clear(); - - // Set the colour to white - GlHelpers.color4(1, 1, 1, 1); - - // Create a matrix - Matrix4f m = new Matrix4f(); - - // Set the perspective - m.setPerspective((float) Math.toRadians(45.0f), ((float)w)/((float)h), 0.01f, 100.0f); - try (MemoryStack stack = MemoryStack.stackPush()) { - glLoadMatrixf(m.get(stack.mallocFloat(16))); - } - - // Set the camera angle - m.setLookAt(0.0f, 0.0f, 10.0f, - 0.0f, 0.0f, 0.0f, - 0.0f, 1.0f, 0.0f); + // Create the projection matrix + Matrix4 projection = Matrix4.projection((double)w / (double)h, 45, 1, 32); EntityPlayer player = Main.player; - Camera camera = new Camera( - new Vec3d(player.pos.x, player.pos.y, 0), - new Vec2d(player.angle, 45), - 10, Chunk.RENDER_DISTANCE); + Camera camera = new Camera(new Vec3d(player.pos.x, 0, player.pos.y)); Camera.camera = camera; - //GlHelpers.translate(0, 0, -5); - GlHelpers.rotate(camera.angle.y, 1, 0, 0); - GlHelpers.rotate(camera.angle.x, 0, 0, 1); - GlHelpers.translate3(-camera.pos.x, -camera.pos.y, -camera.pos.z); - // Process all the light sources DynamicLighting.update(); @@ -103,21 +55,10 @@ public class DisplayRender Main.world.render(camera); player.chunk = Main.world.getLayer().getChunk(player.pos); player.doRender(player.pos, camera); - - // Render the sorted transparent objects - TransparentObjects.render(camera); } - - GlHelpers.popMatrix(); } // Render the user interface DisplayRenderUI.render(); - - // Unbind the texmap - Textures.texmap.unbindTexture(); - - // Pop the matrix - GlHelpers.popMatrix(); } } diff --git a/src/projectzombie/display/DisplayRenderUI.java b/src/projectzombie/display/DisplayRenderUI.java index 83d95fc..b559250 100755 --- a/src/projectzombie/display/DisplayRenderUI.java +++ b/src/projectzombie/display/DisplayRenderUI.java @@ -3,13 +3,13 @@ package projectzombie.display; import projectzombie.Main; import projectzombie.display.bossbar.BossBars; import projectzombie.entity.player.EntityPlayer; -import projectzombie.init.Textures; +import projectzombie.init.Models; import projectzombie.inventory.Inventory; import projectzombie.text.Text; import projectzombie.util.gl.GlHelpers; import projectzombie.util.gl.texture.TextureReference; import projectzombie.util.math.ItemStack; -import projectzombie.util.math.vec.Vec2d; +import gl_engine.vec.Vec2d; public class DisplayRenderUI { @@ -60,8 +60,8 @@ public class DisplayRenderUI // Render the healthbar double max_health = player.maxHealth(); double a = 1 - (player.getHealth() / max_health); - TextureReference health_fg = Textures.UI_HEALTH_FG; - TextureReference health_bg = Textures.UI_HEALTH_BG; + TextureReference health_fg = Models.UI_HEALTH_FG; + TextureReference health_bg = Models.UI_HEALTH_BG; GlHelpers.pushMatrix(); GlHelpers.translate2(-2*s, -9*s); @@ -82,9 +82,9 @@ public class DisplayRenderUI // Display the amount of ammo left, and the defence and gun level GlHelpers.pushMatrix(); - TextureReference ammo_tex = Textures.ITEM_AMMO_BOX; - TextureReference gunlevel_tex = Textures.UI_GUN_LEVEL; - TextureReference deflevel_tex = Textures.UI_DEFENCE_LEVEL; + TextureReference ammo_tex = Models.ITEM_AMMO_BOX; + TextureReference gunlevel_tex = Models.UI_GUN_LEVEL; + TextureReference deflevel_tex = Models.UI_DEFENCE_LEVEL; GlHelpers.translate2(-9.5*s, -9*s); GlHelpers.begin(); @@ -121,7 +121,7 @@ public class DisplayRenderUI GlHelpers.popMatrix(); // Display all the items in the players inventory - TextureReference slots_tex = Textures.UI_ITEM_SLOTS; + TextureReference slots_tex = Models.UI_ITEM_SLOTS; GlHelpers.pushMatrix(); GlHelpers.translate2(3*s, -9.5*s); @@ -134,7 +134,7 @@ public class DisplayRenderUI GlHelpers.end(); // Render the players active slot - TextureReference hotbar_slot_tex = Textures.UI_ACTIVE_SLOT; + TextureReference hotbar_slot_tex = Models.UI_ACTIVE_SLOT; GlHelpers.begin(); hotbar_slot_tex.texCoord(0, 1); GlHelpers.vertex2(2.1 + player.inventory_hand*2, 2.1); diff --git a/src/projectzombie/display/DisplayWindow.java b/src/projectzombie/display/DisplayWindow.java index 1a54b16..7e031d7 100755 --- a/src/projectzombie/display/DisplayWindow.java +++ b/src/projectzombie/display/DisplayWindow.java @@ -8,7 +8,9 @@ import java.nio.IntBuffer; import org.lwjgl.BufferUtils; import org.lwjgl.glfw.GLFW; +import org.lwjgl.opengl.GL; +import gl_engine.graphics.GraphicsHelpers; import mainloop.task.IMainloopTask; import projectzombie.Main; import projectzombie.input.CursorEnterCallback; @@ -64,23 +66,14 @@ public class DisplayWindow implements IMainloopTask IntBuffer h = BufferUtils.createIntBuffer(1); monitor = GLFW.glfwGetPrimaryMonitor(); GLFW.glfwGetMonitorPhysicalSize(monitor, w, h); - this.width = w.get()*4; - this.height = h.get()*4; - - // Set the window hint - GLFW.glfwWindowHint(GLFW.GLFW_SAMPLES, 0); - GLFW.glfwWindowHint(GLFW.GLFW_SCALE_TO_MONITOR, 1); - GLFW.glfwWindowHint(GLFW.GLFW_VISIBLE, 0); - GLFW.glfwWindowHint(GLFW.GLFW_VERSION_MAJOR, 3); - GLFW.glfwWindowHint(GLFW.GLFW_VERSION_MINOR, 3); + width = w.get()*4; + height = h.get()*4; // Create the window - this.window = GLFW.glfwCreateWindow(this.width, this.height, this.name, monitor, 0); + window = GraphicsHelpers.initWindow("Project Zombie", width, height, monitor); - // Has the window been created - if(this.window == 0) { - System.err.println("Failed to create the window"); - } + // Make the context current + GLFW.glfwMakeContextCurrent(this.window); // Set the key handlers GLFW.glfwSetCursorPosCallback(this.window, new CursorPosCallback()); @@ -104,9 +97,6 @@ public class DisplayWindow implements IMainloopTask public void render() { - // Make the context current - this.makeContextCurrent(); - // Set the framebuffer size int w[] = {0}; int h[] = {0}; @@ -152,10 +142,6 @@ public class DisplayWindow implements IMainloopTask GLFW.glfwPollEvents(); } - public void makeContextCurrent() { - GLFW.glfwMakeContextCurrent(this.window); - } - public boolean shouldClose() { return GLFW.glfwWindowShouldClose(this.window); } diff --git a/src/projectzombie/display/bossbar/BossBars.java b/src/projectzombie/display/bossbar/BossBars.java index 6045df3..9c531ee 100755 --- a/src/projectzombie/display/bossbar/BossBars.java +++ b/src/projectzombie/display/bossbar/BossBars.java @@ -2,7 +2,7 @@ package projectzombie.display.bossbar; import java.util.ArrayList; -import projectzombie.init.Textures; +import projectzombie.init.Models; import projectzombie.util.gl.GlHelpers; import projectzombie.util.gl.texture.TextureReference; @@ -20,8 +20,8 @@ public class BossBars public static void render() { - TextureReference health_fg = Textures.UI_HEALTH_FG; - TextureReference health_bg = Textures.UI_HEALTH_BG; + TextureReference health_fg = Models.UI_HEALTH_FG; + TextureReference health_bg = Models.UI_HEALTH_BG; ArrayList toRemove = new ArrayList(); double s = GlHelpers.getScale() / 10.0; diff --git a/src/projectzombie/display/lighting/ChunkLightingCollection.java b/src/projectzombie/display/lighting/ChunkLightingCollection.java index 05756b3..a663c0d 100755 --- a/src/projectzombie/display/lighting/ChunkLightingCollection.java +++ b/src/projectzombie/display/lighting/ChunkLightingCollection.java @@ -1,10 +1,10 @@ package projectzombie.display.lighting; -import projectzombie.util.math.MathHelpers; +import gl_engine.MathHelpers; import projectzombie.util.math.map.IMap2D; import projectzombie.util.math.map.Map2D; -import projectzombie.util.math.vec.Vec2d; -import projectzombie.util.math.vec.Vec2i; +import gl_engine.vec.Vec2d; +import gl_engine.vec.Vec2i; import projectzombie.world.chunk.Chunk; public class ChunkLightingCollection implements IMap2D diff --git a/src/projectzombie/display/lighting/ChunkLightingTemp.java b/src/projectzombie/display/lighting/ChunkLightingTemp.java index c16a545..1e91a38 100755 --- a/src/projectzombie/display/lighting/ChunkLightingTemp.java +++ b/src/projectzombie/display/lighting/ChunkLightingTemp.java @@ -1,6 +1,6 @@ package projectzombie.display.lighting; -import projectzombie.util.math.vec.Vec2i; +import gl_engine.vec.Vec2i; import projectzombie.world.chunk.Chunk; public class ChunkLightingTemp diff --git a/src/projectzombie/display/lighting/DynamicLighting.java b/src/projectzombie/display/lighting/DynamicLighting.java index 557206f..546b59a 100755 --- a/src/projectzombie/display/lighting/DynamicLighting.java +++ b/src/projectzombie/display/lighting/DynamicLighting.java @@ -4,9 +4,9 @@ import projectzombie.Main; import projectzombie.display.Camera; import projectzombie.entity.Entity; import projectzombie.entity.player.EntityPlayer; -import projectzombie.util.math.MathHelpers; +import gl_engine.MathHelpers; import projectzombie.util.math.TileState; -import projectzombie.util.math.vec.Vec2i; +import gl_engine.vec.Vec2i; import projectzombie.world.chunk.Chunk; import projectzombie.world.chunk.ChunkEventHandler; import projectzombie.world.layer.Layer; diff --git a/src/projectzombie/display/lighting/TileLighting.java b/src/projectzombie/display/lighting/TileLighting.java index 63e2645..9181142 100755 --- a/src/projectzombie/display/lighting/TileLighting.java +++ b/src/projectzombie/display/lighting/TileLighting.java @@ -5,11 +5,11 @@ import projectzombie.Main; import projectzombie.display.Camera; import projectzombie.entity.player.EntityPlayer; import projectzombie.mainloop.MainloopHelpers; -import projectzombie.util.math.MathHelpers; +import gl_engine.MathHelpers; import projectzombie.util.math.TileState; -import projectzombie.util.math.range.Range4i; -import projectzombie.util.math.vec.Vec2i; -import projectzombie.util.math.vec.Vec4i; +import gl_engine.range.Range4i; +import gl_engine.vec.Vec2i; +import gl_engine.vec.Vec4i; import projectzombie.world.chunk.Chunk; import projectzombie.world.chunk.ChunkEventHandler; import projectzombie.world.layer.Layer; diff --git a/src/projectzombie/display/transparent/ITransparentObject.java b/src/projectzombie/display/transparent/ITransparentObject.java deleted file mode 100755 index bb2e603..0000000 --- a/src/projectzombie/display/transparent/ITransparentObject.java +++ /dev/null @@ -1,12 +0,0 @@ -package projectzombie.display.transparent; - -import projectzombie.display.Camera; -import projectzombie.util.math.TileState; -import projectzombie.util.math.vec.Vec2d; - -public interface ITransparentObject -{ - public boolean isOpaqueTile(); - public Vec2d getRenderOffset(TileState state); - public void render(Vec2d pos, Camera camera, TileState state); -} diff --git a/src/projectzombie/display/transparent/TransparentObject.java b/src/projectzombie/display/transparent/TransparentObject.java deleted file mode 100755 index cb20282..0000000 --- a/src/projectzombie/display/transparent/TransparentObject.java +++ /dev/null @@ -1,22 +0,0 @@ -package projectzombie.display.transparent; - -import projectzombie.display.Camera; -import projectzombie.util.math.TileState; -import projectzombie.util.math.vec.Vec2d; -import projectzombie.util.math.vec.Vec3d; - -class TransparentObject -{ - double distance; - ITransparentObject object; - Vec2d pos; - TileState state; - - TransparentObject(ITransparentObject object, Camera camera, Vec2d pos, TileState state) { - Vec2d offset = object.getRenderOffset(state); - this.distance = camera.pos.distance(new Vec3d(offset.x + pos.x, offset.y + pos.y, 0)); - this.object = object; - this.pos = pos; - this.state = state; - } -} \ No newline at end of file diff --git a/src/projectzombie/display/transparent/TransparentObjects.java b/src/projectzombie/display/transparent/TransparentObjects.java deleted file mode 100755 index 0f26878..0000000 --- a/src/projectzombie/display/transparent/TransparentObjects.java +++ /dev/null @@ -1,56 +0,0 @@ -package projectzombie.display.transparent; - -import projectzombie.display.Camera; -import projectzombie.util.math.TileState; -import projectzombie.util.math.vec.Vec2d; - -public class TransparentObjects -{ - private static TransparentObject[] objects = new TransparentObject[0]; - - public static void clear() { - objects = new TransparentObject[0]; - } - - public static void register(ITransparentObject object, Camera camera, Vec2d pos, TileState state) - { - TransparentObject r_to = new TransparentObject(object, camera, pos, state); - TransparentObject[] objects_n = new TransparentObject[objects.length + 1]; - boolean added = false; - int upto = 0; - - - //System.out.println("objects length: "+objects.length); - //System.out.println("objects_n length: "+objects_n.length); - - // Loop over the transparent object items - for(int i=0;i to.distance && !added) { - added = true; - objects_n[upto] = r_to; - upto += 1; - } - - objects_n[upto] = to; - upto += 1; - } - - if(!added) { - objects_n[upto] = r_to; - } - - objects = objects_n; - } - - public static void render(Camera camera) - { - // Loop over the objects and render all of them - for(TransparentObject to : objects) { - to.object.render(to.pos, camera, to.state); - } - } -} diff --git a/src/projectzombie/entity/Entity.java b/src/projectzombie/entity/Entity.java index 997e8b9..31e44e5 100755 --- a/src/projectzombie/entity/Entity.java +++ b/src/projectzombie/entity/Entity.java @@ -11,19 +11,18 @@ import bdf.types.BdfObject; import mainloop.task.IMainloopTask; import projectzombie.Main; import projectzombie.display.Camera; -import projectzombie.display.transparent.ITransparentObject; -import projectzombie.display.transparent.TransparentObjects; import projectzombie.init.Entities; import projectzombie.tiles.Tile; -import projectzombie.util.math.MathHelpers; +import gl_engine.MathHelpers; import projectzombie.util.math.TileState; -import projectzombie.util.math.vec.Vec2d; -import projectzombie.util.math.vec.Vec2i; +import gl_engine.vec.Vec2d; +import gl_engine.vec.Vec2i; +import gl_engine.vec.Vec3d; import projectzombie.world.chunk.Chunk; import projectzombie.world.chunk.ChunkEventHandler; import projectzombie.world.layer.Layer; -public class Entity implements ITransparentObject, IBdfClassManager +public class Entity implements IBdfClassManager { public Vec2d pos; public boolean opaqueTile = true; @@ -188,23 +187,14 @@ public class Entity implements ITransparentObject, IBdfClassManager public void render(Vec2d pos, Camera camera) { } - @Override public void render(Vec2d pos, Camera camera, TileState state) { this.render(pos, camera); } - public void doRender(Vec2d pos, Camera camera) - { - if(this.opaqueTile) { - TransparentObjects.register(this, camera, pos, null); - } - - else { - this.render(pos, camera); - } + public void doRender(Vec2d pos, Camera camera) { + this.render(pos, camera); } - @Override public boolean isOpaqueTile() { return this.opaqueTile; } @@ -338,7 +328,6 @@ public class Entity implements ITransparentObject, IBdfClassManager return true; } - @Override public Vec2d getRenderOffset(TileState state) { return new Vec2d(0, 0); } diff --git a/src/projectzombie/entity/EntityBoss.java b/src/projectzombie/entity/EntityBoss.java index 0957449..14d2bad 100755 --- a/src/projectzombie/entity/EntityBoss.java +++ b/src/projectzombie/entity/EntityBoss.java @@ -9,17 +9,17 @@ import projectzombie.display.Camera; import projectzombie.display.bossbar.BossBars; import projectzombie.display.bossbar.IBossBar; import projectzombie.init.Items; -import projectzombie.init.Textures; +import projectzombie.init.Models; import projectzombie.init.Tiles; import projectzombie.time.GameTimer; import projectzombie.util.gl.texture.TextureReference; import projectzombie.util.math.ItemStack; -import projectzombie.util.math.MathHelpers; +import gl_engine.MathHelpers; import projectzombie.util.math.random.OpenSimplexNoise; import projectzombie.util.math.random.RandomHelpers; -import projectzombie.util.math.vec.Vec2d; -import projectzombie.util.math.vec.Vec2i; -import projectzombie.util.math.vec.Vec3d; +import gl_engine.vec.Vec2d; +import gl_engine.vec.Vec2i; +import gl_engine.vec.Vec3d; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; @@ -183,13 +183,13 @@ public class EntityBoss extends EntityVertical implements IBossBar, EntityKillWi { // Get the boss texture if(moving && firing) { - tex = Textures.ENTITY_BOSS_WALKING_AND_FIRING; + tex = Models.ENTITY_BOSS_WALKING_AND_FIRING; } else if(moving) { - tex = Textures.ENTITY_BOSS_WALKING; + tex = Models.ENTITY_BOSS_WALKING; } else if(firing) { - tex = Textures.ENTITY_BOSS_FIRING; + tex = Models.ENTITY_BOSS_FIRING; } else { - tex = Textures.ENTITY_BOSS_IDLE; + tex = Models.ENTITY_BOSS_IDLE; } // Call render diff --git a/src/projectzombie/entity/EntityBullet.java b/src/projectzombie/entity/EntityBullet.java index afdf87b..4be3d24 100755 --- a/src/projectzombie/entity/EntityBullet.java +++ b/src/projectzombie/entity/EntityBullet.java @@ -9,11 +9,11 @@ import projectzombie.settings.SettingQuality; import projectzombie.tiles.Tile; import projectzombie.tiles.TileBulletBreakable; import projectzombie.util.gl.GlHelpers; -import projectzombie.util.math.MathHelpers; +import gl_engine.MathHelpers; import projectzombie.util.math.random.RandomHelpers; -import projectzombie.util.math.vec.Vec2d; -import projectzombie.util.math.vec.Vec2i; -import projectzombie.util.math.vec.Vec3d; +import gl_engine.vec.Vec2d; +import gl_engine.vec.Vec2i; +import gl_engine.vec.Vec3d; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; diff --git a/src/projectzombie/entity/EntityDummy.java b/src/projectzombie/entity/EntityDummy.java index 6b59ec2..c55ca23 100755 --- a/src/projectzombie/entity/EntityDummy.java +++ b/src/projectzombie/entity/EntityDummy.java @@ -1,17 +1,17 @@ package projectzombie.entity; import bdf.types.BdfObject; -import projectzombie.init.Textures; -import projectzombie.util.math.vec.Vec2d; +import projectzombie.init.Models; +import gl_engine.vec.Vec2d; public class EntityDummy extends EntityVertical implements EntityAlive { public EntityDummy(BdfObject bdf) { - super(bdf, Textures.ENTITY_DUMMY, new Vec2d(1, 1)); + super(bdf, Models.ENTITY_DUMMY, new Vec2d(1, 1)); } public EntityDummy(Vec2d pos) { - super(pos, Textures.ENTITY_DUMMY, new Vec2d(1, 1)); + super(pos, Models.ENTITY_DUMMY, new Vec2d(1, 1)); this.hitbox = 0.5; this.isSolid = true; diff --git a/src/projectzombie/entity/EntityExplosion.java b/src/projectzombie/entity/EntityExplosion.java index c06969d..f486221 100755 --- a/src/projectzombie/entity/EntityExplosion.java +++ b/src/projectzombie/entity/EntityExplosion.java @@ -9,11 +9,11 @@ import projectzombie.entity.particle.ParticleSmoke; import projectzombie.init.Sounds; import projectzombie.init.Tiles; import projectzombie.util.gl.texture.IHasTexture; -import projectzombie.util.math.MathHelpers; +import gl_engine.MathHelpers; import projectzombie.util.math.TileState; -import projectzombie.util.math.vec.Vec2d; -import projectzombie.util.math.vec.Vec2i; -import projectzombie.util.math.vec.Vec3d; +import gl_engine.vec.Vec2d; +import gl_engine.vec.Vec2i; +import gl_engine.vec.Vec3d; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; diff --git a/src/projectzombie/entity/EntityFlare.java b/src/projectzombie/entity/EntityFlare.java index 3e67886..ac1e1a6 100755 --- a/src/projectzombie/entity/EntityFlare.java +++ b/src/projectzombie/entity/EntityFlare.java @@ -2,9 +2,9 @@ package projectzombie.entity; import bdf.types.BdfObject; import projectzombie.display.Camera; -import projectzombie.init.Textures; +import projectzombie.init.Models; import projectzombie.util.gl.texture.TextureReference; -import projectzombie.util.math.vec.Vec2d; +import gl_engine.vec.Vec2d; import projectzombie.world.layer.Layer; public class EntityFlare extends EntityTnt @@ -26,7 +26,7 @@ public class EntityFlare extends EntityTnt @Override public void render(Vec2d pos, Camera camera, TextureReference tex, Vec2d size) { - super.render(pos, camera, Textures.ENTITY_FLARE, size); + super.render(pos, camera, Models.ENTITY_FLARE, size); } @Override diff --git a/src/projectzombie/entity/EntityGrapplingHook.java b/src/projectzombie/entity/EntityGrapplingHook.java index 18b0557..a8fdeac 100755 --- a/src/projectzombie/entity/EntityGrapplingHook.java +++ b/src/projectzombie/entity/EntityGrapplingHook.java @@ -5,9 +5,9 @@ import bdf.types.BdfObject; import projectzombie.Main; import projectzombie.display.Camera; import projectzombie.entity.player.EntityPlayer; -import projectzombie.init.Textures; +import projectzombie.init.Models; import projectzombie.util.gl.GlHelpers; -import projectzombie.util.math.vec.Vec2d; +import gl_engine.vec.Vec2d; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; import projectzombie.world.layer.layergen.LayerGenRememberPlayerPos; @@ -19,7 +19,7 @@ public class EntityGrapplingHook extends EntityVertical private Entity entity; public EntityGrapplingHook(BdfObject bdf) { - super(bdf, Textures.ENTITY_GRAPPLING_HOOK, new Vec2d(1, 16)); + super(bdf, Models.ENTITY_GRAPPLING_HOOK, new Vec2d(1, 16)); } @Override @@ -41,7 +41,7 @@ public class EntityGrapplingHook extends EntityVertical } public EntityGrapplingHook(Vec2d pos, int layerId, Entity entity) { - super(pos, Textures.ENTITY_GRAPPLING_HOOK, new Vec2d(1, 16)); + super(pos, Models.ENTITY_GRAPPLING_HOOK, new Vec2d(1, 16)); this.layerId = layerId; this.height = -16; diff --git a/src/projectzombie/entity/EntityItem.java b/src/projectzombie/entity/EntityItem.java index 69c4b09..8675450 100755 --- a/src/projectzombie/entity/EntityItem.java +++ b/src/projectzombie/entity/EntityItem.java @@ -3,12 +3,12 @@ package projectzombie.entity; import bdf.types.BdfNamedList; import bdf.types.BdfObject; import projectzombie.display.Camera; -import projectzombie.init.Textures; +import projectzombie.init.Models; import projectzombie.util.gl.GlHelpers; import projectzombie.util.gl.texture.TextureReference; import projectzombie.util.math.ItemStack; import projectzombie.util.math.random.RandomHelpers; -import projectzombie.util.math.vec.Vec2d; +import gl_engine.vec.Vec2d; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; diff --git a/src/projectzombie/entity/EntityParticle.java b/src/projectzombie/entity/EntityParticle.java index 054e7bb..f45971a 100755 --- a/src/projectzombie/entity/EntityParticle.java +++ b/src/projectzombie/entity/EntityParticle.java @@ -5,7 +5,7 @@ import projectzombie.Main; import projectzombie.display.Camera; import projectzombie.settings.SettingQuality; import projectzombie.util.gl.GlHelpers; -import projectzombie.util.math.vec.Vec2d; +import gl_engine.vec.Vec2d; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; @@ -56,7 +56,7 @@ public class EntityParticle extends Entity GlHelpers.disableTexture2d(); // Get the angle between the camera and the bullet - double angle_r = camera.angle.x; + double angle_r = camera.angle; // Make the bullet upright GlHelpers.translate3(size/2, 0, 0); diff --git a/src/projectzombie/entity/EntityTnt.java b/src/projectzombie/entity/EntityTnt.java index 3b31eb5..337abe4 100755 --- a/src/projectzombie/entity/EntityTnt.java +++ b/src/projectzombie/entity/EntityTnt.java @@ -4,11 +4,11 @@ import bdf.types.BdfNamedList; import bdf.types.BdfObject; import projectzombie.display.Camera; import projectzombie.entity.particle.ParticleSpark; -import projectzombie.init.Textures; +import projectzombie.init.Models; import projectzombie.util.gl.GlHelpers; -import projectzombie.util.math.MathHelpers; -import projectzombie.util.math.vec.Vec2d; -import projectzombie.util.math.vec.Vec3d; +import gl_engine.MathHelpers; +import gl_engine.vec.Vec2d; +import gl_engine.vec.Vec3d; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; @@ -21,7 +21,7 @@ public class EntityTnt extends EntityVertical private double explode_damage; public EntityTnt(BdfObject bdf) { - super(bdf, Textures.ENTITY_TNT, new Vec2d(0.5, 0.5)); + super(bdf, Models.ENTITY_TNT, new Vec2d(0.5, 0.5)); } @Override @@ -53,7 +53,7 @@ public class EntityTnt extends EntityVertical } public EntityTnt(Vec2d pos, double angle, int explode_radius, double explode_damage) { - super(pos, Textures.ENTITY_TNT, new Vec2d(0.5, 0.5)); + super(pos, Models.ENTITY_TNT, new Vec2d(0.5, 0.5)); Vec2d v = MathHelpers.moveTowards2(0.05, Math.toRadians(angle)); velocity = new Vec3d(v.x, v.y, 0.01); diff --git a/src/projectzombie/entity/EntityVertical.java b/src/projectzombie/entity/EntityVertical.java index 0f9a806..112ab03 100755 --- a/src/projectzombie/entity/EntityVertical.java +++ b/src/projectzombie/entity/EntityVertical.java @@ -7,10 +7,10 @@ import projectzombie.util.gl.GlHelpers; import projectzombie.util.gl.VerticalRender; import projectzombie.util.gl.texture.IHasTexture; import projectzombie.util.gl.texture.TextureReference; -import projectzombie.util.math.MathHelpers; -import projectzombie.util.math.vec.Vec2d; -import projectzombie.util.math.vec.Vec2i; -import projectzombie.util.math.vec.Vec3d; +import gl_engine.MathHelpers; +import gl_engine.vec.Vec2d; +import gl_engine.vec.Vec2i; +import gl_engine.vec.Vec3d; public class EntityVertical extends Entity implements IHasTexture { diff --git a/src/projectzombie/entity/EntityZombie.java b/src/projectzombie/entity/EntityZombie.java index ccd929f..f068c95 100755 --- a/src/projectzombie/entity/EntityZombie.java +++ b/src/projectzombie/entity/EntityZombie.java @@ -5,13 +5,13 @@ import java.util.Random; import bdf.types.BdfNamedList; import bdf.types.BdfObject; import projectzombie.Main; -import projectzombie.init.Textures; +import projectzombie.init.Models; import projectzombie.util.gl.texture.TextureReference; import projectzombie.util.math.astar.AStar; import projectzombie.util.math.astar.AStarSearcher; import projectzombie.util.math.random.OpenSimplexNoise; -import projectzombie.util.math.vec.Vec2d; -import projectzombie.util.math.vec.Vec2i; +import gl_engine.vec.Vec2d; +import gl_engine.vec.Vec2i; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; @@ -39,7 +39,7 @@ public class EntityZombie extends EntityVertical implements EntityAlive, EntityK private static final Vec2d size = new Vec2d(1, 1); public EntityZombie(BdfObject bdf) { - super(bdf, Textures.ENTITY_ZOMBIE_F, size); + super(bdf, Models.ENTITY_ZOMBIE_F, size); // Set some settings hitbox = 0.5; @@ -84,7 +84,7 @@ public class EntityZombie extends EntityVertical implements EntityAlive, EntityK } public EntityZombie(Vec2d pos) { - super(pos, Textures.ENTITY_ZOMBIE_F, size); + super(pos, Models.ENTITY_ZOMBIE_F, size); seed = rand.nextLong(); Random rand = new Random(seed); @@ -170,7 +170,7 @@ public class EntityZombie extends EntityVertical implements EntityAlive, EntityK @Override public TextureReference getTexture() { - return Textures.ENTITY_ZOMBIE_F; + return Models.ENTITY_ZOMBIE_F; } public void moveInVector(Vec2d vec) { diff --git a/src/projectzombie/entity/EntityZombieArmored.java b/src/projectzombie/entity/EntityZombieArmored.java index e339e93..69da047 100755 --- a/src/projectzombie/entity/EntityZombieArmored.java +++ b/src/projectzombie/entity/EntityZombieArmored.java @@ -2,9 +2,9 @@ package projectzombie.entity; import bdf.types.BdfObject; import projectzombie.display.Camera; -import projectzombie.init.Textures; +import projectzombie.init.Models; import projectzombie.util.gl.texture.TextureReference; -import projectzombie.util.math.vec.Vec2d; +import gl_engine.vec.Vec2d; public class EntityZombieArmored extends EntityZombie { @@ -23,7 +23,7 @@ public class EntityZombieArmored extends EntityZombie @Override public void render(Vec2d pos, Camera camera, TextureReference tex, Vec2d size) { - super.render(pos, camera, Textures.ENTITY_ZOMBIE_F_ARMORED, size); + super.render(pos, camera, Models.ENTITY_ZOMBIE_F_ARMORED, size); } @Override diff --git a/src/projectzombie/entity/particle/ParticleBlood.java b/src/projectzombie/entity/particle/ParticleBlood.java index 2100890..7131f2d 100755 --- a/src/projectzombie/entity/particle/ParticleBlood.java +++ b/src/projectzombie/entity/particle/ParticleBlood.java @@ -6,11 +6,11 @@ import projectzombie.display.Camera; import projectzombie.entity.EntityParticle; import projectzombie.settings.SettingQuality; import projectzombie.util.gl.GlHelpers; -import projectzombie.util.math.MathHelpers; +import gl_engine.MathHelpers; import projectzombie.util.math.random.RandomHelpers; -import projectzombie.util.math.vec.Vec2d; -import projectzombie.util.math.vec.Vec2i; -import projectzombie.util.math.vec.Vec3d; +import gl_engine.vec.Vec2d; +import gl_engine.vec.Vec2i; +import gl_engine.vec.Vec3d; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; diff --git a/src/projectzombie/entity/particle/ParticleBreak.java b/src/projectzombie/entity/particle/ParticleBreak.java index c9762e7..2454e3c 100755 --- a/src/projectzombie/entity/particle/ParticleBreak.java +++ b/src/projectzombie/entity/particle/ParticleBreak.java @@ -11,12 +11,12 @@ import projectzombie.util.gl.GlHelpers; import projectzombie.util.gl.texture.AnimationReference; import projectzombie.util.gl.texture.IHasTexture; import projectzombie.util.gl.texture.TextureReference; -import projectzombie.util.math.MathHelpers; +import gl_engine.MathHelpers; import projectzombie.util.math.TileState; import projectzombie.util.math.random.RandomHelpers; -import projectzombie.util.math.vec.Vec2d; -import projectzombie.util.math.vec.Vec2i; -import projectzombie.util.math.vec.Vec3d; +import gl_engine.vec.Vec2d; +import gl_engine.vec.Vec2i; +import gl_engine.vec.Vec3d; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; diff --git a/src/projectzombie/entity/particle/ParticleLava.java b/src/projectzombie/entity/particle/ParticleLava.java index 7ee2126..78acd40 100755 --- a/src/projectzombie/entity/particle/ParticleLava.java +++ b/src/projectzombie/entity/particle/ParticleLava.java @@ -6,10 +6,10 @@ import projectzombie.display.Camera; import projectzombie.entity.EntityParticle; import projectzombie.settings.SettingQuality; import projectzombie.util.gl.GlHelpers; -import projectzombie.util.math.MathHelpers; +import gl_engine.MathHelpers; import projectzombie.util.math.random.RandomHelpers; -import projectzombie.util.math.vec.Vec2d; -import projectzombie.util.math.vec.Vec3d; +import gl_engine.vec.Vec2d; +import gl_engine.vec.Vec3d; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; diff --git a/src/projectzombie/entity/particle/ParticleSmoke.java b/src/projectzombie/entity/particle/ParticleSmoke.java index 1faa4da..58f8fa1 100755 --- a/src/projectzombie/entity/particle/ParticleSmoke.java +++ b/src/projectzombie/entity/particle/ParticleSmoke.java @@ -4,11 +4,11 @@ import projectzombie.Main; import projectzombie.display.Camera; import projectzombie.entity.EntityParticle; import projectzombie.entity.EntityVertical; -import projectzombie.init.Textures; +import projectzombie.init.Models; import projectzombie.settings.SettingQuality; import projectzombie.util.gl.GlHelpers; import projectzombie.util.math.random.RandomHelpers; -import projectzombie.util.math.vec.Vec2d; +import gl_engine.vec.Vec2d; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; @@ -20,7 +20,7 @@ public class ParticleSmoke extends EntityVertical double disappear_speed; public ParticleSmoke(Vec2d pos) { - super(new Vec2d(0, 0), Textures.PARTICLE_SMOKE_RANDOM.getTexture(), new Vec2d(1, 1)); + super(new Vec2d(0, 0), Models.PARTICLE_SMOKE_RANDOM.getTexture(), new Vec2d(1, 1)); this.pos = new Vec2d( RandomHelpers.randrange(rand, 1000)/1000.0 - 0.5 + pos.x, diff --git a/src/projectzombie/entity/particle/ParticleSpark.java b/src/projectzombie/entity/particle/ParticleSpark.java index 993d541..114a8f6 100755 --- a/src/projectzombie/entity/particle/ParticleSpark.java +++ b/src/projectzombie/entity/particle/ParticleSpark.java @@ -4,7 +4,7 @@ import projectzombie.display.Camera; import projectzombie.entity.EntityParticle; import projectzombie.settings.SettingQuality; import projectzombie.util.gl.GlHelpers; -import projectzombie.util.math.vec.Vec2d; +import gl_engine.vec.Vec2d; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; diff --git a/src/projectzombie/entity/particle/ParticleWater.java b/src/projectzombie/entity/particle/ParticleWater.java index 04054a8..cb35ba3 100755 --- a/src/projectzombie/entity/particle/ParticleWater.java +++ b/src/projectzombie/entity/particle/ParticleWater.java @@ -4,11 +4,11 @@ import projectzombie.display.Camera; import projectzombie.entity.EntityParticle; import projectzombie.settings.SettingQuality; import projectzombie.util.gl.GlHelpers; -import projectzombie.util.math.MathHelpers; +import gl_engine.MathHelpers; import projectzombie.util.math.random.RandomHelpers; -import projectzombie.util.math.vec.Vec2d; -import projectzombie.util.math.vec.Vec2i; -import projectzombie.util.math.vec.Vec3d; +import gl_engine.vec.Vec2d; +import gl_engine.vec.Vec2i; +import gl_engine.vec.Vec3d; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; diff --git a/src/projectzombie/entity/player/EntityPlayer.java b/src/projectzombie/entity/player/EntityPlayer.java index bb8e417..67ab898 100755 --- a/src/projectzombie/entity/player/EntityPlayer.java +++ b/src/projectzombie/entity/player/EntityPlayer.java @@ -17,17 +17,17 @@ import projectzombie.entity.EntityItem; import projectzombie.entity.EntityVertical; import projectzombie.entity.particle.ParticleBreak; import projectzombie.init.Items; -import projectzombie.init.Textures; +import projectzombie.init.Models; import projectzombie.inventory.Inventory; import projectzombie.menu.MenuDeath; import projectzombie.settings.Cheats; import projectzombie.util.gl.GlHelpers; import projectzombie.util.gl.texture.TextureReference; import projectzombie.util.math.ItemStack; -import projectzombie.util.math.MathHelpers; -import projectzombie.util.math.vec.Vec2d; -import projectzombie.util.math.vec.Vec2i; -import projectzombie.util.math.vec.Vec3d; +import gl_engine.MathHelpers; +import gl_engine.vec.Vec2d; +import gl_engine.vec.Vec2i; +import gl_engine.vec.Vec3d; import projectzombie.world.World; import projectzombie.world.chunk.Chunk; import projectzombie.world.chunk.ChunkEventHandler; @@ -42,8 +42,8 @@ public class EntityPlayer extends EntityVertical implements EntityAlive, EntityI public boolean GUN = false; public boolean moving = false; - public TextureReference PLAYER_MOVING = Textures.ENTITY_PLAYER_B_W_MOVING; - public TextureReference PLAYER_STILL = Textures.ENTITY_PLAYER_B_W_STILL; + public TextureReference PLAYER_MOVING = Models.ENTITY_PLAYER_B_W_MOVING; + public TextureReference PLAYER_STILL = Models.ENTITY_PLAYER_B_W_STILL; public double height = 0; diff --git a/src/projectzombie/init/Textures.java b/src/projectzombie/init/Models.java similarity index 96% rename from src/projectzombie/init/Textures.java rename to src/projectzombie/init/Models.java index c167a39..3471363 100755 --- a/src/projectzombie/init/Textures.java +++ b/src/projectzombie/init/Models.java @@ -10,22 +10,8 @@ import projectzombie.util.gl.texture.TextureMap; import projectzombie.util.gl.texture.TextureReference; import projectzombie.util.gl.texture.TextureReferenceRandom; -public class Textures +public class Models { - public static void initTextures(DisplayWindow window) - { - // Make the context current - window.makeContextCurrent(); - GL.createCapabilities(); - - // Initiaize all the textures - texmap.init(); - } - - public static final ArrayList animations = new ArrayList(); - - public static final TextureMap texmap = new TextureMap(16, Resources.TEXMAP_PNG); - public static final TextureReference TILE_GRASS = texmap.getTextureReference(0, 1, 0, 1); public static final TextureReference TILE_SAND = texmap.getTextureReference(1, 2, 0, 1); public static final TextureReference TILE_STONE = texmap.getTextureReference(2, 3, 0, 1); diff --git a/src/projectzombie/init/Resources.java b/src/projectzombie/init/Resources.java index 79b6835..01b9624 100755 --- a/src/projectzombie/init/Resources.java +++ b/src/projectzombie/init/Resources.java @@ -1,12 +1,14 @@ package projectzombie.init; +import gl_engine.texture.TextureAtlas3D; import projectzombie.resources.Resource; public class Resources { public static void loadResources() { - TEXMAP_PNG.load(); + ATLAS = TextureAtlas3D.loadAll("/resources/texture/list.txt"); + ATLAS.generate(); GUN_OGG_0.load(); GUN_OGG_1.load(); @@ -26,7 +28,7 @@ public class Resources EXPLOSION_OGG.load(); } - public static final Resource TEXMAP_PNG = new Resource("texmap.png"); + public static TextureAtlas3D ATLAS; public static final Resource GUN_OGG_0 = new Resource("sound/gun0.ogg"); public static final Resource GUN_OGG_1 = new Resource("sound/gun1.ogg"); diff --git a/src/projectzombie/input/CursorPosCallback.java b/src/projectzombie/input/CursorPosCallback.java index 1e7a2d1..9a5eb97 100755 --- a/src/projectzombie/input/CursorPosCallback.java +++ b/src/projectzombie/input/CursorPosCallback.java @@ -4,7 +4,7 @@ import org.lwjgl.glfw.GLFW; import org.lwjgl.glfw.GLFWCursorPosCallbackI; import projectzombie.Main; -import projectzombie.util.math.vec.Vec2d; +import gl_engine.vec.Vec2d; public class CursorPosCallback implements GLFWCursorPosCallbackI { diff --git a/src/projectzombie/input/KeyCallback.java b/src/projectzombie/input/KeyCallback.java index bb9607b..691907c 100755 --- a/src/projectzombie/input/KeyCallback.java +++ b/src/projectzombie/input/KeyCallback.java @@ -28,7 +28,7 @@ import org.lwjgl.glfw.GLFWKeyCallbackI; import mainloop.task.IMainloopTask; import projectzombie.Main; import projectzombie.input.types.Input; -import projectzombie.util.math.vec.Vec2d; +import gl_engine.vec.Vec2d; public class KeyCallback implements GLFWKeyCallbackI, IMainloopTask { diff --git a/src/projectzombie/input/types/Input.java b/src/projectzombie/input/types/Input.java index 320c01e..37eee85 100755 --- a/src/projectzombie/input/types/Input.java +++ b/src/projectzombie/input/types/Input.java @@ -1,6 +1,6 @@ package projectzombie.input.types; -import projectzombie.util.math.vec.Vec2d; +import gl_engine.vec.Vec2d; public interface Input { diff --git a/src/projectzombie/input/types/InputGUI.java b/src/projectzombie/input/types/InputGUI.java index 00126a3..d651a8b 100755 --- a/src/projectzombie/input/types/InputGUI.java +++ b/src/projectzombie/input/types/InputGUI.java @@ -1,7 +1,7 @@ package projectzombie.input.types; import projectzombie.menu.gui.GUI; -import projectzombie.util.math.vec.Vec2d; +import gl_engine.vec.Vec2d; public class InputGUI implements Input { diff --git a/src/projectzombie/input/types/InputGame.java b/src/projectzombie/input/types/InputGame.java index 074d58b..207bf1a 100755 --- a/src/projectzombie/input/types/InputGame.java +++ b/src/projectzombie/input/types/InputGame.java @@ -2,8 +2,8 @@ package projectzombie.input.types; import projectzombie.Main; import projectzombie.menu.MenuGamePause; -import projectzombie.util.math.MathHelpers; -import projectzombie.util.math.vec.Vec2d; +import gl_engine.MathHelpers; +import gl_engine.vec.Vec2d; import projectzombie.world.chunk.ChunkEventHandler; public class InputGame implements Input diff --git a/src/projectzombie/items/Item.java b/src/projectzombie/items/Item.java index a119299..71f8b06 100755 --- a/src/projectzombie/items/Item.java +++ b/src/projectzombie/items/Item.java @@ -7,7 +7,7 @@ import projectzombie.inventory.Inventory; import projectzombie.util.gl.GlHelpers; import projectzombie.util.gl.texture.TextureReference; import projectzombie.util.math.ItemStack; -import projectzombie.util.math.vec.Vec2d; +import gl_engine.vec.Vec2d; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; diff --git a/src/projectzombie/items/ItemAmmo.java b/src/projectzombie/items/ItemAmmo.java index d21143d..882c148 100755 --- a/src/projectzombie/items/ItemAmmo.java +++ b/src/projectzombie/items/ItemAmmo.java @@ -2,7 +2,7 @@ package projectzombie.items; import projectzombie.entity.Entity; import projectzombie.entity.player.EntityPlayer; -import projectzombie.init.Textures; +import projectzombie.init.Models; import projectzombie.util.math.ItemStack; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; @@ -12,7 +12,7 @@ public class ItemAmmo extends Item public ItemAmmo() { - this.texture = Textures.ITEM_AMMO_BOX; + this.texture = Models.ITEM_AMMO_BOX; } @Override diff --git a/src/projectzombie/items/ItemDefenceUpgrade.java b/src/projectzombie/items/ItemDefenceUpgrade.java index dfdbd21..cec5ced 100755 --- a/src/projectzombie/items/ItemDefenceUpgrade.java +++ b/src/projectzombie/items/ItemDefenceUpgrade.java @@ -2,7 +2,7 @@ package projectzombie.items; import projectzombie.Main; import projectzombie.entity.player.EntityPlayer; -import projectzombie.init.Textures; +import projectzombie.init.Models; import projectzombie.util.math.ItemStack; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; @@ -12,7 +12,7 @@ public class ItemDefenceUpgrade extends Item public ItemDefenceUpgrade() { - this.texture = Textures.ITEM_DEFENCE_UPGRADE; + this.texture = Models.ITEM_DEFENCE_UPGRADE; } @Override diff --git a/src/projectzombie/items/ItemEmpty.java b/src/projectzombie/items/ItemEmpty.java index df4da6e..34acf5e 100755 --- a/src/projectzombie/items/ItemEmpty.java +++ b/src/projectzombie/items/ItemEmpty.java @@ -3,7 +3,7 @@ package projectzombie.items; import projectzombie.entity.Entity; import projectzombie.entity.player.EntityPlayer; import projectzombie.util.math.ItemStack; -import projectzombie.util.math.vec.Vec2d; +import gl_engine.vec.Vec2d; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; diff --git a/src/projectzombie/items/ItemFlare.java b/src/projectzombie/items/ItemFlare.java index 3286845..53097c6 100755 --- a/src/projectzombie/items/ItemFlare.java +++ b/src/projectzombie/items/ItemFlare.java @@ -2,7 +2,7 @@ package projectzombie.items; import projectzombie.entity.EntityFlare; import projectzombie.entity.player.EntityPlayer; -import projectzombie.init.Textures; +import projectzombie.init.Models; import projectzombie.util.math.ItemStack; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; @@ -12,7 +12,7 @@ public class ItemFlare extends Item public ItemFlare() { - this.texture = Textures.ENTITY_FLARE; + this.texture = Models.ENTITY_FLARE; } @Override diff --git a/src/projectzombie/items/ItemGrapplingHook.java b/src/projectzombie/items/ItemGrapplingHook.java index 3fbaccf..db1f186 100755 --- a/src/projectzombie/items/ItemGrapplingHook.java +++ b/src/projectzombie/items/ItemGrapplingHook.java @@ -2,10 +2,10 @@ package projectzombie.items; import projectzombie.entity.EntityGrapplingHook; import projectzombie.entity.player.EntityPlayer; -import projectzombie.init.Textures; +import projectzombie.init.Models; import projectzombie.util.math.ItemStack; -import projectzombie.util.math.MathHelpers; -import projectzombie.util.math.vec.Vec2d; +import gl_engine.MathHelpers; +import gl_engine.vec.Vec2d; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; @@ -14,7 +14,7 @@ public class ItemGrapplingHook extends Item public ItemGrapplingHook() { - this.texture = Textures.ITEM_GRAPPLING_HOOK; + this.texture = Models.ITEM_GRAPPLING_HOOK; } @Override diff --git a/src/projectzombie/items/ItemGunUpgrade.java b/src/projectzombie/items/ItemGunUpgrade.java index 56d272a..6e93492 100755 --- a/src/projectzombie/items/ItemGunUpgrade.java +++ b/src/projectzombie/items/ItemGunUpgrade.java @@ -2,7 +2,7 @@ package projectzombie.items; import projectzombie.Main; import projectzombie.entity.player.EntityPlayer; -import projectzombie.init.Textures; +import projectzombie.init.Models; import projectzombie.util.math.ItemStack; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; @@ -12,7 +12,7 @@ public class ItemGunUpgrade extends Item public ItemGunUpgrade() { - this.texture = Textures.ITEM_GUN_UPGRADE; + this.texture = Models.ITEM_GUN_UPGRADE; } @Override diff --git a/src/projectzombie/items/ItemHealthPotion.java b/src/projectzombie/items/ItemHealthPotion.java index 50efe57..b4ac348 100755 --- a/src/projectzombie/items/ItemHealthPotion.java +++ b/src/projectzombie/items/ItemHealthPotion.java @@ -1,7 +1,7 @@ package projectzombie.items; import projectzombie.entity.player.EntityPlayer; -import projectzombie.init.Textures; +import projectzombie.init.Models; import projectzombie.util.math.ItemStack; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; @@ -11,7 +11,7 @@ public class ItemHealthPotion extends Item public ItemHealthPotion() { - this.texture = Textures.ITEM_HEALTH_POTION; + this.texture = Models.ITEM_HEALTH_POTION; } @Override diff --git a/src/projectzombie/items/ItemLantern.java b/src/projectzombie/items/ItemLantern.java index 34bf0a9..79530cd 100755 --- a/src/projectzombie/items/ItemLantern.java +++ b/src/projectzombie/items/ItemLantern.java @@ -1,11 +1,11 @@ package projectzombie.items; import projectzombie.entity.player.EntityPlayer; -import projectzombie.init.Textures; +import projectzombie.init.Models; import projectzombie.init.Tiles; import projectzombie.util.math.ItemStack; -import projectzombie.util.math.MathHelpers; -import projectzombie.util.math.vec.Vec2i; +import gl_engine.MathHelpers; +import gl_engine.vec.Vec2i; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; @@ -14,7 +14,7 @@ public class ItemLantern extends Item public ItemLantern() { - this.texture = Textures.TILE_LANTERN; + this.texture = Models.TILE_LANTERN; } @Override diff --git a/src/projectzombie/items/ItemRock.java b/src/projectzombie/items/ItemRock.java index af6a0aa..0b6bd03 100755 --- a/src/projectzombie/items/ItemRock.java +++ b/src/projectzombie/items/ItemRock.java @@ -1,7 +1,7 @@ package projectzombie.items; import projectzombie.entity.player.EntityPlayer; -import projectzombie.init.Textures; +import projectzombie.init.Models; import projectzombie.util.math.ItemStack; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; @@ -11,7 +11,7 @@ public class ItemRock extends Item public ItemRock() { - this.texture = Textures.TILE_ROCK; + this.texture = Models.TILE_ROCK; } @Override diff --git a/src/projectzombie/items/ItemSpawn.java b/src/projectzombie/items/ItemSpawn.java index b110f3b..32c185a 100755 --- a/src/projectzombie/items/ItemSpawn.java +++ b/src/projectzombie/items/ItemSpawn.java @@ -2,7 +2,7 @@ package projectzombie.items; import projectzombie.entity.player.EntityPlayer; import projectzombie.util.math.ItemStack; -import projectzombie.util.math.vec.Vec2d; +import gl_engine.vec.Vec2d; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; diff --git a/src/projectzombie/items/ItemTnt.java b/src/projectzombie/items/ItemTnt.java index e75b5b1..13a8399 100755 --- a/src/projectzombie/items/ItemTnt.java +++ b/src/projectzombie/items/ItemTnt.java @@ -2,7 +2,7 @@ package projectzombie.items; import projectzombie.entity.EntityTnt; import projectzombie.entity.player.EntityPlayer; -import projectzombie.init.Textures; +import projectzombie.init.Models; import projectzombie.util.math.ItemStack; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; @@ -12,7 +12,7 @@ public class ItemTnt extends Item public ItemTnt() { - this.texture = Textures.ENTITY_TNT; + this.texture = Models.ENTITY_TNT; } @Override diff --git a/src/projectzombie/items/spawner/ItemSpawnZombie.java b/src/projectzombie/items/spawner/ItemSpawnZombie.java index 3ee8cc1..e537732 100755 --- a/src/projectzombie/items/spawner/ItemSpawnZombie.java +++ b/src/projectzombie/items/spawner/ItemSpawnZombie.java @@ -1,9 +1,9 @@ package projectzombie.items.spawner; import projectzombie.entity.EntityZombie; -import projectzombie.init.Textures; +import projectzombie.init.Models; import projectzombie.items.ItemSpawn; -import projectzombie.util.math.vec.Vec2d; +import gl_engine.vec.Vec2d; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; @@ -12,7 +12,7 @@ public class ItemSpawnZombie extends ItemSpawn public ItemSpawnZombie() { - this.texture = Textures.ENTITY_ZOMBIE_B; + this.texture = Models.ENTITY_ZOMBIE_B; } @Override diff --git a/src/projectzombie/menu/MenuSettings.java b/src/projectzombie/menu/MenuSettings.java index baef517..4a0cfc4 100755 --- a/src/projectzombie/menu/MenuSettings.java +++ b/src/projectzombie/menu/MenuSettings.java @@ -14,7 +14,7 @@ import projectzombie.menu.gui.components.ButtonSetting; import projectzombie.menu.gui.components.GUIBackToMenu; import projectzombie.menu.gui.components.OverlayBackground; import projectzombie.settings.SettingQuality; -import projectzombie.util.math.vec.Vec2d; +import gl_engine.vec.Vec2d; import projectzombie.world.chunk.Chunk; public class MenuSettings extends Menu diff --git a/src/projectzombie/menu/gui/Button.java b/src/projectzombie/menu/gui/Button.java index c830ec9..16a954f 100755 --- a/src/projectzombie/menu/gui/Button.java +++ b/src/projectzombie/menu/gui/Button.java @@ -1,12 +1,12 @@ package projectzombie.menu.gui; import projectzombie.Main; -import projectzombie.init.Textures; +import projectzombie.init.Models; import projectzombie.input.InputMode; import projectzombie.text.Text; import projectzombie.util.gl.GlHelpers; import projectzombie.util.gl.texture.TextureReference; -import projectzombie.util.math.vec.Vec2d; +import gl_engine.vec.Vec2d; public class Button implements GUIComponent, GUISelectable { @@ -66,9 +66,9 @@ public class Button implements GUIComponent, GUISelectable TextureReference tex; boolean mouseHover = InputMode.Controller ? this.selected : this.checkMouseHover(mousePos); if(mouseHover) { - tex = Textures.BUTTON_HOVER; + tex = Models.BUTTON_HOVER; } else { - tex = Textures.BUTTON; + tex = Models.BUTTON; } GlHelpers.color4(1, 1, 1, 1); diff --git a/src/projectzombie/menu/gui/ButtonGroup.java b/src/projectzombie/menu/gui/ButtonGroup.java index a8e620d..d24bc21 100755 --- a/src/projectzombie/menu/gui/ButtonGroup.java +++ b/src/projectzombie/menu/gui/ButtonGroup.java @@ -2,7 +2,7 @@ package projectzombie.menu.gui; import java.util.ArrayList; -import projectzombie.util.math.vec.Vec2d; +import gl_engine.vec.Vec2d; public class ButtonGroup implements GUIContainer { diff --git a/src/projectzombie/menu/gui/GUI.java b/src/projectzombie/menu/gui/GUI.java index 0c58664..80dc515 100755 --- a/src/projectzombie/menu/gui/GUI.java +++ b/src/projectzombie/menu/gui/GUI.java @@ -2,7 +2,7 @@ package projectzombie.menu.gui; import java.util.ArrayList; -import projectzombie.util.math.vec.Vec2d; +import gl_engine.vec.Vec2d; public class GUI implements GUIContainer { diff --git a/src/projectzombie/menu/gui/GUIComponent.java b/src/projectzombie/menu/gui/GUIComponent.java index 0cb154f..d8acb15 100755 --- a/src/projectzombie/menu/gui/GUIComponent.java +++ b/src/projectzombie/menu/gui/GUIComponent.java @@ -1,6 +1,6 @@ package projectzombie.menu.gui; -import projectzombie.util.math.vec.Vec2d; +import gl_engine.vec.Vec2d; public interface GUIComponent { diff --git a/src/projectzombie/menu/gui/Label.java b/src/projectzombie/menu/gui/Label.java index c948688..007a0d4 100755 --- a/src/projectzombie/menu/gui/Label.java +++ b/src/projectzombie/menu/gui/Label.java @@ -2,8 +2,8 @@ package projectzombie.menu.gui; import projectzombie.text.Text; import projectzombie.util.gl.GlHelpers; -import projectzombie.util.math.vec.Vec2d; -import projectzombie.util.math.vec.Vec3d; +import gl_engine.vec.Vec2d; +import gl_engine.vec.Vec3d; public class Label implements GUIComponent { diff --git a/src/projectzombie/menu/gui/Overlay.java b/src/projectzombie/menu/gui/Overlay.java index 5a86239..d8ea450 100755 --- a/src/projectzombie/menu/gui/Overlay.java +++ b/src/projectzombie/menu/gui/Overlay.java @@ -1,9 +1,9 @@ package projectzombie.menu.gui; import projectzombie.util.gl.GlHelpers; -import projectzombie.util.math.vec.Vec2d; -import projectzombie.util.math.vec.Vec3d; -import projectzombie.util.math.vec.Vec4d; +import gl_engine.vec.Vec2d; +import gl_engine.vec.Vec3d; +import gl_engine.vec.Vec4d; public class Overlay implements GUIComponent { diff --git a/src/projectzombie/menu/gui/components/ButtonBasic.java b/src/projectzombie/menu/gui/components/ButtonBasic.java index ddbc6b7..25b8313 100755 --- a/src/projectzombie/menu/gui/components/ButtonBasic.java +++ b/src/projectzombie/menu/gui/components/ButtonBasic.java @@ -1,7 +1,7 @@ package projectzombie.menu.gui.components; import projectzombie.menu.gui.Button; -import projectzombie.util.math.vec.Vec2d; +import gl_engine.vec.Vec2d; public class ButtonBasic extends Button { diff --git a/src/projectzombie/menu/gui/components/ButtonGroupPause.java b/src/projectzombie/menu/gui/components/ButtonGroupPause.java index a4385fe..001a0e5 100755 --- a/src/projectzombie/menu/gui/components/ButtonGroupPause.java +++ b/src/projectzombie/menu/gui/components/ButtonGroupPause.java @@ -4,7 +4,7 @@ import projectzombie.Main; import projectzombie.menu.MenuMain; import projectzombie.menu.MenuSettings; import projectzombie.menu.gui.ButtonGroup; -import projectzombie.util.math.vec.Vec2d; +import gl_engine.vec.Vec2d; public class ButtonGroupPause extends ButtonGroup { diff --git a/src/projectzombie/menu/gui/components/ButtonSetting.java b/src/projectzombie/menu/gui/components/ButtonSetting.java index ebc2e63..13be1e6 100755 --- a/src/projectzombie/menu/gui/components/ButtonSetting.java +++ b/src/projectzombie/menu/gui/components/ButtonSetting.java @@ -2,7 +2,7 @@ package projectzombie.menu.gui.components; import projectzombie.menu.gui.Alignment; import projectzombie.settings.Settings; -import projectzombie.util.math.vec.Vec2d; +import gl_engine.vec.Vec2d; public class ButtonSetting extends ButtonBasic { diff --git a/src/projectzombie/menu/gui/components/LabelMain.java b/src/projectzombie/menu/gui/components/LabelMain.java index 7430561..67a5197 100755 --- a/src/projectzombie/menu/gui/components/LabelMain.java +++ b/src/projectzombie/menu/gui/components/LabelMain.java @@ -1,7 +1,7 @@ package projectzombie.menu.gui.components; import projectzombie.menu.gui.Label; -import projectzombie.util.math.vec.Vec2d; +import gl_engine.vec.Vec2d; public class LabelMain extends Label { diff --git a/src/projectzombie/menu/gui/components/LabelPause.java b/src/projectzombie/menu/gui/components/LabelPause.java index ce32c36..1bf2cec 100755 --- a/src/projectzombie/menu/gui/components/LabelPause.java +++ b/src/projectzombie/menu/gui/components/LabelPause.java @@ -1,7 +1,7 @@ package projectzombie.menu.gui.components; import projectzombie.menu.gui.Label; -import projectzombie.util.math.vec.Vec2d; +import gl_engine.vec.Vec2d; public class LabelPause extends Label { diff --git a/src/projectzombie/menu/gui/components/OverlayBackground.java b/src/projectzombie/menu/gui/components/OverlayBackground.java index 9f8cfbd..f1449ed 100755 --- a/src/projectzombie/menu/gui/components/OverlayBackground.java +++ b/src/projectzombie/menu/gui/components/OverlayBackground.java @@ -1,7 +1,7 @@ package projectzombie.menu.gui.components; import projectzombie.menu.gui.Overlay; -import projectzombie.util.math.vec.Vec4d; +import gl_engine.vec.Vec4d; public class OverlayBackground extends Overlay { diff --git a/src/projectzombie/model/Model.java b/src/projectzombie/model/Model.java new file mode 100644 index 0000000..723f5da --- /dev/null +++ b/src/projectzombie/model/Model.java @@ -0,0 +1,65 @@ +package projectzombie.model; + +import gl_engine.MathHelpers; +import gl_engine.texture.TextureRef3D; + +import static org.lwjgl.opengl.GL33.*; + +public abstract class Model +{ + int vao, size; + boolean loaded = false; + private static final int SIZE = 7; + + public int getSize() { + return size; + } + + // px, py, pz, tx, ty + protected abstract float[] getVerticies(); + protected abstract TextureRef3D[] getTextures(); + + public void bind() + { + if(loaded) { + glBindVertexArray(vao); + } + + else + { + float[] verticies = this.getVerticies(); + TextureRef3D[] refs = this.getTextures(); + + if(verticies.length % SIZE != 0 || refs.length * 3 != verticies.length / SIZE) { + System.err.println("Invalid model"); + System.exit(1); + return; + } + + size = verticies.length/SIZE; + double k = 0.001; + + for(int i=0;i'): l = CHAR_G_THEN; break; - case('<'): l = CHAR_L_THEN; break; + case('>'): l = CHAR_G_THAN; break; + case('<'): l = CHAR_L_THAN; break; } - // Is the letter not null - if(l != null) - { - // Render the character - l.texCoord(0, 1); GlHelpers.vertex2(sy*i, 0 ); - l.texCoord(0, 0); GlHelpers.vertex2(sy*i, sx); - l.texCoord(1, 0); GlHelpers.vertex2(sy*(i+1), sx); - l.texCoord(1, 1); GlHelpers.vertex2(sy*(i+1), 0 ); - } + } // Stop drawing quads diff --git a/src/projectzombie/tiles/Tile.java b/src/projectzombie/tiles/Tile.java index edeee39..e534ccb 100755 --- a/src/projectzombie/tiles/Tile.java +++ b/src/projectzombie/tiles/Tile.java @@ -1,16 +1,14 @@ package projectzombie.tiles; import projectzombie.display.Camera; -import projectzombie.display.transparent.ITransparentObject; -import projectzombie.display.transparent.TransparentObjects; import projectzombie.entity.Entity; import projectzombie.util.math.TileState; -import projectzombie.util.math.vec.Vec2d; -import projectzombie.util.math.vec.Vec2i; +import gl_engine.vec.Vec2d; +import gl_engine.vec.Vec2i; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; -public class Tile implements ITransparentObject +public class Tile { public short id; public boolean opaqueTile = false; @@ -23,22 +21,13 @@ public class Tile implements ITransparentObject public boolean emitsLight = false; public boolean passNaturalLight = true; - @Override public void render(Vec2d pos, Camera camera, TileState state) { } - public void doRender(Vec2d pos, Camera camera, TileState state) - { - if(this.opaqueTile) { - TransparentObjects.register(this, camera, pos, state); - } - - else { - this.render(pos, camera, state); - } + public void doRender(Vec2d pos, Camera camera, TileState state) { + this.render(pos, camera, state); } - @Override public boolean isOpaqueTile() { return this.opaqueTile; } @@ -46,7 +35,6 @@ public class Tile implements ITransparentObject public void onWalkedOn(Chunk chunk, Layer layer, Vec2i pos, Entity entity, TileState state) { } - @Override public Vec2d getRenderOffset(TileState ts) { return new Vec2d(0.5, 0.5); } diff --git a/src/projectzombie/tiles/TileBossPortal.java b/src/projectzombie/tiles/TileBossPortal.java index dfa261e..f17402c 100755 --- a/src/projectzombie/tiles/TileBossPortal.java +++ b/src/projectzombie/tiles/TileBossPortal.java @@ -8,11 +8,11 @@ import projectzombie.entity.Entity; import projectzombie.entity.particle.ParticleBreak; import projectzombie.entity.player.EntityPlayer; import projectzombie.init.LayerGenerators; -import projectzombie.init.Textures; -import projectzombie.util.math.MathHelpers; +import projectzombie.init.Models; +import gl_engine.MathHelpers; import projectzombie.util.math.TileState; -import projectzombie.util.math.vec.Vec2d; -import projectzombie.util.math.vec.Vec2i; +import gl_engine.vec.Vec2d; +import gl_engine.vec.Vec2i; import projectzombie.world.chunk.ChunkEventHandler; import projectzombie.world.layer.Layer; import projectzombie.world.layer.layergen.LayerGenBossArena; @@ -22,7 +22,7 @@ public class TileBossPortal extends TileVertical private static Random rand = new Random(); public TileBossPortal() { - super(Textures.TILE_BOSS_PORTAL, new Vec2d(2, 2)); + super(Models.TILE_BOSS_PORTAL, new Vec2d(2, 2)); this.emitsLight = true; this.opaqueTile = true; diff --git a/src/projectzombie/tiles/TileChest.java b/src/projectzombie/tiles/TileChest.java index 94a9a03..389ef3c 100755 --- a/src/projectzombie/tiles/TileChest.java +++ b/src/projectzombie/tiles/TileChest.java @@ -6,12 +6,12 @@ import projectzombie.Main; import projectzombie.entity.Entity; import projectzombie.entity.EntityItem; import projectzombie.init.Items; -import projectzombie.init.Textures; +import projectzombie.init.Models; import projectzombie.util.math.ItemStack; import projectzombie.util.math.TileState; import projectzombie.util.math.random.RandomHelpers; -import projectzombie.util.math.vec.Vec2d; -import projectzombie.util.math.vec.Vec2i; +import gl_engine.vec.Vec2d; +import gl_engine.vec.Vec2i; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; @@ -21,7 +21,7 @@ public class TileChest extends TileVertical implements TileBulletBreakable public static final short CHEST_LAVA_CAVES = 2; public TileChest() { - super(Textures.TILE_CHEST, new Vec2d(1, 1)); + super(Models.TILE_CHEST, new Vec2d(1, 1)); this.tileSolid = true; this.opaqueTile = true; diff --git a/src/projectzombie/tiles/TileDirt.java b/src/projectzombie/tiles/TileDirt.java index 16a74d6..8b8c947 100755 --- a/src/projectzombie/tiles/TileDirt.java +++ b/src/projectzombie/tiles/TileDirt.java @@ -1,12 +1,12 @@ package projectzombie.tiles; -import projectzombie.init.Textures; +import projectzombie.init.Models; public class TileDirt extends TileFlatFaded { public TileDirt() { - super(Textures.TILE_DIRT); + super(Models.TILE_DIRT); } } \ No newline at end of file diff --git a/src/projectzombie/tiles/TileFlat.java b/src/projectzombie/tiles/TileFlat.java index 96e1e42..d032665 100755 --- a/src/projectzombie/tiles/TileFlat.java +++ b/src/projectzombie/tiles/TileFlat.java @@ -5,8 +5,8 @@ import projectzombie.util.gl.GlHelpers; import projectzombie.util.gl.texture.IHasTexture; import projectzombie.util.gl.texture.TextureReference; import projectzombie.util.math.TileState; -import projectzombie.util.math.vec.Vec2d; -import projectzombie.util.math.vec.Vec3d; +import gl_engine.vec.Vec2d; +import gl_engine.vec.Vec3d; public class TileFlat extends Tile implements IHasTexture { diff --git a/src/projectzombie/tiles/TileFlatFaded.java b/src/projectzombie/tiles/TileFlatFaded.java index bacec17..55bb33b 100755 --- a/src/projectzombie/tiles/TileFlatFaded.java +++ b/src/projectzombie/tiles/TileFlatFaded.java @@ -3,8 +3,8 @@ package projectzombie.tiles; import projectzombie.display.Camera; import projectzombie.util.gl.texture.TextureReference; import projectzombie.util.math.TileState; -import projectzombie.util.math.vec.Vec2d; -import projectzombie.util.math.vec.Vec3d; +import gl_engine.vec.Vec2d; +import gl_engine.vec.Vec3d; public class TileFlatFaded extends TileFlat { diff --git a/src/projectzombie/tiles/TileGrass.java b/src/projectzombie/tiles/TileGrass.java index 5a8f21f..52f92b3 100755 --- a/src/projectzombie/tiles/TileGrass.java +++ b/src/projectzombie/tiles/TileGrass.java @@ -1,12 +1,12 @@ package projectzombie.tiles; -import projectzombie.init.Textures; +import projectzombie.init.Models; public class TileGrass extends TileFlat { public TileGrass() { - super(Textures.TILE_GRASS); + super(Models.TILE_GRASS); } } diff --git a/src/projectzombie/tiles/TileLadder.java b/src/projectzombie/tiles/TileLadder.java index 8326c37..c273316 100755 --- a/src/projectzombie/tiles/TileLadder.java +++ b/src/projectzombie/tiles/TileLadder.java @@ -1,15 +1,15 @@ package projectzombie.tiles; -import projectzombie.init.Textures; +import projectzombie.init.Models; import projectzombie.util.math.TileState; -import projectzombie.util.math.vec.Vec2d; -import projectzombie.util.math.vec.Vec2i; +import gl_engine.vec.Vec2d; +import gl_engine.vec.Vec2i; public class TileLadder extends TileVertical { public TileLadder() { - super(Textures.TILE_LADDER, new Vec2d(1, 1)); + super(Models.TILE_LADDER, new Vec2d(1, 1)); this.opaqueTile = true; this.tileSolid = true; diff --git a/src/projectzombie/tiles/TileLadderUp.java b/src/projectzombie/tiles/TileLadderUp.java index 55500da..055cc60 100755 --- a/src/projectzombie/tiles/TileLadderUp.java +++ b/src/projectzombie/tiles/TileLadderUp.java @@ -4,18 +4,18 @@ import mainloop.task.IMainloopTask; import projectzombie.Main; import projectzombie.entity.Entity; import projectzombie.entity.player.EntityPlayer; -import projectzombie.init.Textures; +import projectzombie.init.Models; import projectzombie.mainloop.MainloopEventHandler; import projectzombie.util.math.TileState; -import projectzombie.util.math.vec.Vec2d; -import projectzombie.util.math.vec.Vec2i; +import gl_engine.vec.Vec2d; +import gl_engine.vec.Vec2i; import projectzombie.world.chunk.ChunkEventHandler; import projectzombie.world.layer.Layer; public class TileLadderUp extends TileVertical { public TileLadderUp() { - super(Textures.TILE_LADDER_UP, new Vec2d(1, 16)); + super(Models.TILE_LADDER_UP, new Vec2d(1, 16)); this.opaqueTile = true; this.tileSolid = true; diff --git a/src/projectzombie/tiles/TileLantern.java b/src/projectzombie/tiles/TileLantern.java index eb58a39..79c6111 100755 --- a/src/projectzombie/tiles/TileLantern.java +++ b/src/projectzombie/tiles/TileLantern.java @@ -3,18 +3,18 @@ package projectzombie.tiles; import projectzombie.entity.Entity; import projectzombie.entity.EntityItem; import projectzombie.init.Items; -import projectzombie.init.Textures; +import projectzombie.init.Models; import projectzombie.util.math.ItemStack; import projectzombie.util.math.TileState; -import projectzombie.util.math.vec.Vec2d; -import projectzombie.util.math.vec.Vec2i; +import gl_engine.vec.Vec2d; +import gl_engine.vec.Vec2i; import projectzombie.world.layer.Layer; public class TileLantern extends TileVertical { public TileLantern() { - super(Textures.TILE_LANTERN, new Vec2d(1, 1)); + super(Models.TILE_LANTERN, new Vec2d(1, 1)); this.emitsLight = true; this.opaqueTile = true; diff --git a/src/projectzombie/tiles/TileLava.java b/src/projectzombie/tiles/TileLava.java index 0875189..09b51af 100755 --- a/src/projectzombie/tiles/TileLava.java +++ b/src/projectzombie/tiles/TileLava.java @@ -5,11 +5,11 @@ import java.util.Random; import projectzombie.display.Camera; import projectzombie.entity.Entity; import projectzombie.entity.particle.ParticleLava; -import projectzombie.init.Textures; +import projectzombie.init.Models; import projectzombie.util.gl.GlHelpers; import projectzombie.util.math.TileState; -import projectzombie.util.math.vec.Vec2d; -import projectzombie.util.math.vec.Vec2i; +import gl_engine.vec.Vec2d; +import gl_engine.vec.Vec2i; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; @@ -18,7 +18,7 @@ public class TileLava extends TileFlat private Random rand = new Random(); public TileLava() { - super(Textures.TILE_LAVA); + super(Models.TILE_LAVA); this.slowness = 0.5; this.tileWalkable = false; diff --git a/src/projectzombie/tiles/TileLavaFlow.java b/src/projectzombie/tiles/TileLavaFlow.java index a5ec609..cb7b710 100755 --- a/src/projectzombie/tiles/TileLavaFlow.java +++ b/src/projectzombie/tiles/TileLavaFlow.java @@ -4,12 +4,12 @@ import java.util.Random; import projectzombie.display.Camera; import projectzombie.entity.particle.ParticleSmoke; -import projectzombie.init.Textures; +import projectzombie.init.Models; import projectzombie.util.gl.GlHelpers; import projectzombie.util.math.TileState; import projectzombie.util.math.random.RandomHelpers; -import projectzombie.util.math.vec.Vec2d; -import projectzombie.util.math.vec.Vec2i; +import gl_engine.vec.Vec2d; +import gl_engine.vec.Vec2i; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; @@ -18,7 +18,7 @@ public class TileLavaFlow extends TileFlat private Random rand = new Random(); public TileLavaFlow() { - super(Textures.TILE_LAVA_FLOW); + super(Models.TILE_LAVA_FLOW); this.emitsLight = true; this.unbreakable = true; diff --git a/src/projectzombie/tiles/TilePortalDown.java b/src/projectzombie/tiles/TilePortalDown.java index 4641d00..3b55d26 100755 --- a/src/projectzombie/tiles/TilePortalDown.java +++ b/src/projectzombie/tiles/TilePortalDown.java @@ -4,10 +4,10 @@ import mainloop.task.IMainloopTask; import projectzombie.Main; import projectzombie.entity.Entity; import projectzombie.entity.player.EntityPlayer; -import projectzombie.init.Textures; +import projectzombie.init.Models; import projectzombie.mainloop.MainloopEventHandler; import projectzombie.util.math.TileState; -import projectzombie.util.math.vec.Vec2i; +import gl_engine.vec.Vec2i; import projectzombie.world.chunk.ChunkEventHandler; import projectzombie.world.layer.Layer; @@ -15,7 +15,7 @@ public class TilePortalDown extends TileFlat { public TilePortalDown() { - super(Textures.TILE_PORTAL); + super(Models.TILE_PORTAL); this.unbreakable = true; } diff --git a/src/projectzombie/tiles/TileRock.java b/src/projectzombie/tiles/TileRock.java index 9585c95..586f342 100755 --- a/src/projectzombie/tiles/TileRock.java +++ b/src/projectzombie/tiles/TileRock.java @@ -3,18 +3,18 @@ package projectzombie.tiles; import projectzombie.entity.Entity; import projectzombie.entity.EntityItem; import projectzombie.init.Items; -import projectzombie.init.Textures; +import projectzombie.init.Models; import projectzombie.util.math.ItemStack; import projectzombie.util.math.TileState; -import projectzombie.util.math.vec.Vec2d; -import projectzombie.util.math.vec.Vec2i; +import gl_engine.vec.Vec2d; +import gl_engine.vec.Vec2i; import projectzombie.world.layer.Layer; public class TileRock extends TileVertical implements TileBulletBreakable { public TileRock() { - super(Textures.TILE_ROCK, new Vec2d(1, 1)); + super(Models.TILE_ROCK, new Vec2d(1, 1)); // Set some settings this.opaqueTile = true; diff --git a/src/projectzombie/tiles/TileSand.java b/src/projectzombie/tiles/TileSand.java index 8f8b83e..216c2f2 100755 --- a/src/projectzombie/tiles/TileSand.java +++ b/src/projectzombie/tiles/TileSand.java @@ -1,12 +1,12 @@ package projectzombie.tiles; -import projectzombie.init.Textures; +import projectzombie.init.Models; public class TileSand extends TileFlat { public TileSand() { - super(Textures.TILE_SAND); + super(Models.TILE_SAND); } } \ No newline at end of file diff --git a/src/projectzombie/tiles/TileStone.java b/src/projectzombie/tiles/TileStone.java index 233564b..7dfc131 100755 --- a/src/projectzombie/tiles/TileStone.java +++ b/src/projectzombie/tiles/TileStone.java @@ -1,12 +1,12 @@ package projectzombie.tiles; -import projectzombie.init.Textures; +import projectzombie.init.Models; public class TileStone extends TileFlatFaded { public TileStone() { - super(Textures.TILE_STONE); + super(Models.TILE_STONE); } } diff --git a/src/projectzombie/tiles/TileTree.java b/src/projectzombie/tiles/TileTree.java index bb76bf7..8d4ec29 100755 --- a/src/projectzombie/tiles/TileTree.java +++ b/src/projectzombie/tiles/TileTree.java @@ -1,13 +1,13 @@ package projectzombie.tiles; -import projectzombie.init.Textures; +import projectzombie.init.Models; import projectzombie.util.math.TileState; -import projectzombie.util.math.vec.Vec2d; +import gl_engine.vec.Vec2d; public class TileTree extends TileVertical implements TileBulletBreakable { public TileTree() { - super(Textures.TILE_TREE, new Vec2d(1, 4)); + super(Models.TILE_TREE, new Vec2d(1, 4)); // Set some settings this.opaqueTile = true; diff --git a/src/projectzombie/tiles/TileVertical.java b/src/projectzombie/tiles/TileVertical.java index 488d39d..ff5ddd9 100755 --- a/src/projectzombie/tiles/TileVertical.java +++ b/src/projectzombie/tiles/TileVertical.java @@ -6,7 +6,7 @@ import projectzombie.util.gl.VerticalRender; import projectzombie.util.gl.texture.IHasTexture; import projectzombie.util.gl.texture.TextureReference; import projectzombie.util.math.TileState; -import projectzombie.util.math.vec.Vec2d; +import gl_engine.vec.Vec2d; public class TileVertical extends Tile implements IHasTexture { diff --git a/src/projectzombie/tiles/TileWall.java b/src/projectzombie/tiles/TileWall.java index 8150a9f..883e525 100755 --- a/src/projectzombie/tiles/TileWall.java +++ b/src/projectzombie/tiles/TileWall.java @@ -1,13 +1,13 @@ package projectzombie.tiles; -import projectzombie.init.Textures; +import projectzombie.init.Models; import projectzombie.util.math.TileState; public class TileWall extends TileFlat { public TileWall() { - super(Textures.TILE_WALL); + super(Models.TILE_WALL); this.tileWalkable = false; this.tileSolid = true; diff --git a/src/projectzombie/tiles/TileWater.java b/src/projectzombie/tiles/TileWater.java index 500a06a..050009d 100755 --- a/src/projectzombie/tiles/TileWater.java +++ b/src/projectzombie/tiles/TileWater.java @@ -3,11 +3,11 @@ package projectzombie.tiles; import projectzombie.display.Camera; import projectzombie.entity.Entity; import projectzombie.entity.particle.ParticleWater; -import projectzombie.init.Textures; +import projectzombie.init.Models; import projectzombie.util.gl.GlHelpers; import projectzombie.util.math.TileState; -import projectzombie.util.math.vec.Vec2d; -import projectzombie.util.math.vec.Vec2i; +import gl_engine.vec.Vec2d; +import gl_engine.vec.Vec2i; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; @@ -15,7 +15,7 @@ public class TileWater extends TileFlat { public TileWater() { - super(Textures.TILE_WATER); + super(Models.TILE_WATER); this.slowness = 0.5; this.rotates = true; this.unbreakable = true; diff --git a/src/projectzombie/tiles/TileWaterFlow.java b/src/projectzombie/tiles/TileWaterFlow.java index 258a9a2..e3c0d93 100755 --- a/src/projectzombie/tiles/TileWaterFlow.java +++ b/src/projectzombie/tiles/TileWaterFlow.java @@ -1,16 +1,16 @@ package projectzombie.tiles; import projectzombie.display.Camera; -import projectzombie.init.Textures; +import projectzombie.init.Models; import projectzombie.util.gl.GlHelpers; import projectzombie.util.math.TileState; -import projectzombie.util.math.vec.Vec2d; +import gl_engine.vec.Vec2d; public class TileWaterFlow extends TileFlat { public TileWaterFlow() { - super(Textures.TILE_WATER_FLOW); + super(Models.TILE_WATER_FLOW); this.unbreakable = true; } diff --git a/src/projectzombie/util/gl/VerticalRender.java b/src/projectzombie/util/gl/VerticalRender.java index 6e75079..fbbb1a1 100755 --- a/src/projectzombie/util/gl/VerticalRender.java +++ b/src/projectzombie/util/gl/VerticalRender.java @@ -2,7 +2,7 @@ package projectzombie.util.gl; import projectzombie.display.Camera; import projectzombie.util.gl.texture.TextureReference; -import projectzombie.util.math.vec.Vec2d; +import gl_engine.vec.Vec2d; public class VerticalRender { @@ -19,7 +19,7 @@ public class VerticalRender GlHelpers.pushMatrix(); // Get the angle between the camera and the tile - double angle_r = camera.angle.x; + double angle_r = camera.angle; // Make the tile upright GlHelpers.translate3(0.5, 0.5, 0); diff --git a/src/projectzombie/util/gl/texture/AnimationEventHandler.java b/src/projectzombie/util/gl/texture/AnimationEventHandler.java deleted file mode 100755 index 0aed504..0000000 --- a/src/projectzombie/util/gl/texture/AnimationEventHandler.java +++ /dev/null @@ -1,29 +0,0 @@ -package projectzombie.util.gl.texture; - -import mainloop.task.IMainloopTask; -import projectzombie.init.Textures; - -public class AnimationEventHandler implements IMainloopTask -{ - public static final AnimationEventHandler ANIMATION_EVENT_HANDLER = new AnimationEventHandler(); - - @Override - public boolean MainLoopDelay(long millis) { - return millis > 10; - } - - @Override - public boolean MainLoopRepeat() { - return true; - } - - @Override - public void MainLoopUpdate() - { - // Loop over the animations and update them all - for(AnimationReference r : Textures.animations) { - r.tick(); - } - } - -} diff --git a/src/projectzombie/util/gl/texture/AnimationReference.java b/src/projectzombie/util/gl/texture/AnimationReference.java deleted file mode 100755 index 2fd16ab..0000000 --- a/src/projectzombie/util/gl/texture/AnimationReference.java +++ /dev/null @@ -1,52 +0,0 @@ -package projectzombie.util.gl.texture; - -import projectzombie.init.Textures; -import projectzombie.util.math.MathHelpers; - -public class AnimationReference extends TextureReference -{ - private TextureReference[] references; - private int upto = 0; - private int speed; - public TextureReference c; - - public AnimationReference(int speed, TextureReference ... references) - { - // Store the texture references and the speed - this.references = references; - this.speed = speed; - - // Register the animation - Textures.animations.add(this); - c = references[0]; - } - - @Override - public void texCoord(double x, double y) { - c.texCoord(x, y); - } - - public void tick() - { - // Cycle through all the textures - upto += 1; - upto = MathHelpers.mod(upto, references.length * speed); - c = references[upto / speed]; - } - - @Override - public int getMaxX() { - return c.getMaxX(); - } - - @Override - public int getMaxY() { - return c.getMaxY(); - } - - @Override - public TextureReference getTextureReference(int start_x, int end_x, int start_y, int end_y) { - return c.getTextureReference(start_x, end_x, start_y, end_y); - } - -} diff --git a/src/projectzombie/util/gl/texture/TextureReference.java b/src/projectzombie/util/gl/texture/TextureReference.java index 638bc8d..4d8838b 100755 --- a/src/projectzombie/util/gl/texture/TextureReference.java +++ b/src/projectzombie/util/gl/texture/TextureReference.java @@ -2,7 +2,7 @@ package projectzombie.util.gl.texture; import static org.lwjgl.opengl.GL11.glTexCoord2f; -import projectzombie.util.math.MathHelpers; +import gl_engine.MathHelpers; public abstract class TextureReference { diff --git a/src/projectzombie/util/math/ColorRange.java b/src/projectzombie/util/math/ColorRange.java index 4bb4f8b..08ea94c 100755 --- a/src/projectzombie/util/math/ColorRange.java +++ b/src/projectzombie/util/math/ColorRange.java @@ -1,6 +1,7 @@ package projectzombie.util.math; -import projectzombie.util.math.vec.Vec3d; +import gl_engine.MathHelpers; +import gl_engine.vec.Vec3d; public class ColorRange { diff --git a/src/projectzombie/util/math/MathHelpers.java b/src/projectzombie/util/math/MathHelpers.java deleted file mode 100755 index 2801b2d..0000000 --- a/src/projectzombie/util/math/MathHelpers.java +++ /dev/null @@ -1,112 +0,0 @@ -package projectzombie.util.math; - -import projectzombie.util.math.vec.Vec2d; -import projectzombie.util.math.vec.Vec3d; - -public class MathHelpers -{ - public static final double FallSpeed = 0.00098; - - public static double squared(double x) { - return x*x; - } - - public static double pow(int c, double x) - { - double res = 1; - - for(int i=0;i b) return a; - else return b; - } - - public static double smallest(double a, double b) - { - if(a < b) return a; - else return b; - } -} diff --git a/src/projectzombie/util/math/TileState.java b/src/projectzombie/util/math/TileState.java index 1035af1..ade5a2e 100755 --- a/src/projectzombie/util/math/TileState.java +++ b/src/projectzombie/util/math/TileState.java @@ -2,7 +2,7 @@ package projectzombie.util.math; import projectzombie.init.Tiles; import projectzombie.tiles.Tile; -import projectzombie.util.math.vec.Vec3d; +import gl_engine.vec.Vec3d; public class TileState { diff --git a/src/projectzombie/util/math/astar/AStar.java b/src/projectzombie/util/math/astar/AStar.java index c4ba841..17d7a6f 100755 --- a/src/projectzombie/util/math/astar/AStar.java +++ b/src/projectzombie/util/math/astar/AStar.java @@ -2,7 +2,7 @@ package projectzombie.util.math.astar; import java.util.ArrayList; import java.util.List; -import projectzombie.util.math.vec.Vec2i; +import gl_engine.vec.Vec2i; class Node { diff --git a/src/projectzombie/util/math/astar/AStarSearcher.java b/src/projectzombie/util/math/astar/AStarSearcher.java index 9d0852c..f5b9a71 100755 --- a/src/projectzombie/util/math/astar/AStarSearcher.java +++ b/src/projectzombie/util/math/astar/AStarSearcher.java @@ -1,8 +1,8 @@ package projectzombie.util.math.astar; -import projectzombie.util.math.MathHelpers; +import gl_engine.MathHelpers; import projectzombie.util.math.TileState; -import projectzombie.util.math.vec.Vec2i; +import gl_engine.vec.Vec2i; import projectzombie.world.layer.Layer; public class AStarSearcher implements AStarSearch diff --git a/src/projectzombie/util/math/map/IMap2D.java b/src/projectzombie/util/math/map/IMap2D.java index e40a07b..d8374cb 100755 --- a/src/projectzombie/util/math/map/IMap2D.java +++ b/src/projectzombie/util/math/map/IMap2D.java @@ -1,6 +1,6 @@ package projectzombie.util.math.map; -import projectzombie.util.math.vec.Vec2i; +import gl_engine.vec.Vec2i; public interface IMap2D { diff --git a/src/projectzombie/util/math/map/Map2D.java b/src/projectzombie/util/math/map/Map2D.java index a428eca..6378726 100755 --- a/src/projectzombie/util/math/map/Map2D.java +++ b/src/projectzombie/util/math/map/Map2D.java @@ -3,7 +3,7 @@ package projectzombie.util.math.map; import java.util.ArrayList; import java.util.Iterator; -import projectzombie.util.math.vec.Vec2i; +import gl_engine.vec.Vec2i; public class Map2D implements Iterable> { diff --git a/src/projectzombie/util/math/map/Map2DElement.java b/src/projectzombie/util/math/map/Map2DElement.java index 7ed0e03..19c0a41 100755 --- a/src/projectzombie/util/math/map/Map2DElement.java +++ b/src/projectzombie/util/math/map/Map2DElement.java @@ -1,6 +1,6 @@ package projectzombie.util.math.map; -import projectzombie.util.math.vec.Vec2i; +import gl_engine.vec.Vec2i; public class Map2DElement { diff --git a/src/projectzombie/util/math/range/Range2i.java b/src/projectzombie/util/math/range/Range2i.java deleted file mode 100755 index f9a9a32..0000000 --- a/src/projectzombie/util/math/range/Range2i.java +++ /dev/null @@ -1,17 +0,0 @@ -package projectzombie.util.math.range; - -public class Range2i -{ - public int mx; - public int my; - - public Range2i(int mx, int my) - { - this.mx = mx; - this.my = my; - } - - public int maxValue() { - return mx * my; - } -} diff --git a/src/projectzombie/util/math/range/Range3i.java b/src/projectzombie/util/math/range/Range3i.java deleted file mode 100755 index 58bae15..0000000 --- a/src/projectzombie/util/math/range/Range3i.java +++ /dev/null @@ -1,19 +0,0 @@ -package projectzombie.util.math.range; - -public class Range3i -{ - public int mx; - public int my; - public int mz; - - public Range3i(int mx, int my, int mz) - { - this.mx = mx; - this.my = my; - this.mz = mz; - } - - public int maxValue() { - return mx * my * mz; - } -} diff --git a/src/projectzombie/util/math/range/Range4i.java b/src/projectzombie/util/math/range/Range4i.java deleted file mode 100755 index 9a04e9a..0000000 --- a/src/projectzombie/util/math/range/Range4i.java +++ /dev/null @@ -1,21 +0,0 @@ -package projectzombie.util.math.range; - -public class Range4i -{ - public int mx; - public int my; - public int mz; - public int mm; - - public Range4i(int mx, int my, int mz, int mm) - { - this.mx = mx; - this.my = my; - this.mz = mz; - this.mm = mm; - } - - public int maxValue() { - return mx * my * mz * mm; - } -} diff --git a/src/projectzombie/util/math/vec/Vec2d.java b/src/projectzombie/util/math/vec/Vec2d.java deleted file mode 100755 index e068d9a..0000000 --- a/src/projectzombie/util/math/vec/Vec2d.java +++ /dev/null @@ -1,94 +0,0 @@ -package projectzombie.util.math.vec; - -import bdf.classes.IBdfClassManager; -import bdf.types.BdfObject; -import projectzombie.util.math.MathHelpers; - -public class Vec2d implements IBdfClassManager -{ - public double x; - public double y; - - public Vec2d(double x, double y) - { - this.x = x; - this.y = y; - } - - public double distance(Vec2d other) { - return MathHelpers.distance2d(x, y, other.x, other.y); - } - - public static double distance(Vec2d v1, Vec2d v2) { - return v1.distance(v2); - } - - public boolean equal(Vec2d other) { - return x == other.x && y == other.y; - } - - public Vec2d add(Vec2d other) { - return new Vec2d(this.x + other.x, this.y + other.y); - } - - public Vec2d subtract(Vec2d other) { - return new Vec2d(this.x - other.x, this.y - other.y); - } - - public Vec2d multiply(Vec2d other) { - return new Vec2d(this.x * other.x, this.y * other.y); - } - - public Vec2d divide(Vec2d other) { - return new Vec2d(this.x / other.x, this.y / other.y); - } - - public Vec2d add(double v) { - return new Vec2d(this.x + v, this.y + v); - } - - public Vec2d subtract(double v) { - return new Vec2d(this.x - v, this.y - v); - } - - public Vec2d multiply(double v) { - return new Vec2d(this.x * v, this.y * v); - } - - public Vec2d divide(double v) { - return new Vec2d(this.x / v, this.y / v); - } - - public Vec2d copy() { - return new Vec2d(x, y); - } - - public double squareDistance(Vec2d other) - { - double dx = MathHelpers.positive(other.x - x); - double dy = MathHelpers.positive(other.y - y); - return MathHelpers.biggest(dx, dy); - } - - public Vec2i toInt() { - return new Vec2i(MathHelpers.floor(x), MathHelpers.floor(y)); - } - - @Override - public void BdfClassLoad(BdfObject bdf) { - double array[] = bdf.getDoubleArray(); - if(array.length < 2) return; - x = array[0]; - y = array[1]; - } - - @Override - public void BdfClassSave(BdfObject bdf) { - double array[] = {x, y}; - bdf.setDoubleArray(array); - } - - public Vec2d(BdfObject bdf) { - this.BdfClassLoad(bdf); - } -} diff --git a/src/projectzombie/util/math/vec/Vec2i.java b/src/projectzombie/util/math/vec/Vec2i.java deleted file mode 100755 index 995dd31..0000000 --- a/src/projectzombie/util/math/vec/Vec2i.java +++ /dev/null @@ -1,120 +0,0 @@ -package projectzombie.util.math.vec; - -import bdf.classes.IBdfClassManager; -import bdf.types.BdfObject; -import projectzombie.util.math.MathHelpers; -import projectzombie.util.math.range.Range2i; - -public class Vec2i implements IBdfClassManager -{ - public int x; - public int y; - - public Vec2i(int x, int y) - { - this.x = x; - this.y = y; - } - - public double distance(Vec2i other) { - return MathHelpers.distance2d(x, y, other.x, other.y); - } - - public static double distance(Vec2i v1, Vec2i v2) { - return v1.distance(v2); - } - - public int getId(Range2i range) - { - int x = MathHelpers.mod(this.x, range.mx); - int y = MathHelpers.mod(this.y, range.my); - - int id = 0; - int m = 1; - - id += x; - m = range.mx; - id += y*m; - - return id; - } - - public static Vec2i fromId(Range2i range, int id) - { - int x = MathHelpers.mod(id, range.mx); - id -= x; - id /= range.mx; - int y = MathHelpers.mod(id, range.my); - - return new Vec2i(x, y); - } - - public boolean equal(Vec2i other) { - return x == other.x && y == other.y; - } - - public Vec2i add(Vec2i other) { - return new Vec2i(this.x + other.x, this.y + other.y); - } - - public Vec2i subtract(Vec2i other) { - return new Vec2i(this.x - other.x, this.y - other.y); - } - - public Vec2i multiply(Vec2i other) { - return new Vec2i(this.x * other.x, this.y * other.y); - } - - public Vec2i divide(Vec2i other) { - return new Vec2i(this.x / other.x, this.y / other.y); - } - - public Vec2i add(int v) { - return new Vec2i(this.x + v, this.y + v); - } - - public Vec2i subtract(int v) { - return new Vec2i(this.x - v, this.y - v); - } - - public Vec2i multiply(int v) { - return new Vec2i(this.x * v, this.y * v); - } - - public Vec2i divide(int v) { - return new Vec2i(this.x / v, this.y / v); - } - - public Vec2i copy() { - return new Vec2i(x, y); - } - - public double squareDistance(Vec2i other) - { - int dx = MathHelpers.positive(other.x - x); - int dy = MathHelpers.positive(other.y - y); - return MathHelpers.biggest(dx, dy); - } - - public Vec2d toDouble() { - return new Vec2d(x, y); - } - - @Override - public void BdfClassLoad(BdfObject bdf) { - int array[] = bdf.getIntegerArray(); - if(array.length < 2) return; - x = array[0]; - y = array[1]; - } - - @Override - public void BdfClassSave(BdfObject bdf) { - int array[] = {x, y}; - bdf.setIntegerArray(array); - } - - public Vec2i(BdfObject bdf) { - this.BdfClassLoad(bdf); - } -} diff --git a/src/projectzombie/util/math/vec/Vec3d.java b/src/projectzombie/util/math/vec/Vec3d.java deleted file mode 100755 index e6d3bdd..0000000 --- a/src/projectzombie/util/math/vec/Vec3d.java +++ /dev/null @@ -1,101 +0,0 @@ -package projectzombie.util.math.vec; - -import bdf.classes.IBdfClassManager; -import bdf.types.BdfObject; -import projectzombie.util.math.MathHelpers; - -public class Vec3d implements IBdfClassManager -{ - public double x; - public double y; - public double z; - - public Vec3d(double x, double y, double z) - { - this.x = x; - this.y = y; - this.z = z; - } - - public double distance(Vec3d other) { - return MathHelpers.distance3d(x, y, z, other.x, other.y, other.z); - } - - public static double distance(Vec3d v1, Vec3d v2) { - return v1.distance(v2); - } - - public boolean equal(Vec3d other) { - return x == other.x && y == other.y && z == other.z; - } - - public Vec3d add(Vec3d other) { - return new Vec3d(this.x + other.x, this.y + other.y, this.z + other.z); - } - - public Vec3d subtract(Vec3d other) { - return new Vec3d(this.x - other.x, this.y - other.y, this.z - other.z); - } - - public Vec3d multiply(Vec3d other) { - return new Vec3d(this.x * other.x, this.y * other.y, this.z * other.z); - } - - public Vec3d divide(Vec3d other) { - return new Vec3d(this.x / other.x, this.y / other.y, this.z / other.z); - } - - public Vec3d add(double v) { - return new Vec3d(this.x + v, this.y + v, this.z + v); - } - - public Vec3d subtract(double v) { - return new Vec3d(this.x - v, this.y - v, this.z - v); - } - - public Vec3d multiply(double v) { - return new Vec3d(this.x * v, this.y * v, this.z * v); - } - - public Vec3d divide(double v) { - return new Vec3d(this.x / v, this.y / v, this.z / v); - } - - public Vec3d copy() { - return new Vec3d(x, y, z); - } - - public double squareDistance(Vec3d other) - { - double dx = MathHelpers.positive(other.x - x); - double dy = MathHelpers.positive(other.y - y); - double dz = MathHelpers.positive(other.z - z); - - if(dx > dy) return dx; - if(dy > dz) return dy; - else return dz; - } - - public Vec3i toInt() { - return new Vec3i(MathHelpers.floor(x), MathHelpers.floor(y), MathHelpers.floor(z)); - } - - @Override - public void BdfClassLoad(BdfObject bdf) { - double array[] = bdf.getDoubleArray(); - if(array.length < 3) return; - x = array[0]; - y = array[1]; - z = array[2]; - } - - @Override - public void BdfClassSave(BdfObject bdf) { - double array[] = {x, y, z}; - bdf.setDoubleArray(array); - } - - public Vec3d(BdfObject bdf) { - this.BdfClassLoad(bdf); - } -} diff --git a/src/projectzombie/util/math/vec/Vec3i.java b/src/projectzombie/util/math/vec/Vec3i.java deleted file mode 100755 index 646a459..0000000 --- a/src/projectzombie/util/math/vec/Vec3i.java +++ /dev/null @@ -1,133 +0,0 @@ -package projectzombie.util.math.vec; - -import bdf.classes.IBdfClassManager; -import bdf.types.BdfObject; -import projectzombie.util.math.MathHelpers; -import projectzombie.util.math.range.Range3i; - -public class Vec3i implements IBdfClassManager -{ - public int x; - public int y; - public int z; - - public Vec3i(int x, int y, int z) - { - this.x = x; - this.y = y; - this.z = z; - } - - public double distance(Vec3i other) { - return MathHelpers.distance3d(x, y, z, other.x, other.y, other.z); - } - - public static double distance(Vec3i v1, Vec3i v2) { - return v1.distance(v2); - } - - public int getId(Range3i range) - { - int x = MathHelpers.mod(this.x, range.mx); - int y = MathHelpers.mod(this.y, range.my); - int z = MathHelpers.mod(this.z, range.mz); - - int id = 0; - int m = 1; - - id += x; - m = range.mx; - id += y*m; - m *= range.my; - id += z*m; - - return id; - } - - public static Vec3i fromId(Range3i range, int id) - { - int x = MathHelpers.mod(id, range.mx); - id -= x; - id /= range.mx; - int y = MathHelpers.mod(id, range.my); - id -= y; - id /= range.my; - int z = MathHelpers.mod(id, range.mz); - - return new Vec3i(x, y, z); - } - - public boolean equal(Vec3i other) { - return x == other.x && y == other.y && z == other.z; - } - - public Vec3i add(Vec3i other) { - return new Vec3i(this.x + other.x, this.y + other.y, this.z + other.z); - } - - public Vec3i subtract(Vec3i other) { - return new Vec3i(this.x - other.x, this.y - other.y, this.z - other.z); - } - - public Vec3i multiply(Vec3i other) { - return new Vec3i(this.x * other.x, this.y * other.y, this.z * other.z); - } - - public Vec3i divide(Vec3i other) { - return new Vec3i(this.x / other.x, this.y / other.y, this.z / other.z); - } - - public Vec3i add(int v) { - return new Vec3i(this.x + v, this.y + v, this.z + v); - } - - public Vec3i subtract(int v) { - return new Vec3i(this.x - v, this.y - v, this.z - v); - } - - public Vec3i multiply(int v) { - return new Vec3i(this.x * v, this.y * v, this.z * v); - } - - public Vec3i divide(int v) { - return new Vec3i(this.x / v, this.y / v, this.z / v); - } - - public Vec3i copy() { - return new Vec3i(x, y, z); - } - - public int squareDistance(Vec3i other) - { - int dx = MathHelpers.positive(other.x - x); - int dy = MathHelpers.positive(other.y - y); - int dz = MathHelpers.positive(other.z - z); - - if(dx > dy) return dx; - if(dy > dz) return dy; - else return dz; - } - - public Vec3d toDouble() { - return new Vec3d(x, y, z); - } - - @Override - public void BdfClassLoad(BdfObject bdf) { - int array[] = bdf.getIntegerArray(); - if(array.length < 3) return; - x = array[0]; - y = array[1]; - z = array[2]; - } - - @Override - public void BdfClassSave(BdfObject bdf) { - int array[] = {x, y, z}; - bdf.setIntegerArray(array); - } - - public Vec3i(BdfObject bdf) { - this.BdfClassLoad(bdf); - } -} diff --git a/src/projectzombie/util/math/vec/Vec4d.java b/src/projectzombie/util/math/vec/Vec4d.java deleted file mode 100755 index 09f4038..0000000 --- a/src/projectzombie/util/math/vec/Vec4d.java +++ /dev/null @@ -1,110 +0,0 @@ -package projectzombie.util.math.vec; - -import bdf.classes.IBdfClassManager; -import bdf.types.BdfObject; -import projectzombie.util.math.MathHelpers; - -public class Vec4d implements IBdfClassManager -{ - public double x; - public double y; - public double z; - public double m; - - public Vec4d(double x, double y, double z, double m) - { - this.x = x; - this.y = y; - this.z = z; - this.m = m; - } - - public double distance(Vec4d other) { - return Math.sqrt( - MathHelpers.squared(this.x - other.x) + - MathHelpers.squared(this.y - other.y) + - MathHelpers.squared(this.z - other.z) + - MathHelpers.squared(this.m - other.m)); - } - - public static double distance(Vec4d v1, Vec4d v2) { - return v1.distance(v2); - } - - public boolean equal(Vec4d other) { - return x == other.x && y == other.y && z == other.z && m == other.m; - } - - public Vec4d add(Vec4d other) { - return new Vec4d(this.x + other.x, this.y + other.y, this.z + other.z, this.m + other.m); - } - - public Vec4d subtract(Vec4d other) { - return new Vec4d(this.x - other.x, this.y - other.y, this.z - other.z, this.m - other.m); - } - - public Vec4d multiply(Vec4d other) { - return new Vec4d(this.x * other.x, this.y * other.y, this.z * other.z, this.m * other.m); - } - - public Vec4d divide(Vec4d other) { - return new Vec4d(this.x / other.x, this.y / other.y, this.z / other.z, this.m / other.m); - } - - public Vec4d add(double v) { - return new Vec4d(this.x + v, this.y + v, this.z + v, this.m + v); - } - - public Vec4d subtract(double v) { - return new Vec4d(this.x - v, this.y - v, this.z - v, this.m - v); - } - - public Vec4d multiply(double v) { - return new Vec4d(this.x * v, this.y * v, this.z * v, this.m * v); - } - - public Vec4d divide(double v) { - return new Vec4d(this.x / v, this.y / v, this.z / v, this.m / v); - } - - public Vec4d copy() { - return new Vec4d(x, y, z, m); - } - - public double squareDistance(Vec4d other) - { - double dx = MathHelpers.positive(other.x - x); - double dy = MathHelpers.positive(other.y - y); - double dz = MathHelpers.positive(other.z - z); - double dm = MathHelpers.positive(other.m - m); - - if(dx > dy) return dx; - if(dy > dz) return dy; - if(dz > dm) return dz; - else return dm; - } - - public Vec4i toInt() { - return new Vec4i(MathHelpers.floor(x), MathHelpers.floor(y), MathHelpers.floor(z), MathHelpers.floor(m)); - } - - @Override - public void BdfClassLoad(BdfObject bdf) { - double array[] = bdf.getDoubleArray(); - if(array.length < 4) return; - x = array[0]; - y = array[1]; - z = array[2]; - m = array[3]; - } - - @Override - public void BdfClassSave(BdfObject bdf) { - double array[] = {x, y, z, m}; - bdf.setDoubleArray(array); - } - - public Vec4d(BdfObject bdf) { - this.BdfClassLoad(bdf); - } -} diff --git a/src/projectzombie/util/math/vec/Vec4i.java b/src/projectzombie/util/math/vec/Vec4i.java deleted file mode 100755 index d44a3fc..0000000 --- a/src/projectzombie/util/math/vec/Vec4i.java +++ /dev/null @@ -1,147 +0,0 @@ -package projectzombie.util.math.vec; - -import bdf.classes.IBdfClassManager; -import bdf.types.BdfObject; -import projectzombie.util.math.MathHelpers; -import projectzombie.util.math.range.Range4i; - -public class Vec4i implements IBdfClassManager { - public int x; - public int y; - public int z; - public int m; - - public Vec4i(int x, int y, int z, int m) - { - this.x = x; - this.y = y; - this.z = z; - this.m = m; - } - - public double distance(Vec4i other) { - return Math.sqrt( - MathHelpers.squared(this.x - other.x) + - MathHelpers.squared(this.y - other.y) + - MathHelpers.squared(this.z - other.z) + - MathHelpers.squared(this.m - other.m)); - } - - public static double distance(Vec4i v1, Vec4i v2) { - return v1.distance(v2); - } - - public int getId(Range4i range) - { - int x = MathHelpers.mod(this.x, range.mx); - int y = MathHelpers.mod(this.y, range.my); - int z = MathHelpers.mod(this.z, range.mz); - int m = MathHelpers.mod(this.m, range.mm); - - int id = 0; - int mu = 1; - - id += x; - mu = range.mx; - id += y*mu; - mu *= range.my; - id += z*mu; - mu *= range.mz; - id += m*mu; - - return id; - } - - public static Vec4i fromId(Range4i range, int id) - { - int x = MathHelpers.mod(id, range.mx); - id -= x; - id /= range.mx; - int y = MathHelpers.mod(id, range.my); - id -= y; - id /= range.my; - int z = MathHelpers.mod(id, range.mz); - id -= z; - id /= range.mz; - int m = MathHelpers.mod(id, range.mm); - - return new Vec4i(x, y, z, m); - } - - public boolean equal(Vec4i other) { - return x == other.x && y == other.y && z == other.z; - } - - public Vec4i add(Vec4i other) { - return new Vec4i(this.x + other.x, this.y + other.y, this.z + other.z, this.m + other.m); - } - - public Vec4i subtract(Vec4i other) { - return new Vec4i(this.x - other.x, this.y - other.y, this.z - other.z, this.m - other.m); - } - - public Vec4i multiply(Vec4i other) { - return new Vec4i(this.x * other.x, this.y * other.y, this.z * other.z, this.m * other.m); - } - - public Vec4i divide(Vec4i other) { - return new Vec4i(this.x / other.x, this.y / other.y, this.z / other.z, this.m / other.m); - } - - public Vec4i add(int v) { - return new Vec4i(this.x + v, this.y + v, this.z + v, this.m + v); - } - - public Vec4i subtract(int v) { - return new Vec4i(this.x - v, this.y - v, this.z - v, this.m - v); - } - - public Vec4i multiply(int v) { - return new Vec4i(this.x * v, this.y * v, this.z * v, this.m * v); - } - - public Vec4i divide(int v) { - return new Vec4i(this.x / v, this.y / v, this.z / v, this.m / v); - } - - public Vec4i copy() { - return new Vec4i(x, y, z, m); - } - - public int squareDistance(Vec4i other) - { - int dx = MathHelpers.positive(other.x - x); - int dy = MathHelpers.positive(other.y - y); - int dz = MathHelpers.positive(other.z - z); - int dm = MathHelpers.positive(other.m - m); - - if(dx > dy) return dx; - if(dy > dz) return dy; - if(dz > dm) return dz; - else return dm; - } - - public Vec4d toDouble() { - return new Vec4d(x, y, z, m); - } - - @Override - public void BdfClassLoad(BdfObject bdf) { - int array[] = bdf.getIntegerArray(); - if(array.length < 4) return; - x = array[0]; - y = array[1]; - z = array[2]; - m = array[3]; - } - - @Override - public void BdfClassSave(BdfObject bdf) { - int array[] = {x, y, z, m}; - bdf.setIntegerArray(array); - } - - public Vec4i(BdfObject bdf) { - this.BdfClassLoad(bdf); - } -} diff --git a/src/projectzombie/world/chunk/Chunk.java b/src/projectzombie/world/chunk/Chunk.java index 374f416..75d1c2a 100755 --- a/src/projectzombie/world/chunk/Chunk.java +++ b/src/projectzombie/world/chunk/Chunk.java @@ -17,13 +17,13 @@ import projectzombie.entity.particle.ParticleBreak; import projectzombie.init.Tiles; import projectzombie.tiles.Tile; import projectzombie.util.gl.GlHelpers; -import projectzombie.util.math.MathHelpers; +import gl_engine.MathHelpers; import projectzombie.util.math.TileState; import projectzombie.util.math.random.RandomHelpers; -import projectzombie.util.math.range.Range2i; -import projectzombie.util.math.vec.Vec2d; -import projectzombie.util.math.vec.Vec2i; -import projectzombie.util.math.vec.Vec3d; +import gl_engine.range.Range2i; +import gl_engine.vec.Vec2d; +import gl_engine.vec.Vec2i; +import gl_engine.vec.Vec3d; import projectzombie.world.layer.Layer; public class Chunk implements IBdfClassManager diff --git a/src/projectzombie/world/chunk/ChunkEmpty.java b/src/projectzombie/world/chunk/ChunkEmpty.java index 9de7a54..90c0912 100755 --- a/src/projectzombie/world/chunk/ChunkEmpty.java +++ b/src/projectzombie/world/chunk/ChunkEmpty.java @@ -7,9 +7,9 @@ import bdf.types.BdfObject; import projectzombie.display.Camera; import projectzombie.entity.Entity; import projectzombie.util.math.TileState; -import projectzombie.util.math.vec.Vec2d; -import projectzombie.util.math.vec.Vec2i; -import projectzombie.util.math.vec.Vec3d; +import gl_engine.vec.Vec2d; +import gl_engine.vec.Vec2i; +import gl_engine.vec.Vec3d; public class ChunkEmpty extends Chunk { diff --git a/src/projectzombie/world/chunk/ChunkEventHandler.java b/src/projectzombie/world/chunk/ChunkEventHandler.java index dcc7d07..5ac887c 100755 --- a/src/projectzombie/world/chunk/ChunkEventHandler.java +++ b/src/projectzombie/world/chunk/ChunkEventHandler.java @@ -3,9 +3,9 @@ package projectzombie.world.chunk; import mainloop.task.IMainloopTask; import projectzombie.Main; import projectzombie.display.lighting.TileLighting; -import projectzombie.util.math.MathHelpers; +import gl_engine.MathHelpers; import projectzombie.util.math.map.Map2DElement; -import projectzombie.util.math.vec.Vec2i; +import gl_engine.vec.Vec2i; import projectzombie.world.layer.Layer; public class ChunkEventHandler implements IMainloopTask diff --git a/src/projectzombie/world/layer/Layer.java b/src/projectzombie/world/layer/Layer.java index 963c78b..4a783d7 100755 --- a/src/projectzombie/world/layer/Layer.java +++ b/src/projectzombie/world/layer/Layer.java @@ -11,12 +11,12 @@ import projectzombie.Main; import projectzombie.display.Camera; import projectzombie.entity.Entity; import projectzombie.init.LayerGenerators; -import projectzombie.util.math.MathHelpers; +import gl_engine.MathHelpers; import projectzombie.util.math.TileState; import projectzombie.util.math.map.Map2D; import projectzombie.util.math.map.Map2DElement; -import projectzombie.util.math.vec.Vec2d; -import projectzombie.util.math.vec.Vec2i; +import gl_engine.vec.Vec2d; +import gl_engine.vec.Vec2i; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.layergen.LayerGen; diff --git a/src/projectzombie/world/layer/layergen/LayerGen.java b/src/projectzombie/world/layer/layergen/LayerGen.java index 9905c2d..e233253 100755 --- a/src/projectzombie/world/layer/layergen/LayerGen.java +++ b/src/projectzombie/world/layer/layergen/LayerGen.java @@ -5,7 +5,7 @@ import java.util.Random; import projectzombie.util.math.ColorRange; import projectzombie.util.math.TileState; import projectzombie.util.math.map.IMap2D; -import projectzombie.util.math.vec.Vec2i; +import gl_engine.vec.Vec2i; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; diff --git a/src/projectzombie/world/layer/layergen/LayerGenBossArena.java b/src/projectzombie/world/layer/layergen/LayerGenBossArena.java index e770f81..57863f0 100755 --- a/src/projectzombie/world/layer/layergen/LayerGenBossArena.java +++ b/src/projectzombie/world/layer/layergen/LayerGenBossArena.java @@ -6,12 +6,12 @@ import projectzombie.entity.EntityBoss; import projectzombie.entity.player.EntityPlayer; import projectzombie.init.Tiles; import projectzombie.util.math.ColorRange; -import projectzombie.util.math.MathHelpers; +import gl_engine.MathHelpers; import projectzombie.util.math.TileState; import projectzombie.util.math.random.RandomHelpers; -import projectzombie.util.math.vec.Vec2d; -import projectzombie.util.math.vec.Vec2i; -import projectzombie.util.math.vec.Vec3d; +import gl_engine.vec.Vec2d; +import gl_engine.vec.Vec2i; +import gl_engine.vec.Vec3d; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; diff --git a/src/projectzombie/world/layer/layergen/LayerGenCaves.java b/src/projectzombie/world/layer/layergen/LayerGenCaves.java index 28ba3f6..e66f6ff 100755 --- a/src/projectzombie/world/layer/layergen/LayerGenCaves.java +++ b/src/projectzombie/world/layer/layergen/LayerGenCaves.java @@ -7,13 +7,13 @@ import projectzombie.entity.Entity; import projectzombie.entity.EntityZombie; import projectzombie.init.Tiles; import projectzombie.util.math.ColorRange; -import projectzombie.util.math.MathHelpers; +import gl_engine.MathHelpers; import projectzombie.util.math.TileState; import projectzombie.util.math.random.OpenSimplexNoise; import projectzombie.util.math.random.RandomHelpers; -import projectzombie.util.math.vec.Vec2d; -import projectzombie.util.math.vec.Vec2i; -import projectzombie.util.math.vec.Vec3d; +import gl_engine.vec.Vec2d; +import gl_engine.vec.Vec2i; +import gl_engine.vec.Vec3d; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; diff --git a/src/projectzombie/world/layer/layergen/LayerGenEarth.java b/src/projectzombie/world/layer/layergen/LayerGenEarth.java index fb63ad7..ab957ca 100755 --- a/src/projectzombie/world/layer/layergen/LayerGenEarth.java +++ b/src/projectzombie/world/layer/layergen/LayerGenEarth.java @@ -11,9 +11,9 @@ import projectzombie.util.math.ColorRange; import projectzombie.util.math.TileState; import projectzombie.util.math.random.OpenSimplexNoise; import projectzombie.util.math.random.RandomHelpers; -import projectzombie.util.math.vec.Vec2d; -import projectzombie.util.math.vec.Vec2i; -import projectzombie.util.math.vec.Vec3d; +import gl_engine.vec.Vec2d; +import gl_engine.vec.Vec2i; +import gl_engine.vec.Vec3d; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; diff --git a/src/projectzombie/world/layer/layergen/LayerGenLavaCaves.java b/src/projectzombie/world/layer/layergen/LayerGenLavaCaves.java index ec5a918..f0cec2f 100755 --- a/src/projectzombie/world/layer/layergen/LayerGenLavaCaves.java +++ b/src/projectzombie/world/layer/layergen/LayerGenLavaCaves.java @@ -10,9 +10,9 @@ import projectzombie.util.math.ColorRange; import projectzombie.util.math.TileState; import projectzombie.util.math.random.OpenSimplexNoise; import projectzombie.util.math.random.RandomHelpers; -import projectzombie.util.math.vec.Vec2d; -import projectzombie.util.math.vec.Vec2i; -import projectzombie.util.math.vec.Vec3d; +import gl_engine.vec.Vec2d; +import gl_engine.vec.Vec2i; +import gl_engine.vec.Vec3d; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; diff --git a/src/projectzombie/world/layer/layergen/LayerGenRememberPlayerPos.java b/src/projectzombie/world/layer/layergen/LayerGenRememberPlayerPos.java index 0554058..8a69dfb 100755 --- a/src/projectzombie/world/layer/layergen/LayerGenRememberPlayerPos.java +++ b/src/projectzombie/world/layer/layergen/LayerGenRememberPlayerPos.java @@ -1,7 +1,7 @@ package projectzombie.world.layer.layergen; import projectzombie.entity.player.EntityPlayer; -import projectzombie.util.math.vec.Vec2d; +import gl_engine.vec.Vec2d; public interface LayerGenRememberPlayerPos { diff --git a/src/resources/texture/char/char_0.png b/src/resources/texture/char/char_0.png new file mode 100644 index 0000000000000000000000000000000000000000..320fec69a5a98f0e4148a634d3cedb26e8123818 GIT binary patch literal 612 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7n=_rA13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LE%s}^6GK;emixjG$P7FnWQ0g6|+)>_So`NirhHAzI={ovLI z4~{2YJ$N)SoITu8;15G#QAtqAM4|uFMWT*W6x``A|1MYlo?&5N;;gHtd>OlPmrdq0 zoE^X_fo zJ@@-aVA!P4N5zi}C+m6qIZ=A_vH3aI>8$f4O^shxKGN72@g`wubL7b@9m_kCS1k+P zH{ol<(>+HcS6_*EJ?~HJ#69~qohhAl*ds~MdxCYWU|=ut^mS!_!p6aDpkJ#pyMuv&p~Tb0F~s6@@}FHr?98eSosCWo8yR(8FvTRk z`_GyAYg?AOa+r9+<(@S&RP<}2w@wyZCONY=Pf*y*F=ktmu)0LYjzcVJ=UjTyY8bt5 zmo&(9r0i}8XfP6#zOS;AA$mb!>(2kj)y{Ryljc-SEt$S)!mN^uj0{4Dt?%9`e|nsO Pfq}u()z4*}Q$iB}atHxE literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_1.png b/src/resources/texture/char/char_1.png new file mode 100644 index 0000000000000000000000000000000000000000..f455086ad7576d7c3c5f5d938e13c45934168d8a GIT binary patch literal 615 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7n=_rA13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LE%s}^6GK;emixjG$P7FnWQ0g6|+)>_So`NirhHAzI={ovLI z4~{2YJ$N)SoITu8;15G#QAtqAM4|uFMWT*W6x``A|1MYlo?&5N;;gHtd>OlPmrdq0 zoE^X_fo zJ@@-aVA!P4N5zi}C+m6qIZ=A_vH3aI>8$f4O^shxKGN72@g`wubL7b@9m_kCS1k+P zH{ol<(>+HcS6_*EJ?~HJ#69~qohhAl*ds~MdxCYWU|=ut^mS!_!p6aD$Q<_km=*&AL%FAmV~EA+qd}fr2NZaGn$+!|@&8G#b^N@c zYU}cb6CAfV&T8^Frz!r4F|TwxVfl_ZktNA5_fTqdR^S_jXC*33!h+Wq#dJGejq?z= zG5NRSkLN_So`NirhHAzI={ovLI z4~{2YJ$N)SoITu8;15G#QAtqAM4|uFMWT*W6x``A|1MYlo?&5N;;gHtd>OlPmrdq0 zoE^X_fo zJ@@-aVA!P4N5zi}C+m6qIZ=A_vH3aI>8$f4O^shxKGN72@g`wubL7b@9m_kCS1k+P zH{ol<(>+HcS6_*EJ?~HJ#69~qohhAl*ds~MdxCYWU|=ut^mS!_!p6aDD7Z9kdlCZ!L!+mQV~EA+rIQZw9#G(LUHI`yQr?5U(k82j zy_dSpGL8g2T$J?hIqQMndkzS(OB~L5@Z<1t2QJ=eQ+!!egcumMaj!QL`XzDie{=02 zuRV8N@@!69_wJat#o8_F(Ilf!c9}dcuFHA+4$wY4;Wg)ybLWp}Gfir_WHP5^ZAA7P fo_zsJD;Ub;^fk9QSs!L#U|{fc^>bP0l+XkK0&xyx literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_3.png b/src/resources/texture/char/char_3.png new file mode 100644 index 0000000000000000000000000000000000000000..504a5363509ac44e90bb495d6ef36c6ffcce1f28 GIT binary patch literal 635 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7n=_rA13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LE%s}^6GK;emixjG$P7FnWQ0g6|+)>_So`NirhHAzI={ovLI z4~{2YJ$N)SoITu8;15G#QAtqAM4|uFMWT*W6x``A|1MYlo?&5N;;gHtd>OlPmrdq0 zoE^X_fo zJ@@-aVA!P4N5zi}C+m6qIZ=A_vH3aI>8$f4O^shxKGN72@g`wubL7b@9m_kCS1k+P zH{ol<(>+HcS6_*EJ?~HJ#69~qohhAl*ds~MdxCYWU|=ut^mS!_!p6aDC};X`)n^6_9E zt`Ae+BzuhMity>V$E{>QafAmeoDfL`z^MU oIrsW*uD;0hM`(rpo_So`NirhHAzI={ovLI z4~{2YJ$N)SoITu8;15G#QAtqAM4|uFMWT*W6x``A|1MYlo?&5N;;gHtd>OlPmrdq0 zoE^X_fo zJ@@-aVA!P4N5zi}C+m6qIZ=A_vH3aI>8$f4O^shxKGN72@g`wubL7b@9m_kCS1k+P zH{ol<(>+HcS6_*EJ?~HJ#69~qohhAl*ds~MdxCYWU|=ut^mS!_!p6aDsM#CC|A&Erq07_7F~s8Z+Thc?2NXD1FHi2?*=T)@^HsuE zFMqR+gp4)f%BOy>te7wUriWp6vh;%qturR;OpHj@4h?^h@h|0JZr;*Gt|B~Tn{O^| zs7lrr6^&+2jHrCqt|P$tV45xCkvSH|Mhg_So`NirhHAzI={ovLI z4~{2YJ$N)SoITu8;15G#QAtqAM4|uFMWT*W6x``A|1MYlo?&5N;;gHtd>OlPmrdq0 zoE^X_fo zJ@@-aVA!P4N5zi}C+m6qIZ=A_vH3aI>8$f4O^shxKGN72@g`wubL7b@9m_kCS1k+P zH{ol<(>+HcS6_*EJ?~HJ#69~qohhAl*ds~MdxCYWU|=ut^mS!_!p6aDXgV`Ccryb7L%pYqV~EA+tw9@k4=C^y3kdgrWVD~geJU|^ zsqhIW7ln+?E&@q8>YrlF{SG}a=wsB8kNJ?g(7njV-ta=5Vw>*uT`#*C46?4hYv)mm zgTe~DWM4f*$D@T literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_6.png b/src/resources/texture/char/char_6.png new file mode 100644 index 0000000000000000000000000000000000000000..3abb94cb077f15ecd7f6275d9ae588efc0a1e809 GIT binary patch literal 633 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7n=_rA13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LE%s}^6GK;emixjG$P7FnWQ0g6|+)>_So`NirhHAzI={ovLI z4~{2YJ$N)SoITu8;15G#QAtqAM4|uFMWT*W6x``A|1MYlo?&5N;;gHtd>OlPmrdq0 zoE^X_fo zJ@@-aVA!P4N5zi}C+m6qIZ=A_vH3aI>8$f4O^shxKGN72@g`wubL7b@9m_kCS1k+P zH{ol<(>+HcS6_*EJ?~HJ#69~qohhAl*ds~MdxCYWU|=ut^mS!_!p6aD#KyZIF^z$Nq0`gFF~s8Z(qKov0}33QyVdQV@&9>TbFk*d zo?YEiZUNISc5^c2vKG#tzWG6c+YIRnISx&;rEI3+kq6r!ZDk7klcZ?*S>}7Y+C-Azd9wC2Pe>^6>vnYAz2zg=6bKaGKbfx*+&&t;ucLK6Ukj}G_% literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_7.png b/src/resources/texture/char/char_7.png new file mode 100644 index 0000000000000000000000000000000000000000..0ab2f6309fef02d6a72da34b0fa285c48bf92a99 GIT binary patch literal 612 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7n=_rA13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LE%s}^6GK;emixjG$P7FnWQ0g6|+)>_So`NirhHAzI={ovLI z4~{2YJ$N)SoITu8;15G#QAtqAM4|uFMWT*W6x``A|1MYlo?&5N;;gHtd>OlPmrdq0 zoE^X_fo zJ@@-aVA!P4N5zi}C+m6qIZ=A_vH3aI>8$f4O^shxKGN72@g`wubL7b@9m_kCS1k+P zH{ol<(>+HcS6_*EJ?~HJ#69~qohhAl*ds~MdxCYWU|=ut^mS!_!p6aDB=S#EK#zfep~Tb0F~s8Z-e5<*1_hqiVtzF}@*mu58tr`6 zS1HZpc24Nr>y&w2)ao=Jzl7foc@74F;$7*T*UK(!YW8Adn51}Y&Xc9$o;#ORozs4@ zQb08_YJJlm$FlVsSN`*#xaMZ*g&bA;t49P&wF55g-?;trw96M(zvPg!Tw>aIqxwS@ Q0|Nttr>mdKI;Vst0GfjZ00000 literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_8.png b/src/resources/texture/char/char_8.png new file mode 100644 index 0000000000000000000000000000000000000000..11f5aae41374668010eec9cf038569829ef5bb1e GIT binary patch literal 637 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7n=_rA13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LE%s}^6GK;emixjG$P7FnWQ0g6|+)>_So`NirhHAzI={ovLI z4~{2YJ$N)SoITu8;15G#QAtqAM4|uFMWT*W6x``A|1MYlo?&5N;;gHtd>OlPmrdq0 zoE^X_fo zJ@@-aVA!P4N5zi}C+m6qIZ=A_vH3aI>8$f4O^shxKGN72@g`wubL7b@9m_kCS1k+P zH{ol<(>+HcS6_*EJ?~HJ#69~qohhAl*ds~MdxCYWU|=ut^mS!_!p6aDq_|?$6#}JFtODB8t9Z=wKIk@9f(!B%L+tf4o zujRdTJ3Hmq!a^bOHiq+zKX36xOK^Q?pC4{r%rRLMD?e<#k^QIVd@bU-Nb9 zGQIbOL9o6uK%kgi@2-hiP(`aAoAXX{H^U%*-!(rvZYdWTA4$>>Q&p1mODvtLYVF^w pyVj&<|HVzGUTNkFmtI)J{`;HNHLDtRO9lo822WQ%mvv4FO#mY63%LLQ literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_9.png b/src/resources/texture/char/char_9.png new file mode 100644 index 0000000000000000000000000000000000000000..40f8b00bc765319b70e686d73a1255a9b39aea65 GIT binary patch literal 629 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7n=_rA13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LE%s}^6GK;emixjG$P7FnWQ0g6|+)>_So`NirhHAzI={ovLI z4~{2YJ$N)SoITu8;15G#QAtqAM4|uFMWT*W6x``A|1MYlo?&5N;;gHtd>OlPmrdq0 zoE^X_fo zJ@@-aVA!P4N5zi}C+m6qIZ=A_vH3aI>8$f4O^shxKGN72@g`wubL7b@9m_kCS1k+P zH{ol<(>+HcS6_*EJ?~HJ#69~qohhAl*ds~MdxCYWU|=ut^mS!_!p6aDWVluKNG1aVL#wBYV~EA+r9lS;4=8Xb&(jw#W-ebNeC6P) z>HGF<4!ICqr_ia`@O;-x6&cxMhK=thPf+sz<>(Sp{8KyNfPf{xD946Btc%*6yE5K8 z^H+7o@&-O678R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pR3wCqWrxO?$m|{F#978NlyI#KQKRZ>T;p6?^PMP5vJlr}L z4ob-P`7TQ8IL6%Tp7!r(Rf3Pt5#O0JgKsb}hTFMihG%e>ZMk44w~>7~v}Ds1zR0+z4=n$Fcp@pUFUWc+RBYPK>XW6jdHf1{L#AFd>kreApS;`s z|Niwqi>5x#waaZ`uy+kKnf82@AFHwDuEu8XwB;4iO7EU8^4Rk4-a#4eYEA~L`>q$C zy?{nMt@}$}2CHF4o7G^gk&HR1Y#^!}(Wu0>9x(WWRoPEY%;ptm~@#l*!tJ!;2HB5}Jo-q4(pomq@n#=1hJJiG|&s|#T$@o9C zGbqN?^2XDGo!kBX^DEl?omkC3IZN`$+G_Mu(@OT=ycdr9xD=QC znmJRww_@|jBPLt5%EdEf0<$JcFTVSzqT8!Ayj5<=Rj;nI^^RYZ&VR6Qk7hYj@AS9l zv-79#nWmG}_uo{v^;kUR&e2lipW=lg>W4#lmR0_1x}{hvA-Oan_3`v0|7O=`#Hsvc zSD&2qF|So(eyz*SsXWJK#4e0k(q>(3a!N!_Mf**DLFJ^FC;!iT{R&*SKee2Jfq}u( L)z4*}Q$iB}O2GY9 literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_cbracket.png b/src/resources/texture/char/char_cbracket.png new file mode 100644 index 0000000000000000000000000000000000000000..1274bd59b75070bec97ca7084a01251122e26516 GIT binary patch literal 1100 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pROEH(eFUkxIOwpb$jv*GOeJ|hlpUo8Ls%uG>5;N=ZF#!jF4*f9f~=c&=M=?o38m=WUFMQ|B)hIURLuLf+!_;_pSyU$s=P z+*dj8$(#p_>jG8?JiU2mK~Zx?!#BmfmR^%{^oq+nEuI~}KclasizRxygx05&)|zQ= zy-!s%zsfD!{$i2*O{SL}zwC;=-`H01S8O}{C$?!uxbL#(75}E(d~DJ7zDePPQtv|> z^W{HR`|axga9-9fdQs_#S89oE@$ZUDpYH!<*7rE6&y4MKr-jeQtmy?TTSbdhr#-7I z_mtZ_e?u5YQ@!HOz<0H0UyCJ&x}E0n6Dpf{^73@$$%(s9J~_U|eo5UauY9JRe{K5s z%Pg#xRUd7Rw_G{#)l0=UsoA|EVyou7xtwPxBh(w`o_STmZ}Qnm&Y4{sD%#)8R*C0g zKHM{0*T`l7&+$rokS6t2t&@kRNPv-J>M*$!GOVicnCN1(} zdpMcf?RciCX zH`=jZ+TIG{0ww9jjpVa+_Jz(vX&*ocv#26SD7(8A5 KT-G@yGywpx0{>kA literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_colon.png b/src/resources/texture/char/char_colon.png new file mode 100644 index 0000000000000000000000000000000000000000..6c00e830123126aa81ac9293006d401681959709 GIT binary patch literal 1104 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRGwHp{rvx%EFvWYiIEGl9_Prb(JUdjP?cwX+9v&VXx+%<1bVFX#bb?7d>|~UI*xuFc^wu-e6(o)M#l@k<*clb$|UN^7EeW zf7iXxtU59M7R`;lTE|+vIoVKH2ex3T6=?89D z2&?k_DWA8Wqv3Z)@~h)DA6xQfXC!yc)~*WwvR-oM;kdcg{ zs_w!g=HW|@pAd;WUeH#p`l;OM>Pvp6l!%{Q?yDcxMQ7N4DV@Di^PiP!*5p?cWmKL1 z+9p?8$#SW#$`08c8KES#tk%tD>cdT*m5o7mFLv21id2v1`aMA+EqCtERJTbg!XeK* z5;L}*e&lWJRZkk@f=Sn;|Q1-AR8@FJ-=u{|kTJ!%s>-&ik=u ze|+b8W5ZMb74hu}Ju_ABi9CKW+oDe`-Ew{KK6$w{c^{r9N_@=!yZyoIj^}T7GB7YO Nc)I$ztaD0e0sv<&0^a}t literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_comma.png b/src/resources/texture/char/char_comma.png new file mode 100644 index 0000000000000000000000000000000000000000..bc5b52453ef741964ccf22e752c52c6eb1b58d6f GIT binary patch literal 1103 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRGxbR)UR+~fV2bl}aSX9I?RxokaCE8&>xcV4JuF@}7HD#A z^=v%lx}xlq$IQYxFPrnf^?!3bp0x4G!Yu)eg1osqRM-w3^;n={H)rL$<$pI_TeJ7t zt&2i=20>~kH*fX)$#;@rd1%#dO}`CW58Y9^t7re`P>EBJ!mWMh0~&j$KPi3_6Ld&) zncd<|zU;LpdMEf=)EqzT`Yr6_fzQ)zW+}fCGM`a*;(h+keM;@hG0L|SesrDRza&i6 z-tos{|9x>wBA;FrQ+&4k{mz{aKTWYZ_F3eY<D5pW{devk7vwf^OxJa?@Zw2)y11?W!?)F6u4AQ zS~_1->GEag7pcEXvrhaG`C2~5Op;G!agEV2$JS?hha-zDe+AA_5lMR)v-Eqafx(%# zLccZ6T(Cd#`RSDhd`=6>j+p!J+^14p=yc_9h0k)|+?q2Z?wfGmdKI;Vst04ksgJpcdz literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_dollar.png b/src/resources/texture/char/char_dollar.png new file mode 100644 index 0000000000000000000000000000000000000000..e7a0e18d88c30f9f5e0a8a0ccd9033e6f9a79cff GIT binary patch literal 1033 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRE3y2=%O5Z>FiCj2IEGl9ZoPcp|8ly>@sHOv*XoL1h_Zf^ z<*4bitcCS*%1xvHZGYGAj@~pocE*MW{SH&&5A&sPh;i#CxG(>3_vrN2?$n2O=K9Y& zU;Js0{qxS{7S21p3TJE$UA0)m{l&Y2+>TQg+1x(n9zu1s=Tas<%1!z!XP*E0m*inq zGrylg^^5%|(;m@8=EWN+it?8G|3a0lDq1o)?J&$&4OYG5bnezI|v507;>LL#wgK5wA z)SEV|Slmb~ohf8A|NkNbr;Ue{>h{ZT4C>7=)ssBqe&o~LE%W~>Ud>z7ea5f7X5v52 z(3%`!OTX&r!Jo}9r8fVJm-uhxySCxYT&2ByS2Y)%eAE8lXvXW9tY*ui$YZZ$Oiu23 z_tCZ2Z}#rsaN`|;OYf(rHvZavBx&YEuKIP87X0JA+iWuPy}r;(yUvR1D)n<0+fFjJ z`+BKf&|7rZ?=69+H{X6PW+YL6=1}(*`MC+}XTC}{F1bBt+libv%O5><-|~wmX2$!o u7jG>pPPEGktes%D_-EJTyCus18E5nCl{)5D_Md@)fx*+&&t;ucLK6T&=j%rR literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_equals.png b/src/resources/texture/char/char_equals.png new file mode 100644 index 0000000000000000000000000000000000000000..be26726f4287acf2eb91fc3097b4a12cd29d7ca6 GIT binary patch literal 1075 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pR3u$GQo%b0Sn4COa978Nlw_c9-zg;TP_VN7p>t%1fxShLL zv{)01eK=cK`F)msJd*PMu=#W84`-NtkJu-(Epy;XGEb0Q6T6W0(uHf=DDwz0LpPl>8xr-|< zWq$ZzxZD54{-ak}XBv8amU(AX-G9G2=87lZgmcFqmdu)Jet4mM8}@CeZ9k)N zm{D5)XU&i8&Gn1FM{-!tE{Tp&T4m;${xT-`%l|(gM2qVY8^Ho4C%aVn^oJT%2vB7Rqytcw2F=M$S6xE?GT))Y4i0GUk~2{#6s?9)9XcoF8ZXuUo^Va7W`r zlj!pq^Cld)Vd2hOwoi5H!>jAJtbg>^ec9uyiw;`}%GEin6=qjHvp&#zQRhlly=;;9 k$Cb3LW9A&;qu?fCK1;d7#J8lUHx3vIVCg!03Y}7fB*mh literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_exclamation.png b/src/resources/texture/char/char_exclamation.png new file mode 100644 index 0000000000000000000000000000000000000000..9a1bc3da5dcc5a2490cb7c38440259f6ffd17682 GIT binary patch literal 1091 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRa~91lE1ohiFa>$KIEGl9_Pu=He|D+J@sHO(Z+ZICi(7kX zY{qs`&CO?gIX3S$Fg#YF{D1jBVYPcYyLgPJv9@y?m$Q!@6Z0c zS992PF=KuNFG<^D!!Vc{vR!{VQ z=1eT>j+y$vUB@gVcf;R#)uMb+K4L%qtgvsm`qAJ8{|(FJg?{g+7_d|l4RHyBG>OB3nsaNW;)h)FymU$_iO53bL_9x_4a!AA!-+A(O{u}vA z`=7mBFJtPdCREsd_Wq+*ohuf%o-VOwxid4lesy7^{#@n!JwcTn(iitH*n7BacB{3s1E-K-fE%N`> zY~7Zf&~h`X30f8)#kB7K+TQmw{%ifaFXAt|ZI_Fr-nkVIoZA(SR_1eb9DBTB@2{Cp z=dZZ8+(0;8WzMM!uY-2F?{uh|bC2=vH-QN<51(pn?%y#{Y3h@_UXFv`BdUD1A9m?n zoBHq2Un@t4?77@NQ!Vc;Hu2r(@tSx0YnIil$GY~!rZ?PTQa`@u_S4gKbBh>i zr^%_8j&r(K$JK}@3LJaH=eD@w$~(Qz|2KDh<6db}o&REQ|6lpJU9sHT`#3(nV0_yh zA(2!yG5n~(4@I8lXyZBCR$fU?DDK_-*J9#-h6BRq%=s@RvNA9*FnGH9xvX78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRbK{AeyssD-nEX6l978NlhhC2LpPeef@Zfdj!Yv|E*S2oh za`(-W2g`JH5~k0scrdfOv;O*#ij+;Ryb?@@SdOTPcCU%B6TRgW%^#Qi)oz#ny668+ z3Ex}LUo*3$ZEx%;evkB>8AgU@b6WSB&bubT_wyOM*rg@hEq{;S(cZAxPwl8jLRmRn(R?rb7Hg9{yYP|`|CFUnPQ-FGwq?|{yk5(xpTcQ=ysVM)88MKVR|xz zBR+AdTXFv}(eBi~*&?4>7<-N7(j<5y_e$|4E*Eh!IrmlYV(pddGv_Vcb|$u+XIh*A zkB+W@Z;ye^8l&)}WlkmzMu(r6oK#`Y)so-*SN8bwEz&yw4G+b)3$WGRt2ysE_v6Nm zI}ZH|+cV*Ls2|@>3w80p*S#OAI25NVOihy7{Mn^dou?|ML;l3G9r2Gi^nWS;*(Py_ zA<*Tu?EHO?wmIL>D=K&X-{v^|q@|RuoqXSiD2~KcXHqA-bZL0LZjxEFTRJH6(&n5b zrN8xiervS+v#)$>Jk7rIbM>Qj$M?Mm(D`&-bK&9Bn+5+B>b2y|i|cpl{KfXwRxF%D zxa3?%SLV9&n);t!*-zchrTE1A%kLil4I57$(wfXE^mtFWYG=mtSv%e5Z2v1A-zH$h zS`|BM_nbKf@ky^ujZ=5U)YsREN79{RAx3#$|4cAE^CV--%{tlq|1Z+lt$*~}U-a>6S9W!mh}cC}dlOrZ xYj2U7^Z206blp?_j|5-e{`1qi*{+`X;_k<~^7G&HGcYhPc)I$ztaD0e0sz@-_A3AY literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_fullstop.png b/src/resources/texture/char/char_fullstop.png new file mode 100644 index 0000000000000000000000000000000000000000..5d4482d54e968c5c019b955660feea673968e827 GIT binary patch literal 1103 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRQ|q-)o<}h-FvWSgIEGl9cD;NyIGR<2^~3#Y&x)7I3zv90 z2yvchUwccFdDBat$2&Gl|M&hcFn8m&TUH|6JPOBxr0kj+8AP2gsp#FaxOesL9OLKn zit|2*)QYS=Qdw5M!cVBb@MeOFdu7{Qahr%#izn^zksY1hEY+KPrr)UYv^!nb&b4dC z|0&J3Y!a^9Jk*{&nb5v^Ppmrc`M6In7!OWZarBV$zZ=W0t9A!}nUERy;?qx~vur;l z582=UP%*WvIed4Epna|Xe*fo_jIVr}QWWzjuXVp4$K@D#fjvLYH(S1Yl3}_dcjKp) zwectJKmOJ9CN^vHn|#B)C)(x2)0eP!eB!j|x{<%}o9gWImbsVrsu`cEoGWmAdC2pM zU&g6Rf;A5beyj85iJbNP&4klttrIGm`j=VSEr?w{L2M31>YEes{Y_CLHBwW;4bWcj|g2Bt^vKWC9$WH(cWan^eY z?MrWiRt3Z_-*@_v(Ls*6+=o`qm~D2|RqLqAy4k|Fe7mMD;eRQ3%{(IFp=xfm+H~xr*;%`*Qq6X~vg`6zgjQ^J-RP#a=-;fHs!hF0$*K3=8XWl}H2ryu z%%=(ii9=Vz6AMDrrJlZONt}Pr_mg;{fZ78wx5X}5zb8!jpZ?k1D6+5a`7^7N^(9)K zx_9iorM7)yJ$su)BB^ZV^`{0u^mv+2TCSTF@?O2=tM5H|b@hMT%M9=CV4K-*!oa}5 N;OXk;vd$@?2>^A?`xpQK literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_gthan.png b/src/resources/texture/char/char_gthan.png new file mode 100644 index 0000000000000000000000000000000000000000..5ee03f18220d9eaea8a130c7896a2bdc6e842e69 GIT binary patch literal 1082 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRD?Rsx@^uUhOrD-Djv*GOb1&cbznv<<`r&+ZR1`PsuAsu) zABG8h$Bgbc8SOQU`?UO*ctvKCQIeVjljLN>7DnynYe8HrncRP?J|10guDCSsT;=@d zbDr~h?{Hk`V|M(u?Zx~BxIModUD&Q&TXqx z-kc}zs`o`M*dgPZ_c56xamRts$x_FPN|e9p&(QdIT(DE+d3DRv+dOeD_P?uSqw#-|^FnLvg;+K}c zmil#D1Y9pVS$C~EUbEffdDj!y<_m`-X61Fiva1e#=6*8mufCsF&OXKdCtv5Muyy>3 z{B>Y^q}-GlcmJDQd3{u1(d-%gJLm2yI`vpTLoV>x;k*8=tDO~ldbb$dVC_iTw* zb^DROI@6aI26X>l`RT)IfqUoMCcH^4?S1*YW}4E}l$*YDunaCgxr z&$Y)=I=@cmnU=ZrNAAp(;w@X5m|g91gc7snJ>%?U=HkzoYiM`+A>T{8bA26oFJg}U zR}vK3xT9}hiOs8*jJ6VIHitj|>K!D>cfYVw?)&|6`#jx^vEBM_e#%@8)A31oBze`= s&(P>(`2YX_ literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_hashtag.png b/src/resources/texture/char/char_hashtag.png new file mode 100644 index 0000000000000000000000000000000000000000..f7f1c2404af9af421854323762d2f926ce281ad4 GIT binary patch literal 1038 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRD`iW8~4X!jD^TPW`{hFi+8HN_)=c2Pw>9ElKXt6D}zIt@=3o+qCm{tu57` z&pB_YZgW_bOZAeVnf8>t34NE=7+Lrfww--`Mqg0b{?DNpFDuU*yAJ)bj80<1Kc}ic4-^ zDcgKa!8bBG^%rxw{f|%kyq<~*b7Vh$;@%ni?EAWB2VYfi%vIA>xyrV4%D0zSZD&+^ zB%1A>_$2LAWb-9kGd1TGcix@d^WT#rU;f*VC#wa**qkL^r0??KJ9*l8-Th^O&#&1= zy|0>TmAh)HT)s`}8kgN?^UrJ6`$gy*L_LXZ?f7)u)b$XSP!@iv5VU z-nmWtJ)9<~UN@YQTsrrdT&=|HgyrYDm-9Ti`G4-_$vOX>%{Q-AUElBV;U&}7vS~9O xoJ-EKHYrG+7S?;IIcLgS@j3rIzfY=XJkWKR{cvHc7Xt$WgQu&X%Q~loCIFi{<)Q!p literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_l_a.png b/src/resources/texture/char/char_l_a.png new file mode 100644 index 0000000000000000000000000000000000000000..1050e591f0633a2e2de0fe28d49542fa84e16d44 GIT binary patch literal 1026 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRU5VZqe1!}QOoE;+jv*GOdoSMipUo6kK1&K$Gs>2@&C76@3ZH_q1mpBGuSR~OugISqrQX9E&OMyS=55{;<76{ zBkvSfpZh-N^Bi@t!mf#2twPzWL-c|rQud$wskAseB04RtQRngR_#IIT0@SW8-x0B_ ztUc(|W94HPkA2ylv*z+ahD(CKxN`oVe8V)m{N%y&{*X>E|2v z&|lpqueZ#qDVTgqXlWu}xu?E?<TAaKlglQ^}N)$%yacyMFpp7 zb#Iq+EqW(&vhv#d;J8-@*I#}fIc=$?YfqTxsp~Jc?EbglW8#r(HAkikeoRqIDmHsG zyQ9KFtk7)9|FCJbWs@H(KRPI(u5VfEx!m=?s##e@b<;y5?Q+Ru4z0~r^67WA_xE-v z9y#TD$#D~3xBpM2-}TZ3)=GR6u6#csp7HnZvkl=Zm!9Yqt=M?{_io!C*G-hdm;4cX zE7tC7CSCK3bE*8U+R2yye6{v`%Q{`HYVvfYq}{G7@3g*NZ6XzNyxPDfD(#o@qkA09 zi+yaXK7T$h_EpqF>ETPQcz69}*Iyp5|H{)-8r;3UKvMX9;Of$D=NYq}-&FfP>&}Xz l4Tl3-*P8lGaBr$-$kE-;)Rt~`jDdlH!PC{xWt~$(695}3;Bf!| literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_l_b.png b/src/resources/texture/char/char_l_b.png new file mode 100644 index 0000000000000000000000000000000000000000..2778b2125a3aa326eb14c75269739d0092928c61 GIT binary patch literal 1044 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRU6n=Oi@q^1Fe!VwIEGl9F1;M<9}_CU`rx@O^O=GfjD>bm zZQHIePHkDH)?w(oCqOv2epS6gZc>uTtyP+B0ZRj#bX@~A!q}saH*y{C4z_)KeOIh} z_5SSr*6SX#e9gQhRc!hz{|aU z0xNg1igHMFOzq_O-E-zHy_%NPwlH`~c28J$!_4WLd*`Q4|08Yha-^jFb^HaFAg!nB zIrp?&);`_S{r^yO3DJMwmAhyBir{F~o= zU2XGnvdzDl8io5}X58=Yn0{{JvNh{3HVMsl7yNY4RIb+l)9?I{W1j3@HS2u$x-LC* z=4Q>sgqL0mcTP&ZsW|Db-qR_IkF!c1{!;xW$I#5NQYn7hdb^*$XNalzopr E0J13SLjV8( literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_l_c.png b/src/resources/texture/char/char_l_c.png new file mode 100644 index 0000000000000000000000000000000000000000..2755a0bf20f53fec5ddc1ab4f70065a03273e296 GIT binary patch literal 1049 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 Uuep^N7#J8lUHx3vIVCg!0E!~jmH+?% literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_l_f.png b/src/resources/texture/char/char_l_f.png new file mode 100644 index 0000000000000000000000000000000000000000..8bfb940e82160488de665e3a5dd15ccef25d83c0 GIT binary patch literal 1075 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 QFfcH9y85}Sb4q9e0OQN{W&i*H literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_l_i.png b/src/resources/texture/char/char_l_i.png new file mode 100644 index 0000000000000000000000000000000000000000..74ec0df31eff1a5fd15472a15f3670a41f8e8b71 GIT binary patch literal 1040 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRJ~r?g%Yx_fYDtfj5>tB?Ds}UpOpUZ% z(xconKfSiq%ug{|L3Z=kNvAjGoT+EBsXh2bWZ~hu=FZbL)lT_moBMu1 zc@Msdy|i1jRXk??(#Xg6Qy1~n|2=q;v%UIX_{RCRJkx}WrzF+SHTeFME%eu~%qtnD zGj<+*#9Xxe=6zM`6E7rIclY=d{b{@_8p#dxb7~#Cps9WS!=l81BT+SseS@1gccy(8AVf#g%w_;y;uf2|uRP5W|abYrpRinA-w0RTUOa9Dz!%*1C z>RD<(O>>UtqPmqgXZzguc&6z2YQ;4b;mcL-tp80pGWqy#M7*8V-et4z^xylI<%XHM z-5D0o7I>ykDpFkeI-xsluG3EL8Sx28ZTn1KiY$JdBA_c*kk*pcEU#AiyKAl3P9^uX zdJCeSU7XJoma(i7@;mR2Ta)i~Y4#h3p!=3o4?QecsQ>a(`@;k#Y4O4~Qj*m>mb zgfH`s-w54i9+6S7_tb5xpIoy~%lzJAZ^xAMZ{xcI@A>>07#J8lUHx3vIVCg!0Jan2 AlK=n! literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_l_j.png b/src/resources/texture/char/char_l_j.png new file mode 100644 index 0000000000000000000000000000000000000000..62be42345c15d715af506be41ab799ff4addd598 GIT binary patch literal 1092 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pReRiW|iEIoEOu?Qmjv*GOOD~@fo?R+%{NwfSiW9zQHXakO zn#88j*wtlVaK>Wp#|7%u-`0P5a(1@ywTrj3N}~#b8aqQWj9V^DX$kZB@wKAj!-Jl8 znf$+R-u%0#{4jIOf(W&9o40!YRQt$rm(BU`lw~)flIy0bJlq{Wqqp-o$L-5^Bo=?0 zQPWq|&pBsNRr}psy+YZYO3j96#dX$f`rg80Q*-8#jiTc1w6ezg^9#$o_}G8wcuvZ9 z=4cJJi&%D5!QS=DAO3giE@gfw>DD;i|9$6<1=pVnOs-teeUUTHw9{zMP1QAjA0Ono z-j-?pVteFH_qXYv-hX)3aYtkFvaCw!m46Qq}#ZFPH4+apQWU-~J(${~eFwy?zwp-bjVImLio8C?-!tvy_n*1Fua38TRZ>=s%bT=dm&eA_Azx$Q5-U%cYHRjEZ>;52` zx9F4N)~KkM17D2TtJiGbX??h`+iB)s-E*;T`}Z?0zjft`@68{#85kHCJYD@<);T3K F0RRS#37`M~ literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_l_k.png b/src/resources/texture/char/char_l_k.png new file mode 100644 index 0000000000000000000000000000000000000000..38b4b0a76856a626a2c1a33b71df9aae45d1f3ca GIT binary patch literal 1042 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRePNB7t`Di+nRcejq(2GDszI|s-a+Yr2)~!}TPWiJI=kiT(68b5#*m%!< z^_%`*vS!cM4k<5PdGpDZW7a-TG}2Zk7OY9_6RNqVD0S!>_ok(J2M)zPI&g?5Q2%D4 zoc$B;si#xhj!Vo@DeT)P^Y>=nfm6kNt4!=BpDEbl+9LgX?JR#M4pkRh+qJy2Pv32b znp)#hHAB1jiQCMd+lv?LcwJWMy8h$Gva9c_-#)yj6Mj8<*}`xC=dTptN|m!oOP;yG z=+sTlv%>G@l$ovZZ87-2>vP+4#g>$=75#^$Dpk(;dGHFv?>OlC`Tlh06*fwFn>L+L zU3;bTuGaPX1>4@&m;TL_(NA^y@qR|@d<&~38(mFiJ=<~WN6z-dof3!ctrghz-1*11 z^55Pv-_~LU33HLFRB74upQa@WQ{7~)zh0vow9oy=>H`j)+h5=5 zx87UNuPCxE=>L%?Hr3HzQfJ(Ib4DlCsl(}tQ9Q>2_U6hmyA7YFq;&1A-<5vuwMyK+ zWR`NVA4_FT`&ZtUc@uE-kI8&K$^F;7%9h=gk7vy4+#`7Z+B60b@O1TaS?83{1OWCm B=X3x7 literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_l_l.png b/src/resources/texture/char/char_l_l.png new file mode 100644 index 0000000000000000000000000000000000000000..5ccf652ac8cf0c96a130aa4e596d3a3926aae855 GIT binary patch literal 1066 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pReR;)GKLZ#Tm@GYA978NlmtMN-Kf6@o*vIqlGrdncd#~K% z6LoLN18)<(JPG5+jp<%%uW8^oq@oq4j;W#gQV#U|%pwVb_fACYR~zuR&9+2hXc z{nwo<${g37xWx6_RP6fBx}&b$EBbR31=Bab*&eyi)@osF`h~}T8Xi0Q`MvzUqk8@| z#+M;o89jU3mlSUHdfl;8QDNTWv#x%xO87KVPdq)5TsAf1nd~q9$-ghn(D~?A`9#6~ zsQ-74W|dxzM{lN_-~Z$)_oegt9GcTMec3(7c46JIKLQ(KrFVI%HaI@mbMTz9SI4^l zO6Hz6r^SvX-TT$v{IvDS$qgS_`Ic-&n;MH|AqL*AwOPss> zxXEs1hvfFK?yE-p^-Cfa-cGHa{7SuLZKhhf<-Np)SH61ZcUnBU{C}nS9~q|;M_d%W zj^z5J2(O;29F%cSF7(%ZW5fANrrpagWZr&nd6;*LV3^&bE$7S?TdY^x*e(uvm@+;4 a@b8c254aC_xm@;O00B=|KbLh*2~7aUfcXvp literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_l_m.png b/src/resources/texture/char/char_l_m.png new file mode 100644 index 0000000000000000000000000000000000000000..1c83deb08db8288eec0c623a88c197684b3ff938 GIT binary patch literal 1030 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRea&|TIVTwym_$8Y978Nlhh91#JULwC*vIp=o(e8b3tVIt zoOpjN(4F1;c;T_B(y`yyzi~_7Rq%Y#+^E}KJ`2qHBCOYDh#cf`G--9%5qsoETYB;P zzw@l0-+4Yqy3UbXS@;R}8vE2oJU<=FR)66usOtKfdQMkR*?z6TeD!!Go7rhAT%HQH z%AEf$=`LIx|M8LJaf{YF95-!d>+jrg#BCrULvoEJVL=D~{zb94Xn6*d0w+`ja;L~_izO;#n7j!Hb{ zuW0b`=l5KH{+Hgd72e)wCqM6FE2x^b?FI6Sm8z_g1DIla%z0T%G(} zZR6BWu_{-sYJZB7RT1z-=Flk!D;2{jknMAeLh~>C9FArw^vbS3xBodpHD`{llMgW-!#8| z`}GZ{+ez-y{hm&TRxj7oSsz&Mc|GAz<@}t!>-863XqDAC>}WQgvBzQQB|e_ys)^gB q*IeCUcKWw&oBAz%>sLRH|95XDe3=E#GelF{r5}E+uI_BK~ literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_l_n.png b/src/resources/texture/char/char_l_n.png new file mode 100644 index 0000000000000000000000000000000000000000..d6a324275f5d04b87df6878890aec2bdf74e3f89 GIT binary patch literal 1059 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 literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_l_p.png b/src/resources/texture/char/char_l_p.png new file mode 100644 index 0000000000000000000000000000000000000000..3ed3529c7e460fa43770477e9b63db47862c1d3b GIT binary patch literal 1043 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pR15ODSr}+#FOiG?Ejv*GOYcJpTpPedk?Bn^*K@YYDNN8^e zWZBh}Y_Lh*E9nQb&kujwPX~_7I661u(Y6-`Ih=DhY}|FKi$_N!qM&u^_2%o5yLIZ$ zzl*s(`S+>P=bYa!IMvO`>FX^$raw{k!3H;fd*$F9n&g5T)L5I43o@06cLuhK`s_Q@5o}QjN@0yW6 zS4y0`z%DEET4|>pmX2np7l*n%v^{^ZVwvy?VUm$@iTKd%c!j zOZZo`+#)=?+~7y!@!#HxPrT=ZbsXC?$K=+dUoIT~+NaJF*k$bFce&f=XUo&qxrZ;F z-qO4?(rLjqKjCE7Z`&nxFXaS9CjTlv^w@@3S)|@KIsZP_!-DzEx}U-`nrn!nlpFFesWPBo4Df3UK9KVzx%`zdU0mKF>Q3=E#GelF{r5}E*V C5$7rZ literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_l_q.png b/src/resources/texture/char/char_l_q.png new file mode 100644 index 0000000000000000000000000000000000000000..d987ec2135a2e5654c1b2b86d01e9b64b99ce3de GIT binary patch literal 1038 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pR1L3D?yPq;JFv)tlIEGl9F1>u;|1!G>>xc7ygEGQ3PTb03 zdAj_}q7)Wqqq~>C9h<+a{=j$L+a=E87b2Kj4o)cjvuVrK)T6Zo29s-(9EXTGrM3zV6}SyWo^R^`Y@Q-GT^3 zbH7c0+55#-hDXGzdwzaWt*2*^ThOvmrj=1jLh9jLJI}7~)<-t~H=6NiGvg}JS)p<| zfpKczE#GISv`NfP*nH-#udRymg_cro0X{Y{Qm^WH+eH;6zlgYm;MP;f6`y*`&{dz z#CI=~Z!_2bt!Innl5>@j-?ZJe$oRD9+>4TNV!QUn9la`372M-H*=<$Lp-Z)|Li5gU zkP*x`te(!Hm2F~Z`YADD^T})4%l0e9J(1M;^js>}=lo@hW!t>#COxx0mi{xl`=;0N zM_%78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pR1F1Q`m>n4yn0!24978NlhhDxNJUdi`^~3$295wOGioJ?& z9ZtFGMNLgy#$)U!`})U{zuC2)&$7>ryArf^WgF8YR+FhMZcHUgo((@f9CY}8+0wXr z?dES$zgyfbTsQid9Y1FEbaslnSCHFvhG zO;)>b^p15-eo~*iHUF(aE*FOp7M} z_i#HoZAA>Dd6<)j(6aocYKKof*QuQ|Z@qV@`&O~SY3H&}g>&@Xev@N3NB!LL)89Tb z@B7{L^82MLLN1RZZ|R=m_7TzNjNo@0o|9?h<-De9nDM@xRFfcH9y85}Sb4q9e096_KQ~&?~ literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_l_s.png b/src/resources/texture/char/char_l_s.png new file mode 100644 index 0000000000000000000000000000000000000000..3707b911f372e78568b1742f3d05d42b18a7afdb GIT binary patch literal 1030 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pR168d#dNm9TOroAHjv*GOdoSPhpPeev@bUiNpp2Kd@;q+d zY3SX+&uONkqf*SSR<+IkYW)Fa;l+lt3w>UmIn|(0>|kzp&GDeXty}x#O59F1eYC1A zy8FGj{-|<^p_Sjh6R)@)ho6|9aZOUopse|-Ynqrx@V@^uqbon9CgpZ{r)K$UK8vt_ zDs^i|WqWw`mjcF}foz}O}3G2Vt%Er@h>AGErQX$4nyA*!q0j z+(*2Vrtklp(0JJDYUm`L{{4$@KizWDZk@QMc*dhgruW`WNU^AM)%ka~IkS!1R*eR4xd>y>z`iwni=gabaJNadT?zg8o({^spd}Ui~_r%ww$N%#S^|65KBi;KJWtKPkUf9u{WI=0qJsMAN@m)E@$N@HUF}d8oT&2V z?Wd#8R?AcVStzibON(4pR6eO@-YcQ$i3{w{nN)}drGj%@2&-Z7~zx$5;zoL@e-=6a7E#@8ZpHjSI<~{k!=6rb0o5`91 z^A_AqdUf>XeA#-riL%Rn@p`^pqAzbYW5?NxX4bl0Pxr;dKfK-Xqr4%kTfFAP3e-}+{yo9RVHrO`>4LS=+6BAt*gI8rCj^IvuUlD%i3>skp`yc->IFK pvYGKLqkrPZf4`3vZ}RvcUe9?*F=wgWO9lo822WQ%mvv4FO#p`4;~D?} literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_l_t.png b/src/resources/texture/char/char_l_t.png new file mode 100644 index 0000000000000000000000000000000000000000..e55f54fec3f10a74f4917f245c855f20429bd46d GIT binary patch literal 1034 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pR1N~E;$CDTsm?S-2978NlPrZCPKe$}r=*RQ#Z*}TlFZ6jO z(d8?%VX_wM6sMGxi(c*fU$S)7qR=j;Q_M4uX^1K&n06M<4G*5fzP&rTWtZdIHEG3t z=gyR?{ps-zd8MMdYxb4(lYNSAB-b>((zz=tc58{IywDQ+DnzMIt zoAH)?53X|GTimhZP{g5k+3&XAj8x@6?H>`NutbFI%-zS^pU;^un9ToNLfWA8*j)BE z-!;w(?Y;9Xadxv@cI+aikNlZc<@&z&WiPoeKJta7UE_MiZtp42e~2bNJudixAAIX+Pv=Kw%S9jg zH)c)VP}}}6dt3j`zMW=Qr=I!n)QMxK&3UUk|K?1N{lu!Jnn$0(Eeep>Dk>@0>*Ao8!WJ|xLZA;0hKmKTYWPPZc>MPj* z4~e+}$LBZqvsp)roEABCbE9qb5&iqdzf;|G-Aa@nerfn+v(>BZwR31zOxz^-^wPOI zRoC?xPFsF)QNxPjQ(GnZ*zU}E{^G2A^Jc-lzQ1Z`nVQutib*$lbX_zmUig}}Pgvz< z&#r6XSFYLhmTr|e^fU9DcwmRoM~0(LVx^WXA2ge@CO_)!iK<&Y|6}|v@8!;Xg5Rb& u-MF1td*HB|`){ACKlh$)t$%j>{&SUGe4CAgy%`u77(8A5T-G@yGywoUY2lgx literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_l_u.png b/src/resources/texture/char/char_l_u.png new file mode 100644 index 0000000000000000000000000000000000000000..693c1a00b241206f379f27e396ecfcf7e14dc319 GIT binary patch literal 1025 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRLq`6V-)|Tgm;^js978Nl_g+35JUf)(=)>pxo}4!4R8(1L zcB1`4*44fnr+R{yb5H-99b3Nga%SMcg|Pt(o!uAqwjP<`U^nU zs?Y6xsCX`5rmEhi&1c_;KJx67O5wU9b|donF|Ead_y3*PI%9`d#kLb6Q`ho#S(f>) zNN#w_f1~=C<);&&9>-<&Jb0${d-jrq+-CoL0k@RfF}qKGUe3e*q@Y9bQtl~cyM3;k z9Sa*@JdfY8*=zg3$Fhrb`u9D2(=%B)YKDH0Zb3`X-1~eTL3{2gulaxbpwN4f4D%P; zch>f=mDlk5yvuprkv~eiqtC=XFY#FJ`a^D}(tO!|w-2Qp58plCQ*|zJ`b(3SHrjJr zoS&Z-kXsYzoR!q1@whi^TISvdE4(e0<~_V?nSAQ0#)54wA%7=)KFB&p$2j(Rc*y$T z8A)$&ir@40`nP_W%4(Nhy_-Ln{@hesV)=68e(!xQ+f4G}erQDMw!g^oSzo78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRL#`QNN+}EsO!l5Gjv*GOQ!n55znv;_{Nwe{vRh;89WxUb z#xlMPP&<7>WVv_Dqu!JMqV)HCOOkrN>e0@>+#Iok8rHfST?>&Fh^Vs>D!OX=|o(ddJ{Z`)5W^qeJ=kISej3AXY4w){CVE{+N)!ThP9_tVU0!B%dU8;`)t1>Jr$g#xFZ91_E3kA->NqLo>GGBDap*1Gb?5jz z%)dYWv84K3fNG1ny+O>v+i#^;*SbaMPLhAT-Zbfon8tdZ70=mKjQ8A9v|D`r<^OIC zm%q=%j6A1>|JCPr;^-8)z5lZ1tKa8+K5X;;Ar&4lcX`}Cx?^&t!z=MH-fx*+&&t;ucLK6TDdilWs literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_l_w.png b/src/resources/texture/char/char_l_w.png new file mode 100644 index 0000000000000000000000000000000000000000..5ad398d8e092169b5e02551c1672696e10ef7961 GIT binary patch literal 1053 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 literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_l_y.png b/src/resources/texture/char/char_l_y.png new file mode 100644 index 0000000000000000000000000000000000000000..72f42a59b874525908451bbb756a51de21d9ce15 GIT binary patch literal 1090 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRL$y_Xe(eklOo5&*jv*GOLoc5Vo*gQ|`r&@<>5agWU#l+Pj5GSsG;!Dmu zo8tGC=WNgKG{562epvJo)9dpqdIb3|+*-DL{zT1d;gJz)o(D{m) zt8$)v@G;Ib`-I|V<1dQ#K4#0lO*)#oO>SaiHGf2ug31%AGrFH1nOmtp+1SjtiMLBV zX18bU>_Z|K=hqij&wOUqf4#Hl&mZQyddGFk3?mm@@#k(%y?3RG{j09#yY1c6;hA`^zu-=e9!1 z&0S@gPcIjLb+1*t^MBsT{!3RrbsS6Pn;r5@lYe=k?6r(*m482`3eVW>nm;Y4?PO$8 z$Ex-ozY94Z?%DiazhbNA6b<`*bADa+;_$Ca+TgT%uA13z&cxgqje>Eu$_L-@M&;kE zKAC=UH*Znxo9iCCO873h_oaSwe;=zopr01EB> A?f?J) literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_l_z.png b/src/resources/texture/char/char_l_z.png new file mode 100644 index 0000000000000000000000000000000000000000..3495d20cce9b6f0c12eb91c07cd9e0d06f3377d6 GIT binary patch literal 1037 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRL%k)T$F?#sFv)njIEGl9o_hJd|7}(g)(_|ZUW%VGt#PSP zl%_0mYFp2S2Zztd)l3%u@Bg2tH*nGIHy1=S9of#LEskjP-MHAHHsj0{b({0w=iDhi zxA&vzx`0)a^e^37X60KqXS3N%rl*!s{Si^g1`kfF>pVH>FKAt=wk*SL*^K1v?yTZF zKHITd$0YOY6nbf+KY#O{V~NcoIX2Jk2^lKfPEDLSfBTF035NxLd6duG^Wbo(Rc=?Y z%K2}V8;)hpUamVy=YGw>tD<|2`vSF%LLcyK*ZT8olFHH7%#SYKmpo$}wcz$M-|4?! zo9tiwgKxe6iMxx!(zl;{qcpwNudg$IqGr%O-_l}(0_Hh2G9Rz9rK%_^t4NmB6(m0? z5(${6KJ!<@>+Xg7dpj)tX*@cbb>z9=#~jT^1(uKYGtE`Di(GzR`Ri{^LnqzSU!|?u zWlADus?L9&*?i0Xguk2eB%RyQK1w_POul3B(`fdICp%*oe$l&ppPy|$U)#={z2b#C z{HIoHRD6YSAWWL$=Q78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRE6XEAvvx8tFnM~qIEGl9&b=J%KP6q{=*RnYl5+|ZR-8Ea zDxxoFrI6;7Wo8$bgkROa+5gb>@)FO>v*Z>Sn$20L(!uoBBc0F@3cdMOMcS!k+S&vUD7kzlmv|X)pO3mEt;6HoMWOg&ndnhuuv?}_} zjD=wfO?+zlXIg4y=gc<Fld1LcAn4W&ND zH&*M8sX9H&{yJvgS~9{P>%=MI;LN=KEPPs>mHQS5SO&)K@(y}Cuy zyG{5s{RN`uSo<&bT0Q&DbHTN0%G&w8@Amm!{+oN`pV-Nu=7atgYl=&o9xo4>J>^%X z>B=>ql3mtJxi6cWI`8B9j^njocs`U&6?uGF=56r?=ldFGliTc*%e!mDkB43|_LIID zt1>aAKsL5g&h}YBJ73L}(`9py#=p?nu-oym%I*5=skeM5oqet{W3T7hnT?!oX)AJz sJG_%+u4}}ff0VELDXIUPFVdQ&MBb@0E!C!KmY&$ literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_minus.png b/src/resources/texture/char/char_minus.png new file mode 100644 index 0000000000000000000000000000000000000000..111cb0c28b860aab5759de0d45ec008c05e04294 GIT binary patch literal 1079 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRbE(U_r?xRLFu8fUIEGl9ZoPaqIGR=B=)>ptYVMc_Xz+HZ zICs=s*=A&J8#Wom73q&-L74eS=dYE{5E}_6x4XwPLyZEhZ)Zp zze_kS^jUY}rs3(=e|EZx)m5B)?$05#h_CzfpM9tAHZYwlY>#R0WIP|1xn1L|;J?Bn zpGzN!t^dZUyzhV8!wGfMxvzNn^j$hy(YpT}$L24ySZ4oEGdSNIXr-HHy{7i)x${%x zF794r;J5bNL%z-4H9H=^YIiO+h^kEXZsmi>}nPV^SsR5GXCjz>6?Ekvoi%Bo~&0C|!2UnfBl2yLv%=wTym!J8Ru}h_2f2Y61 z>Q5CjQ%-zSYu3AdqULUTTHAho&R;IhMT=Q7<{N~i86<3SO71>p=e?Sx@>h6^v1?w^ zD({d}n(Jm8KQepjb*nvR-rDOr>pm*D>v`uka?BJjUt^>C&LH-2$@Fg%vU-0juC-m4 zzarG)*1{NN@ryrte{mgrZIm25=gq`~#MXDIUd#S)ZohuU_GxT$M$7BXChfatmxw0{ zEPKZ1w&=^1A2WE4sb`ek_}3THSf0Q0<JAG+S!u=RY#{bk1lzJ}iNP4YQk pe0SNe%&tuv&;Gvr{3<{HXu{ literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_obracket.png b/src/resources/texture/char/char_obracket.png new file mode 100644 index 0000000000000000000000000000000000000000..0c52168061ca6d26135f38f475fa9040fb662247 GIT binary patch literal 1095 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pROK$a!8NV19n8G|=978NlyI#KS9}_Bb^y7KEGY0L4_ZnO= zdMcE#WLZQ|lcC`(iTE!!?XQ~m>bps2UkC~~rP|?Sohl)dz~H`YilyD0z;BoDSx4Sq zv$rn0U46$vkIp6Y-|Bjmd$MJOym+_R;^;Rn{%M}U`+m3XY)P52!T9V24Qcz!@|&xV zTHH(c7W=I{W3l*0j-M^Byv3$jM!aP(`~T!3v(qWpxjR|w>JJ`XY|^^kiNo-d#JlJB zWa>jteiztx>~X5r?KklOdVy;{M9%7b_|t*o?UZJ3vFDldgr8>YQ(Ny zUe#P+{1eFc@X?ft2`4kl%x7qP{x<7!a#60xFXO_62lD3XTR+No;wb<0q}uYP@}Y-< zOC{(1aS`0PPH$0O*|n32h1dRPTPR6Bp3BMi-ST#_g}=<@_D4JyU)a1gH%Vz|d>DNo zW9B}^x|&(6cicn*tsh<1-?2}rywdAM(k6%9u5T4Kvw0r+9C~blHuI9k$z0L;5^i6< z$v78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pROV!_TQ%xBdn7ln*978NlhhDz#e>+s-_{Zx%gEFoMxw*ew zQu;b(=Ijj%qIbSz^usZ+gs%DTz(7GF+Cn|9Qw`t_aFMslCu8c(~t}xjZbHsIUHwmU$ad>^~KfBbqlv0e3QhJ z_td%Js(TOf>eDX9!V>q^2WS*+^)YcWIz9Df#g1?3H3h%j`}{Jls!P=fJ4x_X{t`ZJ zDij>N@$f&ftpZLP4^{U2&5m&?HE1+<;@FuPq?xv{Vzx&8^otFB6^n~4*NIvlS^SWt zZl}m0jzE{sy74v-AI;gY_sDMJw)CD~F`5DSpRQIgt#21FQr*S7EZD_!mTXbSy}1)- zDepa@mUiiXdwG6~!Jap(<2QYaymNl{p3=oVnJ!vtvOL$TyyBDm^R+b`+^%iTLdF}f{kG|=usV2_%hSbrxk%oHyr0|m@hPT! z=J{n(W@*>=^-cLk$NlHezYeie&CxU1eqwg)u@yBw&s+BMMf_-}oBqjN=9)*^3pqo% zqC%#!ggxiIr;|gTe~DWM4frgZ;J literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_plus.png b/src/resources/texture/char/char_plus.png new file mode 100644 index 0000000000000000000000000000000000000000..7e0c94a61f3cef2f741d6b50cf283586683205e8 GIT binary patch literal 1079 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRbM@}aH>Wc&Fu8fUIEGl9ZoM2G99=5H`r-b6m4|cMqLUZ! zEMega$#}aZ_(=P?AB;cd)p5kvT)3#^w_10KlDYCkwv0;-J33mTYb=5*i(>k#)86h) zTf6meam>O9rTeFEX)RU!R4a4s#jC`Eo~`0%&Rl%?;jX^V)06xH*N*SBJ#c&a7qy&u zhE2sjbzY@&vrCjUC!OBB{p@1Pe>JXRbyX)HOFFghIC(|6F8<-8IV|rB8)GIPvgDs1 zwEm*C+n3{F=bvRFv+--f5hc^3Z z{oel}Tga(!(nX_e?-YMN4#`u7*K_}O`z7o@_KJ(uWqSSOFB9cc1f{<_{a7pFRIAt0 zzob>*(5brude5CJ{-j#%*7a3gwYB5(7JrS0>(vyG-+X!Y>JEF|+q2(C{%G6Co|(nD z=%LMWU9azwnv=d1?{Z&Vw^`x#(bcZY(soW&p1#z^v*&~8v;7OMKACKtqxXT4e;H@v zEv;Oh{tf#N&n@I?zGAk++BZVylKF|78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRE1pRQ<7P21F!_7BIEGl9PQ85Be|D+Fv5)89H(m#>^XQw_r zar0@5dkL?Yv!r8^7-k9vMM~Yi6Z_=*tLOvz`wR2?1d8t@{nDFxyzq_vXN#5z=L6@Z zt#@2C|AXl>@s;a?t<#n{Ek2k2@jv5-*D)M(l^4ZXS+}HzOZr^0_gH-{v%6I_&Q3M_ z!Hgxx-9Tqru-r|PpE*Gom9hWoBqVN2haWz%y_m-?9;yUdD>lmhs+x(n&SGTIV zs^iy<3P=5S{u_7u{+>|dvhB$3?G>@Rw@o~0&~edo(IcJd`5E2}&Xrt`-z=~={J`M8 zt~z79?`MCz*hg!;BXo=F4jtv3zWmGd6{b6jyPYP^UnTP4f!m6!4+UoBe(E^qe}ZSC zY$|JQ|JP)3Lfgp% z7hLgp_h`-JKdvH+T<#olnDvUQ{q~nTANKvyUCCp;{)LSCU;ZhRuPr(otE5xo^4Ubt zZN`k}u7)k{iY*&G`(}lt2|u`|RlnCy@00w3-kX*46dWWO7#J8lUHx3vIVCg!0L+*F AD*ylh literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_space.png b/src/resources/texture/char/char_space.png new file mode 100644 index 0000000000000000000000000000000000000000..031566aadfb86ae1d367d9481b312ac3d7e2db84 GIT binary patch literal 1097 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRYi`kfzbY6Qm?At~978Nln_fO29L*|n^yB$z&x)7IjF(s@ zxG+6!&)pi#mhzZ~yS(i2|24+fwr%5cZDc%hV@jL+L5GGe#Y`db{5yBg?ks-ybDp$~ zyZlkE!g+sfwJsk?jxm)uX=r);U$)#@W0_Bn*XtZTqT1A4spj=&kK+8N8=NI$b?O}d zHZZzP)Sc96Y5VA;)q8W#!`BTo@tgln+H7`L+Gugi6^_Cpx75bx>u0!F zO;wV4_+Y!rgsHCQ`gddnb965Mkuz+6&U&Gq3p-WjbneUzj$9VwQ*d|QrMw^=^;(bq4LgrslKO6xaw$Z-bHc3` z8$Zn`>wc-FzT4z?$SR&+Cf|1KTN?H3F5gkDnH{&@pII-EBPu!j$zeHXoplAJ2cHTa zWxo?^{C&n_sf!xdm-GDok~eujN3((8b^|HZu-ooS4B{5tOZu&D6xsLx!8f&s_EwVv zxcSddZd+UH`dLq~ZASdk$mP8+S=Y@DkyB&Ix?N-A>Gy}<(eU2cT_5gkWME)m@O1Ta JS?83{1OWDj0B!&P literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_u_a.png b/src/resources/texture/char/char_u_a.png new file mode 100644 index 0000000000000000000000000000000000000000..c46c7a2aa5fd81ab50d3c0cdc44234859eef6f1d GIT binary patch literal 1029 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pR4KeZX>&6TWOd_5xjv*GOr(QZ+JULZ_^~3$z*&o_WmiBrE zYX04z8-L2c>RREQorTAya{mvRo_9qup>1VA0Z(r78eP??L0-Y99GF$tcW#31@p?5 zrL?DCyz*PiqsU41WmO*XjTgMq@tzsXMV09hSEF2h2`RUetap6dz}-Y8>AI@@QID*U#`98KWke5A6*x}$jESq zern`26`Q+HZ@;gs_Idb}(eRLu*LrJ(_2*n_0-pcl+Aa9;YUU=LihF5q6+>0j*K5vQ zY%|mPi}aOq&jZu-pLxG~eEPa&y3;(X%yN&@CGmV7*~Nm#*H>IgDw$JKQ?cb{_RrN* zAH>Z(=AQDt^IiEJ$4eDQe`db#y_zbvPfhMhoBg?S&js7hTi#gqjq|Q}<&(L*mja*7 zW`1`n!$s(1!Sku?CEFwqR!m)6`)`lu#v|wA58sKK?v&lXxMRk@9yeuiwHd#g?&@0Y pFgxG9+$Z*7nadmn+oylo_Y1!IrQFi9hJk^B!PC{xWt~$(698;D=G_1Q literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_u_b.png b/src/resources/texture/char/char_u_b.png new file mode 100644 index 0000000000000000000000000000000000000000..0bb81076446be0320b03d59acd7c9874f3de664d GIT binary patch literal 1009 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pR4f(w8{OJq~Obnhbjv*GOdoSJfzg#YI{NweXH>X9d2&mIt zmg>VQA8}-PPs*$vDbsJC{TK1RY-i5tvq^?>~Q53iqC}>PYwLp3ulz zr=2H`G4jeJKC@aM_kr=S#LOSfa_Y+ZPv`Z1 zem>&A!`wgj;pK*dRhH5hZ!4d?cw0^Kc)b6nMXencKNXWydn+n+lQxv6uD$<1sjZW3 z@$`=48dG-eE`PSbRDR=U^?a+I=O_6$-+%be;f%XrpmWhX8BfL63+^tty>L>%tc0v- zMYgLY9dlL2GwKwa|$F*JJn-)EvESNcWA(ORl+U)cX>%aTo?^j;bowE9HfF^f`4ZE$GxrAJ5 zrcToDyfW#RCax-9h4%W1UAVpUvQlnAk<+>ZmyF);vu&=iJS;Hjs+@3e78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pR4UKDNr)DrPFj;xJIEGl9uD$%;e|D(Ev5)5~7i_T!SfFk1 zq;14K`^B>o?oPv*o$tS_|GM|0d79q24XvV=dxhLsG(R17;*N^0v)xx=z~j3oe(sYw zzjwX+Y)bPxdcC|7;`^ao|zkPV!~;|o=&cdKYqu|yH~P5G>QFjxrE%~EqS|^L?G#^4iyywz-|`TbB6yC+GQn$={m4TrKKY zmTa{)yV1XI@{-No+4GY+ySaa{N31jY-*J#~5#ORPBjNdKc`p^~4F5+pBH-^4M0!aV{*M)3;}{V_C7pTtzR4%x65zZ?z;74x@g~b%_%?Ep4++l c_v8FkO()(6m_GcFVdQ&MBb@0CUIn1^@s6 literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_u_d.png b/src/resources/texture/char/char_u_d.png new file mode 100644 index 0000000000000000000000000000000000000000..f61130fa7204276d22011320f047df9c28d40455 GIT binary patch literal 1014 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pR4I}Lk<3|h(Ost+Rjv*GOYcJpTpByf8{Nwe?oQ>5B95N3^ zxJ-FvASsz=tY^IY#??)!=D&-#S8U}r7Y{jbfk)<}yW|oP0j^sM*UgKa;xe!8$4;B~ z`F20&P5#dL{eo-dq%9|IX-yXQXwS?yGC1hX10EK!nIiR6~Bg9 zg#EIv?JH_eb*t|=uE3T0N%Ji4v%HHDHkv#B>A0modB0k5Pt7?qt`mzxo;)%woBhOI z@lV(L$2VD*e_kQs^jP%s<`O>7qLOVM$9}QNhdV`ZD3;XoJpA%=y1U^&ndF+<152fZ zL*160-1}ZT;{M~?>mzoaFXKqm@vock^Y6WB#b+hHzi%mc?|*FK9P8=2GuCh1?D)GO z$jR#972a1@`K71U^%rtHHddK>Gv{DI=SHpQ6*1`^Zb`P9(v0n10)t+ezL%Ir`LAxyoRGs-`sgB^?c$L>&Sv1{AbNYwD;5= zex_w@{inoh+uhrWf3`Zj%|28#^L)Aefwi+0x5RJSe{ilbPplN5Vp-+&mw&rsJT@_3 zT`I9!K5$p@k*Aios%5sHSo^*}#A(K_o~pktA~8Rk-m;ypt}#BG*nKIb-#*rIr~N`pA*X95K literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_u_e.png b/src/resources/texture/char/char_u_e.png new file mode 100644 index 0000000000000000000000000000000000000000..35e137ac6ec1aea050821eb3e38015eaabbc81c8 GIT binary patch literal 1027 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 I&MBb@02fT_v;Y7A literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_u_h.png b/src/resources/texture/char/char_u_h.png new file mode 100644 index 0000000000000000000000000000000000000000..e8995e0e7753748a136620edb15f25bf240660ab GIT binary patch literal 1043 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRP1%|A?0+#ZFe!PuIEGl9?!9z2I676L?c@Dw4-YjJmRSz! zj$Yg^uTPnH@sY*3l7;JbeR_X&Zr|TIj|{fDEOZrN(luGszQ}~L@$sWAa?|hKeqD7h z{a)p}0{Qe6X9HGk*m&-YtJhUmCW@4nwxGe z?qn2OxAE_s;+};O%JE724?i-pUj5|3L#}vLPo~zD0#V(6J_#>p?y@+b`Ki6;WA&sv zF1sb2Qu|(9zyBlW=KfADn;+9Q8&|oP6s~mIduHPQ3d_Fjoq7q`s?3MwMDP4+Q7KsM zYT{KnYj=Fwy^_hVWOf#dXi46%d2%lInp~lPv4xubG5KhhjJ==V*{5+`JmInHVeK@r z7iAV*GkY|AjjNlznk%$FpPDgCeO3JPnhA{`J@rf~JAZ|q61J&v@wk+|=lt_>%eR8p zqKhc~$XVYE4^q_mh2o;=Ug1h29<& z@w&-eFE8}zi{Fi#DQmnI&YJf2=J%Q5v;D1wOugnDk<bRxub3X0CS-s!2TBU5Y->$tZo0CGj^^B?J9D0&%}!hQS)s+?%e((S*sJGm3cAH}$B==6fx*+&&t;ucLK6V7 C80EJB literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_u_i.png b/src/resources/texture/char/char_u_i.png new file mode 100644 index 0000000000000000000000000000000000000000..f2438fc278b3d0a036f7a00404fd5c7718bacb25 GIT binary patch literal 1047 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRP4)Om&pa3ynAAL7978Nl_g+5jzc^Lo_{Z~~w=G?IICX=r zaP&?O_MH3u z71z{eFaO@g^)FA*D5i|P;Y~%-w)^uoeNr}-S6%f~VDIeZx0f0D?{vtUlQ*|4nZbkq zV^MFrH&6PBB{SDea@}$Z?Rx7nSEwzxk9jnDP}F!JlU^3$p%ygKE5VW59a;Z@&vN^7RSFv)zl`$yjPf1Y@Qx6|`cIW`VIs*d(gQu&X J%Q~loCIDmg?UMii literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_u_j.png b/src/resources/texture/char/char_u_j.png new file mode 100644 index 0000000000000000000000000000000000000000..77cafb339af5103d15af1aaf6244fb1a7f55bb6d GIT binary patch literal 1060 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 KelF{r5}E*b>gcop literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_u_m.png b/src/resources/texture/char/char_u_m.png new file mode 100644 index 0000000000000000000000000000000000000000..0370bf6334a41d751beefbde547b99b0db632afa GIT binary patch literal 1023 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 literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_u_p.png b/src/resources/texture/char/char_u_p.png new file mode 100644 index 0000000000000000000000000000000000000000..945a25729bbf9309809bac3f84bbe74effb3b81c GIT binary patch literal 1033 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pREz7hI*em)>M`x^0m-rujHBl(G1hw+;AhK2JgTK?wx@docWP&M%8|6)$GddHu8EmRT;IQK2FmJMOvbJg;cl|9(Twv`cRqtUJriZ_ZG=dGzI(1&5#M zZLd#Aow%LXirr+h;-9Mzu63Hq+bwI*n5bZ7DzL-MdGDdR<{X!rzLS+k$@AA4^&Bz@ ztn155cj!s6wDuGI>CMysDP!V?o2_-b4qs%S)c&5clQHo2qL|0GR0_|0R;~Lf-d?xc zUF_jcjhBMYPW?aMx_G{GgyyB2%R8TxHNW5Y@BN`yUj^>v72J6AJNnJl7gId?j&6}^ zKC<gJ<6PaGEfY@2H~vu1xqb#K+& zmxXaQ56-Z>HCyePmM1i=xJP70)Z6lS87bRQ>ob-dR|FCUEtC z@xYFX&1N$aGH1HAvYboNe81^aL&&UGY-^kM{dZ0-x$QE$R4HU#TY-MdgbV%4^8&Ol sANZL$%T(>zFJCWhnSY+&XVf#?yLzuL)mhGifq{X+)78&qol`;+01k2I@&Et; literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_u_q.png b/src/resources/texture/char/char_u_q.png new file mode 100644 index 0000000000000000000000000000000000000000..70d1c49346d0aec36bde2f1c130af596dcbbf55b GIT binary patch literal 1039 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRZT7HJOPClKnB+WN978Nl_g=oAKRH$6*vIpKx5b{mT^jwe zE@dr8iSufq6K4YaJZvuizx@Az@)hP}o{215W}j3#EGe1HkyosH)#}^g_3TqiY(Lx8 zu6tembmzR^oz)i3YaOE!KMVGNHe)0 z&5fllvd1H;+TR}M32&(8V25rd%{v55n=zo`r|9{Jm4}95ur`5}v{|o6}5woQH zMDO2=k>CA}yyR@Je!{L1w!^@3-j=xDiklC2xGy~Ow`0d#Ud7AzQ*Vk38n&xUSDv|G zqn+1{h>jO!E7X>Jj>!s)e3Iz0=b}&2I!~kDdd-hNe(5fqm;6m?vT;p)eZ+?cbDm8; zZ(*tQ|GMHtY4$DGcT{$oq^><{^W+#~{Qad}Prk@|1wU?BU7GcIidRfsc7)NII;%@( z7Iddy;!#Kn|hx$*JsRnd{fy-=kAi<>h0E7)_wYQ z^@ot-ZkfVM^8dP3CN2EQ@Kot-sg?B;gV@yH4b{)@$%p+rx9O8o^Ytg&zeOBqm*23_ y&_r#=rbDN5tt!@^?4R0^)qLOF(sWOKQ$1t(_nT~5`wBpbhr!d;&t;ucLK6V&TI;z0 literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_u_r.png b/src/resources/texture/char/char_u_r.png new file mode 100644 index 0000000000000000000000000000000000000000..b9f431c6880b2af41b16ea444878c816a3621446 GIT binary patch literal 987 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRZDAjQf_er9##f#$jv*GOdoLXHo)Re1_VNDDoT6ECisoDl zFw8aCJV8k)>*6Bc3#;tSIJ&}Im!=9XoD>#fmATAy@zEPI&RsvGv|r&x`MYc~I# zdN$}t*j(@5$7()wc!bA$97EPTbi-#i*=Ji{4U-)C${@ngyT~c z*||P`g7vvCPMOx#sHaumy!q(P^#9RHHm`dkZZBv_N$>t6`2TGGYQYPgyeg+lZ*kwe z@F(ENrI{Tw=XKor5qCJhsQgmN2a~5-l`4B#rM|9Nu+giww@7~X?lWIp?)2C%T6faK z*3QRz(oQy8=E#FtlapHCs-6D4W_|G6(`j)&#x)b4~`8{udmpVKP7DPldo2sS&s#`C%spZ yusVNBsZ?h5rk!s8SMEJlE%;GGDQfp0mU~+d@t=EoVkH9u1B0ilpUXO@geCxa7t>(? literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_u_s.png b/src/resources/texture/char/char_u_s.png new file mode 100644 index 0000000000000000000000000000000000000000..5344af76eddeddedbf47a457f21b8062086f0d5c GIT binary patch literal 1051 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRZQ0c;Vk;OJn6x}y978Nl_g;GFf16d{*vIpK-4=$Ox+OY8 zF*Zaw_KAo+S^^s{G7nWw(<&p0_zT6LaZpv2Ou`8CtN znx&Qm>^%4^xT-?>rqE28>f2{@H*76pi}>5ypC_d0&YSk^#690&@ke5T!VYupPM@qxv*rcClns1A@++DA<>idcKhc6o5q~_VYzP{z1 z%bb1B7WiE{9PsZf-`3WS0v&_7JGZW4l^=!={d%!UrqJ~rHL=z%p?9Ib7g)3zo*k% z)%co|ugyMIG+hoaiT~*Ndp~bXSBKBEl#ZxwrAO15ZVFzK>puUprt31__OgGn+k!e? zY_V|JbU8)i_(^%6N9WllCcZx05r15H+jFHbF2Q>CGv=4KnD~mFbm@DnHhJ?D@4v;e z?=P+i)VloE$l!#zU}4E~nJ;mziYix=kFCF$^WmLN`}v#JiuPX5Tjr`?dF?a3^2_6& zBCAh_-9x`{RylcI>yO+_FAr)i>sKuL%2nQfb+<%AH3Kv(5J_j#zAQvfI>e?%V$T3=_pJP2etmqQ=0$ Oz~JfX=d#Wzp$PyAbNG<} literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_u_t.png b/src/resources/texture/char/char_u_t.png new file mode 100644 index 0000000000000000000000000000000000000000..304ca8f5d922ac5b06871baab2a4a740da547846 GIT binary patch literal 1044 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRZIhQ$M@1MIn3O$T978Nl&%NyH9~~~z`tW(o?He(lC3!T< z8bpqJ2CjB-@|at4A@cWP>y@)stjrK`eB2h0l5~Lajnoh-0EjK3I$E6saymT&3qBf&8y60;NPTFqzIY&=+SqF=v4KvYqlOdcskl4wcg^3{OTwkMPt7$|F8XDrExZN?uMT)*;e=X zU&#CL3b;)m*s|&wO zdmPMGJMXX4YB#H?N>a(?vrXnr$&}qxz}+GKBd7DR)m*8~l0}wk2K&82Dvms078g2j zMW?)LajbgUkDr!_Gj<5Nn)v_xR-Jcm@;*EDB@yS0UR<yN*xJzdWkUF>tVc*|jdr|L0tHkM6j$=oe) z=#?B3Ewjsq#`gzT5sqoa(>l;=moT$^?<{Z2Q-4F(1V22WQ%mvv4F FO#tj~=qvyL literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_u_u.png b/src/resources/texture/char/char_u_u.png new file mode 100644 index 0000000000000000000000000000000000000000..e6d35cd125575bfdb6afd0a1a0157f23397a7930 GIT binary patch literal 1026 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pR9cH;_-|jFlFbR6PIEGl9?!A21|8}U%@sHPk24;L-ymW)z z1kp&z1$l|5A03OCR`GD^N3Z{PRqySXVVf#(q(hqf+{Y&imaa>U@~-?*8TfU3)zV~SnXKc#^xU!Fbvlz(?);y3bjA*!3d7?mGrx** zS(;T}xp4fDd(PemGLKJ8mFT^B|KTm8+pAL^T;z&Z^<=u~#nFBJ$J2DbUr!1eglh^d zX6)?x8pY9Sb#eXr9lPJyFVf-P|MX2yT)Uc{sK#?%!PJV~t|g56;X#GB7B?)tty^XA6A)>n?u$=UVHo6vd*$D zx#i<}Bs6V(zzz$U3GS)$R{Sx1{x`(Or*Pr1e2sdKx=HT+oF@woJdZEBr2P4~^dS!| zsoOcGI}E*LJ|ET!m5}87@k}nb!|%V6`NXb`Gfta&g%(-9lIQ9ARE(~k zizQBpoBr1KSa(Wy^QOJtnROQ?zDV-fKDR4o;yb&yY)fw~;Gbz2cD;>RPj`armU~OB zW_K-){noEJ<)!@Q?{m^7|BSLK{*lRXe%_{n_6=c4iw@n{obqC>e4BvRbW6KMbyFXe zuZ)-Ff4Ic@hxo(eTyxcQYv!tSeoy#b#W7cGFWbzsYL|EHJhE4Ssrl=f+CvA;vUT5` nE54GD)plKa&adbHen`IyTE@b-^hXo}0|SGntDnm{r-UW|+%@J| literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_u_v.png b/src/resources/texture/char/char_u_v.png new file mode 100644 index 0000000000000000000000000000000000000000..40cb23f8947cb25088d2aa524a0cbadf43f84483 GIT binary patch literal 1079 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pR9e(kEUEdiPnA|*F978Nl$6mhge>q%&?Zf$>NtxHD$zPhr zs`WregImpeMp|6X$+S&J-lU!Uw?Fo6{f(=7+fw|l=qfl0hSe{)%*k@OOH()CoZh~} zVe@wv-}`R!zWChdIR(P8Q&v4`zfs}wHTlzFlX!!OB}Rvj#XegvpuGR@(VTfTGdEPu zyJ+8bYO~5|`TdvPUdr3l{ZjFi>#Tdn|B0Q9xPR=s;jzbN z&JjDjcy!K8;t7&@e(Y=9`+Hjj+|n$HKQU(4_UqfH=XSnjYyX|XwWsdPQFq&)=J~;n zMg|A6EL$!g;x{~Y_qmDm9N!cD#-`^lxa6NW_*I~5MT~-G{G%ryYDJSL?{TT@d!(^_ z8pp=)`!}DxmX_JdnJp|Mf5A3k<6N&lmMtGniX^9oO_Mx)b>H=PIo`zOCnHskvp;D& z8UDj?N%&8_V-Zs7)03aYNNow0sh$0;$1Bz|&g8_imwT4px_%??;~Kxjmh9Tg)9VtS z1$&8K%25%njN)BY>@%&36>Fv_7Pq~Wid6X?-Q$1p#^XCObNqn*QioEx(B;KYq%O`n~dhE2p28%GX#S9lZ^g6CHNli{nY$Ds#wRv8774 p#oRhXe`!kp^@`v6>aqWr3nWfGzqsFF3IhWJgQu&X%Q~loCIA7h`u+d_ literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_u_w.png b/src/resources/texture/char/char_u_w.png new file mode 100644 index 0000000000000000000000000000000000000000..03588d2fc004a4ba172f83472be4491d542083df GIT binary patch literal 1011 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pR9hu4Rerqx?Ffn<$IEGl9PQ4uI9~>yc`rv(>n>Oo4)}KoD*R;PWj}r-tFep^aP`pm9l|f(xx(9 z3$QwKNPE_e&UZ4hlGE-LTDBNmm2)+;so{CjJ>~P9y+`gj{#$dgSM%T4?9<8{GI97gu^+dGvnK(XUONrMsX;rjWl zsd0A}FRtFbuec+v`I~v@w+AINX9o&xmS4R5$DRo_ixwx>{GZhGb>*R5XMcVazi|3N W<3*DX8yFZE7(8A5T-G@yGywnxb=N2W literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_u_x.png b/src/resources/texture/char/char_u_x.png new file mode 100644 index 0000000000000000000000000000000000000000..cb3400cbbecce89a3348291de6c01a19eea19459 GIT binary patch literal 1067 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pR9m8ve%VQWAn5;Zq978Nl$6mhcf4fxV_{Zx%FJ4-=nCIG| zC1)8NQ+BW<-&v$K>x}i+`(KV}zwZ(6HhlH$aKS}e1GZU-%Xc_j@44j~w%~8&$L5l+ zF>{~%uAJX~{-k-{qIR#jK{L;`U(pYcTE6%23yI+3oOOjSxiU|gZ?9bIveGN(tZ`s! zmagyIBjtjH9Y?Qc=3G1;DWd(vdyUPxE!&F)Isbgvyl_WVZ}>7xt0f(L-!5kHCTN_W znDhT&b@-1`n@3+3{wSUGt!hukW3EUxTXb3BnxAdNgEJCet!J+IUU=k} z?y2W5ZIZvfWXP)*D6BcMS>7Q(U$) zI(LW)dLFu`ciryM3)aH=w#Up>>|b`znYnD^admykGAVmEmwg^V3G2_QOnS`R^?1s% z9nBYo)?Z`0aJakq^`6gLVm0gHamv6{B+a!IQC>$-faM{g|aW=e>h zjQ791bLyKcR~2K`e|MMfb6IQjqGr2P;L3}yCrZo4sm@O>o5)nt^(^$#|D%gjx9Jx$ z$3Jw`Jsp3|rnWt0>!Hu*3fg;bcBs!T**!&jPwl4fXD)4c_tAEe$Bg?D7XMsb-uyqw zanAQrM&W<9pGx)rk9{}%u=u{}_v*=hE-`z~{HkJ8n^E6=*X>(pnAnf>{$ED^W78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRU50sIrl~V9FgbdrJN-S zTwYDrUR}AkQU7tt#k^miEO)_a((OO# zNd4DZjzlr`74s64dl`=fXiV(3{2pHQ?^^-K;d?7Tr)G&q>_7jIk=5q7Vv+B@nu(pF z&pYS+@qGMP;9gE#hRVtH*I#_U`ToLzn2Db(=5B8Zd+v1Ou7b|qnFpD+e(l-&KbPZs zUSLiCU9r~WIhCvL|Iuj)YtCq>nRu}X^(wglT_wCOVSRWcP3E7pl>DXqEC@*>@WYe85*A4>@9h+eYWI} zFb>78752}&^DXYE-kwo@z{?9kz&(AMi z;p#|B+Lf!-eP-IF9lLICdF{^mPA7QxnT)w*Ne4%OHK0X_NHn3dnE{VHTb?T~$^rI}*mOm2Kw_onIc(d%k5?3Hs zUXsrIs9gKh7jqe(asBzre)q1)|BW+Ew!R2#=9qpy`2ErY9Lx1K2Jt=IEpTXY7Ke4I mR(kNJlKdmQK2Gum=qmIyz(=?4P?1B0ilpUXO@geCy;aR2WB literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_u_z.png b/src/resources/texture/char/char_u_z.png new file mode 100644 index 0000000000000000000000000000000000000000..f47af45eabec062263e9fe2da441de1031e12510 GIT binary patch literal 992 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRU5*L*a-s|jjPE^N978Nl&%NmFKbcXW^vYQJGv@>EId7Zp)?3ndiQ{wm%oUfi3jfL_M{aVpSsk#xh<9y$%CcsbymJ9FKb(K! z-m%&uaH-k(L*mCy*Q^M9qdrS#jlrDdHy@o1*V`Vo_CE8wrAm|TR+u`kbNQ+<`~Jz~ zPbO;6e+R zimdEyzVmV)zUUq2`|we>HCS%{)Hy!Dh1Y={L1W2iB$}QUI$gKHA?1t?TrLM;^ zb=#Hq2@85U)pmXs|M_ulg~^F$QqkEa*I&vdEIhZ={?nn!4?E7ATJ82Qx*{zyA!psi ztKQp==v<2Y#=mv{>o6CGuT1XebFcsUb8FYOQxEr=*aaN>@w)8!c6TMC-7mC1ePD~< zZ)kaRxs~*K54O!U(MxU41=R2U{ODuHTHT<`cjt}DCcX2s3Vvhlz*fjA?jOA8^1DA( zN=i+)WL`_iJi4sJEXt*tbzaiW<;=Is(ThH9sXcJNV86OjXG?kUzwT#NE5+q+etsR% zFQ0GDwPH@fOWw_==SV&+p6fL8`{$fn=jK09fAaO3M^ literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_underscore.png b/src/resources/texture/char/char_underscore.png new file mode 100644 index 0000000000000000000000000000000000000000..4d305ddd8eff3e7fe66dbb2e01850796e78b8828 GIT binary patch literal 1071 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pR3(eP`U&J#oFxh#!IEGl9o_i@aIGR;}?ZNXoHQ!7Ywy;ca zVfvJ~+9=f_Z_dL**42;euSsS{uUwju*l_U1mSYYE6Q*=2W(w)^{bT%|Ri1utZmoUO zafw9{il>T8JW{7+H03py^u1*5E34RWwBpQn`^`dvQ#ty?XXB^0hMyYT!oZxrt*?w0-g zpRLxl;*FCNO#AWCy3M&N_FUlE;8Pcm?lr2PE2Oq_mGGNC%MS{b7j2Qgv*l*Zk$?VA zmhaf5Qr-VbN&WYk^`8c*^&2lHdPiNs=CFy3qLo^3>QW13t6h)%-yG+n(mX-FNg*TI z&iQkjW?_by+09D9^P9cr+-qC8%Wb>tZn1fDj-NiOpK*7>4p#lV3#%^gWZj<~xKrLb hp!(?VG@p<0_wF-o+<3xBh=GBD!PC{xWt~$(6963f^929^ literal 0 HcmV?d00001 diff --git a/src/resources/texture/char/char_unknown.png b/src/resources/texture/char/char_unknown.png new file mode 100644 index 0000000000000000000000000000000000000000..78eb5b7b8d160747f4ab3ad54152e359c340603b GIT binary patch literal 1081 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pR3yVhQ6Kfe5m^?gP978Nl=U%?+e>+s>_{Zx%12ca1KDRrw z)j^!=HV=!^K?z~~9`kqn-!2`Ih;2)>I%dY+qM+b${Z^!e^C`F2M>8LtJ$Kdeea$}p z=QZ}~HivjWiCzjU+qUwKn(X5@Eei#^Ld(o5Hn^=n-oM{y{vMI6KOZIT|ai0zRJ&#y|laY&5wr5*Guv% zzHpzdHDYGoc<7y&otETd=F32`=`ibFnj6kg@rDH+Qv&XXZvgZw0G41@T}$S{h2PG z9>y0XFL9lhsL}hVMsr)#+&;JFt@)AvwBD)z3ikB7l@e?v9`a$`|BmqKGH(mB=e(&% zIbWajw|dq5N%NK4pZJ|hoqdYwsm;!PJMJpPKYP~ZQ{VG>H4nehjKpnjVkb{~dl_$u z_R%k>lR3JWb)EH`oXa`i&VDt1ENUeimmBcA>4VPsh>4GLt5&QHxc6tr)bH78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pROKZl!6=4hvOx~U@jv*GOT`%7bo*gQ3?BVm@lO{}13plax z@{$Q&D~>ic3O=^5vU*&R{6B8}-U}DC_-r}8G4Qx)1UMySIB8DW=DFv`g*B_UUOV&q zcJq#$Gs``nbC%^5+n&G7o)Y{f zF6dBnhPREv)S%@ z{o+t{xo%hWH#tJby{2AcynBwrVDo{Gc5|(QIfFEfG|mV=Ni^INWeqdD}e0)(?N}m#BG& z-#8F4i{I->m-2yn?v=HtKTQv;i!FKmVTH4i@B2AM_qK2f#l-b6oIH6Vr~c28Ti-+M zl+4|^9-cK3mpxUk@zle&=;DIQGK`OsZSE!1P5sEyX|XwU636_wfH?~q(|r%!4Z9K(yX2;Fnd-j3 uhG%Q7!XIr`d%F9g$5-_^^6q_q#AR8|x)!KZ9c5r(VDNPHb6Mw<&;$TS!TERq literal 0 HcmV?d00001 diff --git a/src/resources/texture/entity/armored/armored_zombie_b_0.png b/src/resources/texture/entity/armored/armored_zombie_b_0.png new file mode 100644 index 0000000000000000000000000000000000000000..a2e1479b30893a180608ba6367c43cec5602ba32 GIT binary patch literal 1213 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pB2CJI*%o7X@OlLe@978Nl=U(#74@qS>`tg48`#YJE)=Nv5 z323-3aoFJM(i~{kHg#9R(?h$851vz1Q*#UJl77s7p|`QMF!_#TeAtc^os4S*xM~kZ ziEa^LUmlb;;-J2bd`|1hXO|8w3lQOYuFamcDO=M8twJ*ALsuE}rkiQ}`lMa2|} zpU_39%*yf-YKr@~UUXKr-~PXQt{qvu(Cpleyl48t>)tH5u9hEMa${4kL9LmS zN0W=9r#w@yt$zEO`Ahn*nzjYL+G=@8Wc^#AW%(asS}!l(|KmPOdc4B3n4Jf@kF4i> zSnMP7>(Y5wlbhzFX9Kq($dQCl{`tAkMmDcb&h! z{*=v|yp}Gy{8B<@jh#ir!*7=lZRPHglGU zX|v*YygPH$|ImHy*|s@bPH0VW+N7D6u%>^ex60&B`Lwhv*`<5q`~yY07Jc}w#91bv zwD#cNP_OIx`S1Q;QQ5qCPyL^YKOg1_e_E9L_~zt?LCwnH_8m)gKHpj!{qgSS=Z7y% dW&iVoo%@KzUjM_{j0_A644$rjF6*2UngC32N+JLN literal 0 HcmV?d00001 diff --git a/src/resources/texture/entity/armored/armored_zombie_b_1.png b/src/resources/texture/entity/armored/armored_zombie_b_1.png new file mode 100644 index 0000000000000000000000000000000000000000..e7b6ceb985e9ba362103bcb25bef1563c4d45049 GIT binary patch literal 1211 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pBMvk?UIXM{^m`-`RIEGl9&b_oT|4J&uv5)7g_uv2e>g2^F zZk8->=S-$42_6Psi#R7YcXu|=?Qvc#Jh{1(Q@B&jZ=F>0#DhCHCI_0ADzpS>WJGDY z97%H4wB2#(@r&5^-}mvU`u$-&|G8$rzePV2vvWxHnfT|gPo50nax@pKI+gnO@82-# z)pqm$n=Lt#KmBI-QY()ghF<>_HebF{_4CWw?U#=nVT=q56KVBZzBuab)x7dMI|?ta z?7rW=)LO>s)FB?rm>JJL)Hx}gHqulzEIX<+X;N5r?7Zh$TW6IuH@io~E!oz7>Hc=h zvMI-u!k;%TU7E@-XY%CfCa-+gy>a0=B}=D#d7GBn8FcQJ{gk)^YcsdyJl72h6iFy3 z2;&M&jTWN%{JUa}Ph(ek$r0Sv+Hsjee$y)V6yzbJdP5k9jF< zwR+8>EjJbf)p7+)dH(Ymf7iNmZtknEUdq|_C9LY`BJOW82?_dpHQuhelvVIQbzz6# z8dLe#VuAiU-M2hG$aV+jmrVZ=8N&bBx!THEUj!?M~`R z>M85}oYDErNLp9yp8~(?zrB94hegxY392uex!QPN)E~u|U58%W5!ck8?z^{MzqaV} zb%Uagt5&a1w-lTG<@YzRKAnENf4RPY{elkvoIO^e>#kaEo9=!(NBYq_n^^zvkL}le X@CjPGCbo-#fq}u()z4*}Q$iB}eVjSB literal 0 HcmV?d00001 diff --git a/src/resources/texture/entity/armored/armored_zombie_b_2.png b/src/resources/texture/entity/armored/armored_zombie_b_2.png new file mode 100644 index 0000000000000000000000000000000000000000..2656b8709fdbfde9378d5b62c7b3d746e6750147 GIT binary patch literal 1213 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 literal 0 HcmV?d00001 diff --git a/src/resources/texture/entity/armored/armored_zombie_f_0.png b/src/resources/texture/entity/armored/armored_zombie_f_0.png new file mode 100644 index 0000000000000000000000000000000000000000..43d1da74edb8a026d25f5e279725f01a6bd458d5 GIT binary patch literal 1247 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 O3=E#GelF{r5}E*Z(LHGZ literal 0 HcmV?d00001 diff --git a/src/resources/texture/entity/armored/armored_zombie_f_2.png b/src/resources/texture/entity/armored/armored_zombie_f_2.png new file mode 100644 index 0000000000000000000000000000000000000000..f58a84d4ed48b15dadd5c8aab35c44635393bc5d GIT binary patch literal 1253 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pBCZ5L2^DZ+mFn#fKaSX9Itvl&__UuxbPHAlHHXzJOz%PmXH=%vYgX-=7WWwmHshuE&8$`&P70EncSRq z%OzLWT-f5dxh(kB%`!W~jk%Xp&VT+};juoyVsGW=M{D0P30|lc`eQMrtKgHw56%_2 zP30`V{2Vjo+|(Ue>VC@l{eH0gz+3626fQ1qf%i>XA8uZGy=baZjou;SwiF}Jw?4hn z+xG_?YZoz?(7ONAg0S|4r-D8`O+q{7RfiVsOfQge7IEDYrCYPVJ8kpPS6MS>+t;k^ zo8MNy?LbL$-46~uAE#2`che6P%DAv(JLiZra(w;8=#}~CqlLSFNy6Jh@8&O<&vZ@v zfrq@0AH#ub*Z8J-iC&jTiZyIfP{?ZU;P@RXal+w0r$rUl58e~U6O);iJoZQ_3uBl$ zZ{D<-GbJAyXs@f)JDpt|w3FdJ(|)F`gN&0~6dJk}ypQ^Kma1|rKDMykEQ$4cg-f7x zuWIevu3g`am$W-BKi8D&$h(6*E9Z+;;uVKA1!XUMH_be)u{L0bMuL5{>)V{eSF|tK zG3@=WufcxF(7<7#{8OvD5|20UF>5c`qRZ+yn0_+(EmGNeOa1SM9lTKe-yYp zm$PSXz4hkpRl{Q!E?;h5Y|8MGC*+!=_^S){98VKNQgj)1SO0FAc+^;K-}}osW}YgK z+SxbTRLX5N;-4w*sQb-n5x-fNg2S`O3hUo(b0j4f#^pb#l$%$mvDWUvwL{^r_UlgI zxK(Okx5KOa0fR)3W1V1$-)DC_|5fI$5^WLL8?SxZ!6W6-@2K0*EL$LN)0lkVr;G^K zhl^LH)EHHFo-oVUUlOXzR*?5Ixv=-)+PAqsADoljx{t-sD)m2eJh#iioJYko7#J8B NJYD@<);T3K0RX3|K0E*b literal 0 HcmV?d00001 diff --git a/src/resources/texture/entity/armored/armored_zombie_f_3.png b/src/resources/texture/entity/armored/armored_zombie_f_3.png new file mode 100644 index 0000000000000000000000000000000000000000..15da1cb4b2fcd8ee5becc4a120134709bf9eeb9b GIT binary patch literal 1241 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pBCXq?|*;*MGm|l3gIEGl9*1dE;`)Vn}v5(iE|964suo9AvWKDWI4?YBnudC&jaJTy1CxV1BA=1Ib>Wa@3%_){8~OwFYuL`PwukCvp;fA>8|;8>2zU6#%`0drn7y&R>iIi30ZyB*Vp&= zk3as2&+^OOJpHC>WKrE1dz)jTiSJQ~tx>#d)4C->SD)Ub6RbD=s+P^>_M5w>{PxJZ z_h{$dkatFAoM+CQsrs-$>2z`KQM2OW;#u0fhHm}#C;v)L>S?b}6nSp2x7DNPNX4HD z7n`at88&5aBDO5^jj@+pANyY|>|1gD{Z;C7+!vntRc96}xZbZu)zdgKj-hwzu06SP zkDXGUka6?Ft%(KCbY4$fqUqVVQhSc#n;YMj>F7tqt-H1B=Z1v`&5wk|=D0HQZH|=@Q{Jn1C^PS~>bGa%fF6n((`O!wPr!*i(ecO#X_c?n? zPyK%XFQKC1#+NT!qSmH8Kd0#JeOgUTZSIdZ3l<&}e9pn`@h&VwJ1{zC?uM|~38^!~ zHZR=1-90{j{?VhWR6I+|%Dg7Cl;ke#NJ;L@YV~c7c_(zqCVuJt9L*=JOM^VuhF!iF z7iS%D`cU1%@&+@N$Dw9l0%ks5=_tnT?i6=oX=c*Li^{!j>&EH*P%b<~NV$=4a)F zVUN!TvVEKQ_EpkHMPu_H-`SYYPii@G)O&hKd1(doO_4&-j11<{C%r_(zNII>Rw0BpJOL0b?w*Vddd6dXSY{ReZs)Nz~JfX=d#Wz Gp$Pya09Mfe literal 0 HcmV?d00001 diff --git a/src/resources/texture/entity/boss_1/boss_1_still.png b/src/resources/texture/entity/boss_1/boss_1_still.png new file mode 100644 index 0000000000000000000000000000000000000000..322d7b398e6802a5e6952a676ed96f123dbeced9 GIT binary patch literal 1831 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANNfEt$^F0iMpz3I#>^X_+~x z3=A3*YbV-z9Cna78XvtiN{g>dpzuUM>=p&BM=L@#oLU34x4cRydMR#_=@Aqo!+O1` zS-v}zT|7NjHip&l1M`uS7d3O?Ic=x|j>d1?pu z%r~n9YFx#u1e_!m3mJd44D>lvTyyvE@$0)K&VRD|{`^H~ks5Oi(?^}lyxkSe6;+on zS-ux`j|dFvINy1kXP3f9#2^%N3q4fzbk4y#zRx?i*$B>A_N2j08j|~?+R{y&&?t0nAU;Ib( zRZTlDGlslsV07H#(W9hZILAUcWWp`4DV)s;fuUYX0} z3Q$^+e4KM-B~P%@)o-@X-&}w7z|FPMZRfPSBQximyq8^@y*9r#JNJiueb##MwDk0) zE3|GcJD4IFrsA&rS{P_6$e`{&PvpIAJD=|&<^6_(CUozpvNzw4D= z{;+xK)O|Ux>lj@geAs+`(N@JHF3WgI_j>a%swNmWe{N)+Jo(A7FLN9BF`SXJSNpB5 zesYcKv4-#S%&K}!RRoiIOiH^ia!pC9$>}jpKj&e;E!V#N)F!24C+6R)pReH*DY9c( zVpIY@#g<~@ZHDPXTg+5&09_Peg8H6MaZ;k z(kfPI%i?8qIPF!Fmx%BDzJ$e)wdY#Ou}3wBw(3TG^>^AW{=EL*X;-e>3-A3km(R~H zetu4^^zwvsNk^O9xdx{MT-nw$*YEkbE#xVOmud}*PvK+k^$Vk0&nreO>}&ddp(4ZC`F0sQ|AU|Ub?%y~8Nm;16NKz}9VQ;os;mAG z?a{>&UQqBW^{Y$U#gD@3Dn~u0rLqX_+qCP9x2(n2M>_to>xPJJ_fmeNv}(9oRxd}EW43vaD*(k8HYY4#ZA`I4)nl9Fe^;_U!Hay~iJY68dictE2k+yNw$*DD<-^@TdKr zsO)}0V-dH;<<;xAiiz8Vh6*lL*eISG8rmXovdDR&c*XnbrCk&K_|94G`*rC02g9Pb zw@hn#`mZtO@?2jZzg$bZ?&Iosr2_|<@2i|IcIx3NZ!1`<9Nx8RvT$;XibmrTrMtVl zZ@%2Hd$YHtNy|Aq_nwL6^`Em(ZF=zH;^G;{3ml$3e=gXmuwl!drY~O2OO9N*BBIF| z8X9!nblZs&TaI2eohZk?X6u@@>nBSdmVO@p;J_2}8M9|QM|H52Bl2fqmwyHY_jB(YXZX0^Ke)XzuY2?zD{-*5c zc~X)GpY4sx|6AK_bKdZaoO=5Cd8v7Mc^@ucuyz+(sN=oKCcXBr*y_`#vtFJOE&YA& zzJRBTQflCza*-?p>xG6KOf!$|6nlQBzO40b>=vfUPx2HAd?n@6U@7 zSu1jk>%5QMp09U)JXjR5)>Esf;@8xDZ|j(9o);Pl$?EbmFfcH9y85}Sb4q9e04(EU ADF6Tf literal 0 HcmV?d00001 diff --git a/src/resources/texture/entity/boss_1/boss_1_still_0.png b/src/resources/texture/entity/boss_1/boss_1_still_0.png new file mode 100644 index 0000000000000000000000000000000000000000..be8477a995c2eaeb06195493a99f10b01fd44365 GIT binary patch literal 1831 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANNfEt$^F0iMpz3I#>^X_+~x z3=A3*YbV-z9Cna78XvtiN{g>dpzuUM>=p&BM=L@#oLU34x4cRydMR#_=@Aqo!+O1` zS-v}zT|7NjHip&l1M`uS7d3O?Ic=x|j>d1?pu z%r~n9YFx#u1e_!m3mJd44D>lvTyyvE@$0)K&VRD|{`^H~ks5Oi(?^}lyxkSe6;+on zS-ux`j|dFvINy1kXP3f9#2^%N3kzU`f|Beg{tY)4rjv*0;k4`_G9~&-utp0al-1V}Jzxa>n ztD1IRW(;}N!05Qeqen@-aE^s?$b?&7Q#hLy0z2vCK5|VC$3DOcHSrT*Tv` z6`-^t`8emwN}gb)tKV#&zq$VEftzci+sqOFQYT$b^a?)BzjR825${@lnsdGeEEU*lycul8GA z{p1?eV-4TunN{_est6|an3Q&3hH8${CWMq)2>{%7vB48E}x%Y z{QR6+>E#LOl8!dHa}7=jxU#KhuHW-la41o>z=m*w^&^LPdtN^X)Qr{s%wx>)bU}GlC!3CJ5Q{I!rvERagBX z+M|mlyrAG$>Q|Sxiywv6RgQX0OJxz^~#cBCz69*Vfz8PmUSb+1(31v*-x>`CGrNv}>DQ?B=cQ@d(mbdg8N8bcEWsx6Upa zT}{g}KO9`V^=5F?Z#ILN(1>jLj=&}F$|U9Fj#ZyO=jY5}s&+Z#sKC1OmLF!S&X_-6 zykT4J&xieSOA4o%@2lsXo%&|}ETyF`p`khX`Nk$87v5Usq)lM)((EzJ$;*3`^yJUZ z^_O?Gnd|TAKBp6vtrx#*G`0K0CU3c}KpZm+VHtN)(2Q&Zv4qR1! zUEMu!+L9%KUV&3ZqrS>?a9qB8IU;*y?AhD-dyhZ*B=p_>S4Z{tcN;fsQ0Qk-;7|KK zQQ7^1#v*Qw%d6LK6%)4!4HaChuu(iWG_*zFWRdek@rw7=OS>le@tw2W_v_I04~9i= zZ<*Hg^j~Al<+;8-ez}%*-N)7ON(T-y-&Z+b?9{_k-d3py3o+VtSX#lwAVZ)X^O<%m4mmIlrMMRS` zG&JbC>9!Lmwj8}`I#G^&&DJ$**H4x_Ed4zG!GR~{GiJ|rj`q&eovs&Kbz=Rm`y2az z_1JTBa|<~o&M)f{OVQR(#WMP{Y}}? z^Q0sXKHD3W|F^c==Dgt-Ira4O^HTHj@;+R?VC^onP{(_dO?vHLvDK$fXT3ZnTKfCk zeF0AwrPRPb*ey(xpYr$3I+*SdbSTSt^WCEohhMyS z;k@>7l1t~JJn1c4YftZgTOO9NG-7w9FyoqQ7VqUB9e=jg_tT;Uxl&!5YK+!D-k%pE zvR336*LfeiJzwwqc(5p9t*2H|#jmOR-qtbIJTEj9lGWvBU|?YIboFyt=akR{00Z!2 A;s5{u literal 0 HcmV?d00001 diff --git a/src/resources/texture/entity/boss_1/boss_1_still_1.png b/src/resources/texture/entity/boss_1/boss_1_still_1.png new file mode 100644 index 0000000000000000000000000000000000000000..b61bcfc34f2c1c050e0f15990ebbde765e66f926 GIT binary patch literal 1773 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANNfEt$^F0iMpz3I#>^X_+~x z3=A3*YbV-z9Cna78XvtiN{g>dpzuUM>=p&BM=L@#oLU34x4cRydMR#_=@Aqo!+O1` zS-v}zT|7NjHip&l1M`uS7d3O?Ic=x|j>d1?pu z%r~n9YFx#u1e_!m3mJd44D>lvTyyvE@$0)K&VRD|{`^H~ks5Oi(?^}lyxkSe6;+on zS-ux`j|dFvINy1kXP3f9#2^%N3kwsOWmjD9;%O6h{$B>A_N2j08j|~?+R{y*7o8|SgjlcMh z=&PD`USsT~E!FQ1-pMXbFSjjJY!({`vX2QY6Q=D=;$bh{Vqyll?m^gQL2$rKU}r z=5Xl#|DXJ2Wn~&`Sv6YzxU)!;?mGG^m<%#Xsd2ePh86{h3Wrao)6!!%X#l_eY^Yjp55E) z`)b)jgSH8_xpM=Y1dHYN^VO8R-o8_7xq#BcR}2Rd(xnwe zPI2VbJ~mC!{=mvIcV+Ui>I|DL3m4|HKUV*+HveA;$Ha-J9@#Ds+RxwMyMXn*{9i*$ z*QU)fv41)%v<|Z(moer?TutX@!+s(Svc z?4b;Aj>c6hB6ja~Tqv@6^JeFxTU6~Tu3fvn(@?2%;_VB^J^YvySzH4btWA4&L9ysu zM0VyZHhG(%Rm`oWDNK_?Td)0UlyH4@u;JuM&pqGYyfJABSlqK@lkg6~=LeF5FT5@L z9`fXoe*BWcS>5|9_;Y#M#l<`{14Bh`-@fhR6T!yZZq_x&fuk{~>+D(In4XwlS2?4u z7yLZS|LsF{zmCqQi>H78wfkE)KW_c;qu1}dcTKw#HP5<6La{Bqw&=zt71d6Grd4Yu zI4Lhxd4A^6Bc-V9tngy6?q7fZ*|E#tZZprn$MWDvr|@Bcm5Fs*ukCoSa#fdvu_fQ$ zwX3=Wl$HhDIP_?*{4y;!tE1vO_&?5D!OYJqFJxKu#9hSIv18)Nb1dshMVtakxsrM& z7%4dyO?0$f@TTO(-J472%y5{s{_WwaAOBZLow%F#{q#>I=JfOPRF@w)bcjhab=9gR z>$10)N~|m_^-YOjj>^7v?Yf~?;m1qgEsXv<%N_mmY40QZ<93e>>(9-#p6<+X=FAxb zQ%hE+ImIW~1)MxzEqk{4_k6+Rl+w~r8_v%Txe`tc3EA1NJGYsKg}Yy4vdyaIO8)Wd zkc?g$+ivDH7e!J%FK^LUED+@66I1oLmwDy86Nf#PwDe0}-)3WM+N#&K^WLx9Vy=M; zB<%e3Vs;!jb?VfA8{YrfPxcfqnWK4HC|G38`umArf0Y)#eHB{x{a*Y@OTo@5*W^69 z-0yQvRhoRzV@`JAx!R4|Z{8`fY6RODgvLLeV!_d9`*@B}l-8`bj9!|{mM{OlwXa)n zB5Ubwg{^Y`4JJ8lDEn7O(Vqv+wW! rdgs>{uWLb*T%P=RbXxiGKWX>g;1@M3WTO}u7#KWV{an^LB{Ts55j9lj literal 0 HcmV?d00001 diff --git a/src/resources/texture/entity/boss_1/boss_1_still_2.png b/src/resources/texture/entity/boss_1/boss_1_still_2.png new file mode 100644 index 0000000000000000000000000000000000000000..7a551ecbc7d75fb8d866956a1b9a2a4c4d5c69a9 GIT binary patch literal 1773 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANNfEt$^F0iMpz3I#>^X_+~x z3=A3*YbV-z9Cna78XvtiN{g>dpzuUM>=p&BM=L@#oLU34x4cRydMR#_=@Aqo!+O1` zS-v}zT|7NjHip&l1M`uS7d3O?Ic=x|j>d1?pu z%r~n9YFx#u1e_!m3mJd44D>lvTyyvE@$0)K&VRD|{`^H~ks5Oi(?^}lyxkSe6;+on zS-ux`j|dFvINy1kXP3f9#2^%N3G20@Mv|kJiEPp&*977@wADwHa|~pZFuh zAG>UQsw3nqzI2M-t`9-mp4Qzsz2ySSq?}C!3l2VUVu};tT3dcsF5bn<{GDB-$Sf1n z+?11(9LaE333 z+;f@S0*$pDnu1OXRz^<|QD8B?d^u)Mg<NKQB%9fkCKO?`>xKK|L3duju$hlmMz&PHd9Ew zf4|)=fs~^X_pJA9Z@EzP=*sFnG7ryA*irk+bY5*4PrBlD%e_TeTdWuiZrpU^XfO|A1$%GvHS;ZR6TYz2{kSCU)X@@Rd5%%*6FdJC!7UFSKi;o$v|+pD z@#pob^Sq3$s^7(QDJJwBTzo)br+ZH8G?9Yn}6^)LL4hcQ_bi2J<*EFT`mH%!Swn(fiy*Npn)zGU&V2W#}h?J(P zrs}ij&o4#=-=3u{Uw7!*wQF|I4zt(fNY1mX{dGX&iow39>^0?6Qaw33McS6@o)&t~ ztQPzvvadK#VwJ#)ROd6%+w)`()GXq&iC`%Bvon4|s-zvuvFhX-*Cuf~-aO5r=-|`A za*>VgYr~@J$>r(OlX7@6)%bJ%7`#j73<*8@K95|<3WO@IAWyur)W$Ewxk8Ia0+EeFwk6etpi%_wFoK7T1gMxL3Vw`SO_( z^BEYgMLm&g37E8N<kmV4{0Uqh*SK()+#t|1AvJUTiF6_{izdHr?|+J`0S`o_eJ<`~NMK z(?%kPkDpxXJv|~SN~+epq?$8AgjMZyMC{(vpL(Sq{o0zH^!VQNB_f zq_FRMyrvLm&yibV*>B6sTkpm$VMyI%8*Ey|zeM6<(8V17053yR)6xYcIUF4-D{ix` zEPdX0dneZtfi-t_Ix}sV67ihx$?;!zOE=jp&z1VLsKRRf$NuWaPmT&ZD){<30|Nttr>mdKI;Vst0PJlz!~g&Q literal 0 HcmV?d00001 diff --git a/src/resources/texture/entity/boss_1/boss_1_still_3.png b/src/resources/texture/entity/boss_1/boss_1_still_3.png new file mode 100644 index 0000000000000000000000000000000000000000..d4f5795cf94a52670d87ad30abc79a33c622c6fc GIT binary patch literal 1824 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANNfEt$^F0iMpz3I#>^X_+~x z3=A3*YbV-z9Cna78XvtiN{g>dpzuUM>=p&BM=L@#oLU34x4cRydMR#_=@Aqo!+O1` zS-v}zT|7NjHip&l1M`uS7d3O?Ic=x|j>d1?pu z%r~n9YFx#u1e_!m3mJd44D>lvTyyvE@$0)K&VRD|{`^H~ks5Oi(?^}lyxkSe6;+on zS-ux`j|dFvINy1kXP3f9#2^%N3G5_ro_u?2BSoJ+!977@wADw(SSpDx(xqWpj|2zEY zxHRj?O9rjb70fLa9+Iklj|!&p7-@KH5lTIzz_Du8maL^b6DBAaFFRhgMoH}?52LHo zqd=t<$;bVIKT9lIaOIor^Ec|v*{nO2&YJELOy9J0@z(u+-+ujZ?be6-e@7C{b#!!= z?9s`b&6dg&#W870hlJ;WpwLcrrw4~xxldXi?-W+Q;Pt4+;Wf{D-H9$-g2_D5-`@qA z^V;vOt5wLc)M#XwQ}ZoyNyrZYL#M#&)hzD?IkyBxJg=-Oo945!(bhnqv9&n;^2VEy zJ=aJ$NEiW=} zPs{tB9TIx<=jQaCd+XSf&lF5HaAb;z{?F;DwQk?n=)QAj6j~nq-DNgiB#eqU1#s~+=u;ZhF^_TJ`e=38>}f3VE^e`kBE0O!i0Im{tXmdl+`&N#Tf zzrI<7`Q9^``M;M{D4l(A=jUh5wgyAC`9kqAu@8?5zNkxWoFZiBc4|>VYGvgQmUH@g z%Vy40mYDl^@A5NV*S49Rn37agwQK#1%Er%qTfdgBF<*{VwWlTupt z-nH%WW6xBROS-?K@bO2dEqnHynQ5H#rMy zG!}E-d&udbspz)tU2Q{tbjya2(4$9=u-wg?-r32yYSphRDn7se+wCm+_~_`9z3Ew5 zT^lbN3jCdLvX*0^N@?)thkN-s6*uhKr6t#1xx(nnJ?0I2_x_Ez{d)Ck=IlnfEjF!& zHP2q~n5k4%+ZHW8+10cxGtf32H>9!@r#M*XBkdL3AoQAA4 zlM?5vZH`&Cf6`Q16W)Hy6^X_+~x z3=A3*YbV-z9Cna78XvtiN{g>dpzuUM>=p&BM=L@#oLU34x4cRydMR#_=@Aqo!+O1` zS-v}zT|7NjHip&l1M`uS7d3O?Ic=x|j>d1?pu z%r~n9YFx#u1e_!m3mJd44D>lvTyyvE@$0)K&VRD|{`^H~ks5Oi(?^}lyxkSe6;+on zS-ux`j|dFvINy1kXP3f9#2^%N3iFo_d3+EXaSoJ(z977@wADw(SSpDx(x$A{1fAJsb z*Xqoi!?)_3Rfd4>qQh~5!_-?{Tx?UdE}oHaaV^VP-Vw;)%Auwp z%E9>RMyb=QfHuvEQorXNuhU^OXOWunY}YQq>Y^o!i?99r7IpvEzO4`c@41p!KV#<1 ziFSu`1<(e ztFr5MZ88eTvDIkckg59Qxy7tyM!~6oQ0pTC0Zi8G|US&Q{aWhjFp#xrnIw8ME2evZ*h;d-hrVuhWu6w-?^}sXqVS zzO!4iXNQ#fK9g~@@ttaLO2D;kJ#+nzKij4p)$mfS;Zc})-+%v+<<~yF`JMkT_`yYY zuT|Szy9-`)hPOpGt&vb<@#oMrG?S_Ml^W;q;jKnY-LGhyZ#OvhwcdGFa>~7ZH8aEB zx3@J?4g3m!t_;7>dnjFCO@Qmc>J_#o3zub9@gL_-d;U!2Xh(6M!lCf6>6HtakI$d) z=)$2HD8_pF`MH$~nP6|4E$V!;ydalTsxW-EKY5JUvN*wUaBECpA*Y=}2mu z&FPQ#lGnCMyiB>UO*g*wUG@)&odpk>{>jzVupRKfS3CXZ&&n>N#n$GhFI{>Rn-Fep ze)F>A%g+v)r~KS{1Sc(E36g#pYTM=4KKHF`*F?cBzl99l>OQ}Y4-~Oo_x+uGf5Gjyi`J@c zp0+vtd|lf8SVj&-12eN@FXjaX{QdIET5-z7kkX^>*X@;#op|+XRaL;5^Oqa{Uz}9G z{o1u_*O;TTQ%g$|3^z4}MyJD79?%M;(2iCP+ddaN6>i5Uw&xd_C*(_g~{b^A} v#rDU)*PfQ2Be>es)0NM6uSvn3dd94cd5hTtBs>@x7#KWV{an^LB{Ts5!}V@3 literal 0 HcmV?d00001 diff --git a/src/resources/texture/entity/boss_1/boss_1_walk_1.png b/src/resources/texture/entity/boss_1/boss_1_walk_1.png new file mode 100644 index 0000000000000000000000000000000000000000..ab3a22a436efc46271450bf010745764d0d780d4 GIT binary patch literal 1831 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANNfEt$^F0iMpz3I#>^X_+~x z3=A3*YbV-z9Cna78XvtiN{g>dpzuUM>=p&BM=L@#oLU34x4cRydMR#_=@Aqo!+O1` zS-v}zT|7NjHip&l1M`uS7d3O?Ic=x|j>d1?pu z%r~n9YFx#u1e_!m3mJd44D>lvTyyvE@$0)K&VRD|{`^H~ks5Oi(?^}lyxkSe6;+on zS-ux`j|dFvINy1kXP3f9#2^%N3iGqDZ=>Y}?Rx?i*$B>A_N2j08j|~?+R{y&&?t0nAU;Ib( zRZTlDGlslsV07H#(W9hZILAUcWWp`4DV)s;fuUYX0} z3Q$^+e4KM-B~P%@)o-@X-&}w7z|FPMZRfPSBQximyq8^@y*9r#JNJiueb##MwDk0) zE3|GcJD4IFrsA&rS{P_6$e`{&PvpIAJD=|&<^6_(CUozpvNzw4D= z{;+xK)O|Ux>lj@geAs+`(N@JHF3WgI_j>a%swNmWe{N)+Jo(A7FLN9BF`SXJSNpB5 zesYcKv4-#S%&K}!RRoiIOiH^ia!pC9$>}jpKj&e;E!V#N)F!24C+6R)pReH*DY9c( zVpIY@#g<~@ZHDPXTg+5&09_Peg8H6MaZ;k z(kfPI%i?8qIPF!Fmx%BDzJ$e)wdY#Ou}3wBw(3TG^>^AW{=EL*X;-e>3-A3km(R~H zetu4^^zwvsNk^O9xdx{MT-nw$*YEkbE#xVOmud}*PvK+k^$Vk0&nreO>}&ddp(4ZC`F0sQ|AU|Ub?%y~8Nm;16NKz}9VQ;os;mAG z?a{>&UQqBW^{Y$U#gD@3Dn~u0rLqX_+qCP9x2(n2M>_to>xPJJ_fmeNv}(9oRxd}EW43vaD*(k8HYY4#ZA`I4)nl9Fe^;_U!Hay~iJY68dictE2k+yNw$*DD<-^@TdKr zsO)}0V-dH;<<;xAiiz8Vh6*lL*eISG8rmXovdDR&c*XnbrCk&K_|94G`*rC02g9Pb zw@hn#`mZtO@?2jZzg$bZ?&Iosr2_|<@2i|IcIx3NZ!1`<9Nx8RvT$;XibmrTrMtVl zZ@%2Hd$YHtNy|Aq_nwL6^`Em(ZF=zH;^G;{3ml$3e=gXmuwl!drY~O2OO9N*BBIF| z8X9!nblZs&TaI2eohZk?X6u@@>nBSdmVO@p;J_2}8M9|QM|H52Bl2fqmwyHY_jB(YXZX0^Ke)XzuY2?zD{-*5c zc~X)GpY4sx|6AK_bKdZaoO=5Cd8v7Mc^@ucuyz+(sN=oKCcXBr*y_`#vtFJOE&YA& zzJRBTQflCza*-?p>xG6KOf!$|6nlQBzO40b>=vfUPx2HAd?n@6U@7 zSu1jk>%5QMp09U)JXjR5)>Esf;@8xDZ|j(9o);Pl$?EbmFfcH9y85}Sb4q9e0NaFP A8UO$Q literal 0 HcmV?d00001 diff --git a/src/resources/texture/entity/boss_1/boss_1_walk_2.png b/src/resources/texture/entity/boss_1/boss_1_walk_2.png new file mode 100644 index 0000000000000000000000000000000000000000..6d815e7a76b7c5a2d854c1188309f7e3fc47884e GIT binary patch literal 1827 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANNfEt$^F0iMpz3I#>^X_+~x z3=A3*YbV-z9Cna78XvtiN{g>dpzuUM>=p&BM=L@#oLU34x4cRydMR#_=@Aqo!+O1` zS-v}zT|7NjHip&l1M`uS7d3O?Ic=x|j>d1?pu z%r~n9YFx#u1e_!m3mJd44D>lvTyyvE@$0)K&VRD|{`^H~ks5Oi(?^}lyxkSe6;+on zS-ux`j|dFvINy1kXP3f9#2^%N3iTXmD2gwW!tVW(Ljv*0;k4`_CKkd5cvHJ3=_VdmG{}^pJ z3z8>$g_gy(tZKd@DrX=+BXw7XlId!_6N{vqcAZcPTGHY=-NW#h+6wJkT%l)|O}%8c zQ1=+y@*}d-mUtZeckdzJa&C8*%*L8^JyquA#qV~Ww>|uM4)_1(OTSeml$C{j+O%Y4 zc29A{Qh~LBnu-UOE>-;+!Z63CGHB0tA79_Z-ec_@TO}2@sIYW$K9`wY{yylcX?S?p zuTN`#vkEjWK5yTDtxZ7KPjXdOy9ATh0W0U%%g*@@x{vp!yIHu2qDFSz2>tlnPUdwh-a_kWk;{#?An=D38jPvf#oi_%r6 zFI^H+fA(z0);j6ucm9bjY+zWkc7JomVQKrnvck#98cTQV+;%M6{-@g9OP4B|k4$@c zGW^?i4tcTUly^9~>y~yt*wz zu+Q%MtAEQBwAnZg3OjlC@CNJeIpob*C(|me|ED8;zU+bR6K>D(t4ye`WLU8MFT+xv zW14w2k3&lqe~@I+4hj4qm&Nb9B6HTg%NLt|3ahIe?I`Y3IJ7-X|8o$#Uv0UVpyCpj zNRgPhxUk=R4~`sa>gkm|a&wLVQ)<|zZ95&)cor{Syt`$p_>TvX(edd^{RL{v8~X)4 zxt5AVPD?C4edAzr2S??+;OnM#6gC_+ zL}ly6?O8GJ2J79t@LhM;ojG&n#M`snpO$Z(fAY+mH755KPf==dnD^Wy*PFvMG<2cw zk)1q?WenZa)YUg$3)(80zxOAj_w?yI|G!**XLou3(W9=FIt`bX`=9>%`}@wKr(ApE z`iq~}b%*h~&MSU$L2=40*7w2QaUx5W1bPLEsYbos7vQqtnp01SQO50Q`Ss7Me@N^s zdn;vk?D*$~nsslF_sKdh?#OkRd6#MPwM%UNk<*T7c!WqKYn+}WprmK~B(m@Oyt!{> zyBZm{RJTbezyJU2x`^w!kB^TV`YS2r@?2jZzg)+w?&Iosr31z7^$ycgTO=gk@LVv{ zof$M`ZjXeriX-O|vrDV1MCS6%F8}Y9AvGl{GA=GHEv>C_VPac*d*rT?mz_2Wck{$2 zaxk5q9zNmj6$MR0LqkU|r%17o(AKlEe$ls9DKU9zuGxC$=AD$6cgwGed-YWv`Io`a zZyXmBGev+&Sy`Efm#^{G+4cYKv>MG?weH80cj`wZB4cCUay#75m2hH6$j*MPof{q& zF7N7=rEl{g{@5wYeP)Jk(yjOW`tL+;TC`xDbdRydT1B-u`}#V6=Dv5~(ji_yG`9F2 z{%}FSZ1bA6>oMxVgD&U;F-#y0A?}uxrtQR7rFDT|W)ZAAkNV z<9is~A(EBsYF ze0)U@4u}Vzzq&g7YVU0EBU!#d6Bkd`U;Vf1fU|p)=C!=LP7JF}*M5&T`t$1w|Mx!^ w?|ydqGQF33(bPi`4^RB~U-qzmT|M&wpYk=U|7V&oFfcH9y85}Sb4q9e0O93f=l}o! literal 0 HcmV?d00001 diff --git a/src/resources/texture/entity/boss_1/boss_1_walk_3.png b/src/resources/texture/entity/boss_1/boss_1_walk_3.png new file mode 100644 index 0000000000000000000000000000000000000000..26af1055cc919032a1d2297f062f4918e388079d GIT binary patch literal 1831 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANNfEt$^F0iMpz3I#>^X_+~x z3=A3*YbV-z9Cna78XvtiN{g>dpzuUM>=p&BM=L@#oLU34x4cRydMR#_=@Aqo!+O1` zS-v}zT|7NjHip&l1M`uS7d3O?Ic=x|j>d1?pu z%r~n9YFx#u1e_!m3mJd44D>lvTyyvE@$0)K&VRD|{`^H~ks5Oi(?^}lyxkSe6;+on zS-ux`j|dFvINy1kXP3f9#2^%N3iP4#dEFBCCtY)4rjv*0;k4`_G9~&-utp0al-1V}Jzxa>n ztD1IRW(;}N!05Qeqen@-aE^s?$b?&7Q#hLy0z2vCK5|VC$3DOcHSrT*Tv` z6`-^t`8emwN}gb)tKV#&zq$VEftzci+sqOFQYT$b^a?)BzjR825${@lnsdGeEEU*lycul8GA z{p1?eV-4TunN{_est6|an3Q&3hH8${CWMq)2>{%7vB48E}x%Y z{QR6+>E#LOl8!dHa}7=jxU#KhuHW-la41o>z=m*w^&^LPdtN^X)Qr{s%wx>)bU}GlC!3CJ5Q{I!rvERagBX z+M|mlyrAG$>Q|Sxiywv6RgQX0OJxz^~#cBCz69*Vfz8PmUSb+1(31v*-x>`CGrNv}>DQ?B=cQ@d(mbdg8N8bcEWsx6Upa zT}{g}KO9`V^=5F?Z#ILN(1>jLj=&}F$|U9Fj#ZyO=jY5}s&+Z#sKC1OmLF!S&X_-6 zykT4J&xieSOA4o%@2lsXo%&|}ETyF`p`khX`Nk$87v5Usq)lM)((EzJ$;*3`^yJUZ z^_O?Gnd|TAKBp6vtrx#*G`0K0CU3c}KpZm+VHtN)(2Q&Zv4qR1! zUEMu!+L9%KUV&3ZqrS>?a9qB8IU;*y?AhD-dyhZ*B=p_>S4Z{tcN;fsQ0Qk-;7|KK zQQ7^1#v*Qw%d6LK6%)4!4HaChuu(iWG_*zFWRdek@rw7=OS>le@tw2W_v_I04~9i= zZ<*Hg^j~Al<+;8-ez}%*-N)7ON(T-y-&Z+b?9{_k-d3py3o+VtSX#lwAVZ)X^O<%m4mmIlrMMRS` zG&JbC>9!Lmwj8}`I#G^&&DJ$**H4x_Ed4zG!GR~{GiJ|rj`q&eovs&Kbz=Rm`y2az z_1JTBa|<~o&M)f{OVQR(#WMP{Y}}? z^Q0sXKHD3W|F^c==Dgt-Ira4O^HTHj@;+R?VC^onP{(_dO?vHLvDK$fXT3ZnTKfCk zeF0AwrPRPb*ey(xpYr$3I+*SdbSTSt^WCEohhMyS z;k@>7l1t~JJn1c4YftZgTOO9NG-7w9FyoqQ7VqUB9e=jg_tT;Uxl&!5YK+!D-k%pE zvR336*LfeiJzwwqc(5p9t*2H|#jmOR-qtbIJTEj9lGWvBU|?YIboFyt=akR{0Dy91 AnE(I) literal 0 HcmV?d00001 diff --git a/src/resources/texture/entity/boss_1/boss_1_wg_0.png b/src/resources/texture/entity/boss_1/boss_1_wg_0.png new file mode 100644 index 0000000000000000000000000000000000000000..76d0d8017812b2b581d1e055034e9bebee478d4b GIT binary patch literal 1823 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANNfEt$^F0iMpz3I#>^X_+~x z3=A3*YbV-z9Cna78XvtiN{g>dpzuUM>=p&BM=L@#oLU34x4cRydMR#_=@Aqo!+O1` zS-v}zT|7NjHip&l1M`uS7d3O?Ic=x|j>d1?pu z%r~n9YFx#u1e_!m3mJd44D>lvTyyvE@$0)K&VRD|{`^H~ks5Oi(?^}lyxkSe6;+on zS-ux`j|dFvINy1kXP3f9#2^%N3vGPlSO?w#_SoJ(z977@wADw(SSpDx(x$A{1fAJsb z*Xqoi!?)_3Rfd4>qQh~5!_-?{Tx?UdE}oHaaV^VP-Vw;)%Auwp z%E9>RMyb=QfHuvEQorXNuhU^OXOWunY}YQq>Y^o!i?99r7IpvEzO4`c@41p!KV#<1 ziFSu`1<(e ztFr5MZ88eTvDIkckg59Qxy7tyM!~6oQ0pTC0Zi8G|US&Q{aWhjFp#xrnIw8ME2evZ*h;d-hrVuhWu6w-?^}sXqVS zzO!4iXNQ#fK9g~@@ttaLO2D;kJ#+nzKij4p)$mfS;Zc})-+%v+<<~yF`JMkT_`yYY zuT|Szy9-`)hPOpGt&vb<@#oMrG?S_Ml^W;q;jKnY-LGhyZ#OvhwcdGFa>~7ZH8aEB zx3@J?4g3m!t_;7>dnjFCO@Qmc>J_#o3zub9@gL_-d;U!2Xh(6M!lCf6>6HtakI$d) z=)$2HD8_pF`MH$~nP6|4E$V!;ydalTsxW-EKY5JUvN*wUaBECpA*Y=}2mu z&FPQ#lGnCMyiB>UO*g*wUG@)&odpk>{>jzVupRKfS3CXZ&&n>N#n$GhFI{>Rn-Fep ze)F>A%g+v)r~KS{1Sc(E36g#pYTM=4KKHF`*F?cBzl99l>OQ}Y4-~Oo_x+uGf5Gjyi`J@c zp0+vtd|lf8SVj&-12eN@FXjaX{QdIET5-z7kkX^>*X@;#op|+XRaL;5^Oqa{Uz}9G z{o1u_*O;TTQ%g$|3^z4}MyJD79?%M;(2iCP+ddaN6>i5Uw&xd_C*(_g~{b^A} v#rDU)*PfQ2Be>es)0NM6uSvn3dd94cd5hTtBs>@x7#KWV{an^LB{Ts5p($;c literal 0 HcmV?d00001 diff --git a/src/resources/texture/entity/boss_1/boss_1_wg_1.png b/src/resources/texture/entity/boss_1/boss_1_wg_1.png new file mode 100644 index 0000000000000000000000000000000000000000..9e1c853b41ecd8926e670ae08a13e44b3508ef3d GIT binary patch literal 1773 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANNfEt$^F0iMpz3I#>^X_+~x z3=A3*YbV-z9Cna78XvtiN{g>dpzuUM>=p&BM=L@#oLU34x4cRydMR#_=@Aqo!+O1` zS-v}zT|7NjHip&l1M`uS7d3O?Ic=x|j>d1?pu z%r~n9YFx#u1e_!m3mJd44D>lvTyyvE@$0)K&VRD|{`^H~ks5Oi(?^}lyxkSe6;+on zS-ux`j|dFvINy1kXP3f9#2^%N3vH9myX$Ke>SpImrIEF+VK05t$er&ktvHIVo-z=|}ZT!W5 zL|@gk^D<*dQiE0tOEb^hBM;Ri7dE+QZ}pL2>C|cp2|2~UxiaP0muHDvU#ZO9-t2W@ z8po>}g-%&=$xEVdf1k5?K2P4GYlBH_4$p-$1iw2a&~#$Bp}o2)5n?2Q~v(`@;s?~ zI}4LlaxAqPIb`bpRW1o>nPK1*czyQ~0RhP^ffn)>M)v*-ubdE+=sfUg<>a3q{@A!> zC-GFg&s^-D>3V9WgtG75MN1eIXUv`X@XycBl_EK|U4fBdM1d?|NrDKD=X7j%c?nZzOBpcZI8Ph?waJ}H-*If``WH^=B#4NgUee@>;C=P{xW3NHSMAj z9o>CK_mu8vA3JfO_`N4*5|@Uiq1WS@LtAx&dg5AsDNO(W@_hJ)UCw)d>)YMG_w3$Y z-&e~P8njKY&7B+IBv>rBpRcCm_4b`w%LSAkCO63Ze0=G2%{tTjKM&`B&@}k#8RcF|2S-3El{jvIowfX--I3`X!^~iRC(0={~-vzAi<^LL5 zx;AZ=iT%@Ap>_Dhm6w+-k9HWgO)$P6yZ4;8?2EeknRAR4Rab3#@@s4MWA%cnRMqom zWe;U|b2P465wUx><3f?mn>RZj-J)t&aqZgmorX%C6K`KQ?%~Iz$l@BfU~SsF3yMYO zBC<1QvB}#6tzvF1O<|fG+IsC*qlD|LgAFH7dhYrD=8Z{9z~Y`In}l}=K0lBgeBo`` z_mC%#^y8Nl&g$M@!Jo_1E-vPw85k;h`}S=gp9nVQcC)TI4jhd^U1!hw#`MJey2=@K zz2N6r{%;?u`*n0aT|E8!uif9e`El!yAH9Cxy=&T~sCm{k5{hl0 zu3gn7ptLOD#-T@h<(Fx>SsfMM!T)jI3TA#@c_GWHC+;GyjvW(Eo?}^8D&iDS%9YeJ z!AQxuXriO-f;S~M?%rHFXNJS9^=}VX{rJC1>cri=@27t%F{huOr@H*ep+iiXsjF5k zS(m-VRAOaesc%XIb5!=VYu63E3O`=@ZejG_S?=hcPkSHPAGdpCSbuJ=^>k;BGiS~i zm|C(j%_%;?F5u+(YT2{Rzvl}kr<9h4+Hih$$dzznNXX89-MP&?EZqGXlWkTtSMrZv zhh+59*mg6oxhRtAd3lS*Vu2thpO~u0z051$ojB~Vq@`c-`ZgP5(^kEn|*)( r*E_$ycwGycgTe~DWM4fTOwA7 literal 0 HcmV?d00001 diff --git a/src/resources/texture/entity/boss_1/boss_1_wg_2.png b/src/resources/texture/entity/boss_1/boss_1_wg_2.png new file mode 100644 index 0000000000000000000000000000000000000000..3b5e5f9aa5877b08878d2b14f9c80f71b90225b6 GIT binary patch literal 1772 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANNfEt$^F0iMpz3I#>^X_+~x z3=A3*YbV-z9Cna78XvtiN{g>dpzuUM>=p&BM=L@#oLU34x4cRydMR#_=@Aqo!+O1` zS-v}zT|7NjHip&l1M`uS7d3O?Ic=x|j>d1?pu z%r~n9YFx#u1e_!m3mJd44D>lvTyyvE@$0)K&VRD|{`^H~ks5Oi(?^}lyxkSe6;+on zS-ux`j|dFvINy1kXP3f9#2^%N33G-ZgmQ4%{EWbTn977@wADw(SSpDx(x$9-JU*$XE zy^^w)d#o^S5nyJMYqEWVs~yr|VPPuz-nW(= zv}h0Ix+pbOi0RL!Rac%fJvh|L{b+A`W+rF0iJi-uvm6VR6+L_`p6@9CZ&!M`;PJ1o zar;W+83ZkU|M{Ge%VGF%%EEQuI~5nOtT8UJE2yfQcV@;t$rr2%skxzkXU{)gqk632 z`#iI%9#a*;q#l#f?u%SglFHKBPEXhOmcPHPKQM605s9ClcfS{M)%Y}LU1mgF92@Wd zAJ^?~-oCx~MDc}LKW|Rnl54$>=Zf#)43kIC6+f&lzn55>D?0tTL~@7bg>AZrA8uc< zs_XOW)pu@I$v?kS;i;j(Fgtp`!;x*8ZA&K~DWgb^T7aJoYQU|36!NH`eaQ1HIDA z6D-{Y{G-)-j9eyue0^Yk-d~?nNnA^X?ARupke?p^NICoGEBU%E|3=~SQ?A6ei#>c( zyuRl<$EKtv0UO1VBR4jEIdpo@j0e?$JH8$&ul#nCvxa@=S;;Bt$5t~luvhQaNHy>) zeC@q{L3HbRg@}cHP2Vq6WH>wDmaDPbn(+2drKjPeIm#U$w)SqXEMz#me!YTH%M^|7 zrtSBuynAI2{QO!vbGCKoW=lnuQ)^N_-|ILdk(Qp$&#JBe;o#<-TaSL7r%-jDNnUx9 zh?nLjox{(j?VPMGDEP@{d8Sm&hm735sn_l?sC6|RJks!ML0VQ3m!RTlBa^NRm2--( z`1*Qviah?osIm0Ltv;R8D`rcvilkOX%(&&jQ7y4ta*D7-@{eb?X6^a5xOhwK;o13r zzMb&@>azcXA;aN^A3R*w{rjM8GWY2#{yN{+wq7d_f7bUdD=**Z7kFLvn&g~Q0bYX1 zDTRd-&tB}HW#+>Ff=&&GU_9_?`v|{5ts{G<4(U&Ca2rF|}XKGp+_bu}t@y z>$LK4tzGF8S4S_Yr6Q?;i>A6}_jV+#ZIzHrkzr-CD1Ue7a_NJG7Y|3ybZ&~we%Z8K z$2&)Qe|GQ^*^a#r>U;AgT6(=m`y12OQ{M>(Lk<$c|Qi==; zPcSdlV3#y>^Jo(Ch<&oaZh-{Pj`IKcE!$jI_N`hqW8S>9s;XHJ3p_$Y{|B?DSjgCU zNwDmw_^32Vh?|>xiOQ5z$JpyP?mXPGbanP4=0#E2H>G;zM3pNAo}c_VnXzWp$EDuW zRay?5Il~h?Ie5W>*H&Mc#ZP6tTK4SlZ+W5Ql;q^a;tlt%8?-PS`1b8vaPIp2oSI1z zD<8i&aJ*+~aZO@kpB@+cZ}unWCW*58UQU|hn8|DS@z(40@~aQNjO7jW`k_&hd)hcS z_{Nz{JGUPFc7OZHO+1GmK7Mj)s`i@o>%XtF|C{Z2eWHs-7t{3AJ9Y2BU9_xEE)5ks zKj&CfH;ezY=kp`Gt}d^WZdQ0;5_|np>D}a;JAeO+-DI;oSL)NE7qNxa=?+1MvYa

^X_+~x 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 BH;4cL literal 0 HcmV?d00001 diff --git a/src/resources/texture/entity/flare.png b/src/resources/texture/entity/flare.png new file mode 100644 index 0000000000000000000000000000000000000000..1fcdd0d7197d099b78387ad8e19b617b75b2f694 GIT binary patch literal 1119 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;q64e`WDy^|OinDRVb978Nlt6o0s7o9G0^y7WYZx1DAdvllz z20QKKSiaW5(PM5&Ke&#KkWGlPI?e^=CYbT86{X6M2@sY&O zkCE?sH~yS-kcn3$`%2cIfR!nQGPh%vw>+-*?CMGUWqfbHQkC`TYkH?e7xk>R;*Q@C zRXycz(Pq)PZ$H&8o%A^EZscoCq{f_mg_F=etcAZ&btZcpLYDN_&v)e?Aggj4vLE} z_{TeKcTaAg*y7a4*mGX6U-#nc0!1DPsfWwFH5Jb_RjV();O^g18ua+JdP($?_2)Z_ z&Mf(IYtEkK_KR+c^yuX@1ocHT=$Z?jMRh*0;+yvw>>$F2XiT)pk%@AoTybX>IL>R8@oB0WXC(!eWm z#y8&+^PQhhdncQD=#bW5PS1HWe+p>c%Q5=M*=u#VJ4TM>$v&CAJ!{0ZdX3`j(|7pn zK6}mTbG%S)kCDka$EiG@wPWTK?mPct`4)ZVPZ#+zJ5Tecl$XqYsP{;N?~#?4=6bV? zH|&2N3VwUFr_wLz!3+6W;S2v?3dzu|EBETTdfqaVJ+bHJ@i}i=U(cEI_*2WLpp1m) gyw{H>D*tEKEqNBUEw}peR2r zGbfdSL1SX=L|c!;4l+mMqqjzB@s$Y_o(PEDqM-F?MW}{TYk>BaR|!Qg#Z59jf?{M? zuQxTzcZafzr^m|1usVKVK63J+=S5eqKk-2sf{zat+TXideP=K8pRY#2XZs2ruIeaH z?ckpIW|csVt9X@wlf+^nhdMa_rmTGfk7STJCF11QuwHRJ$3qh3vrompU-qm^gAo;-qGqLeLD9{SDTlOt4wG} z@29_#(?!ok&$(JO)%5+zc!_hF+NWcdTeh%>ZDbK-N(l*ck`znYlC@-p$HlrkhwWed za4kCdM5}RPGNb5<2{QIS51)wB6f+2ORCOAOBj6X?fCc1zi6J?_%B*v%d>CS z?i_!~JYm_oN#+L*DjEbWcvIS6UcUYNxA!yC>g^4$7WL*Hyw$?Mz`$AH5n0T@z%2~I zj105pNH8!ku$OrHy0SlET}%G1R$q~g}r*|&qFZ;H0<-@99tKTStP zrLbVs}3^W_%&)m&y~{YiVj)sg!)QzspabY%5EvAJK( z*5U8sKe&6Xw#Iz`H_TYh%Hb4S{Etu>YtN`*k?6sv(X=KCdOA z>b7x+S7KE|>v~>iY3{xh+4X#^qEWIdL|Gbk#+b+KWyW0Pqg=5op5#0FprWZI)iffG%`uK3}0;k>Fr@yl{obvH#@?784y|6B8 zU(T7j{Vek5Y_fx$QfFzae#vKP*wyDj9R!srFq8N;)PcGExxar z+8R;uhao0DQ-PBSXS5 z-mk%o39l8>TmuvLCKNXNRB0dCxZGA?)|$26&bdAxn$<6Jrno;pa`BnH+S>XD`0j&V^wi9nY7fOK@9Wywf<>c;SXObz5v^esqe} zuzVD7g55d!hLu8X;!SJAHU8W}Yo5t?s{C-AV`w6B?V6qG8ecAkdL4;?S#LM)_FH|f zw|qm8n924Q9F( zkGwedh%y{A{t%LBu&wXG$t@2&rg~1)PiYjN&(g5A_{JPjhH1qKo1JucY~Sn`u3GY~ z_2KME3>#)~cPJn137oNEdC2p*o9ACoeJQKSelnorShetnAjNrSx6eDS%9v0nl_$h_ zpgJR#Q#1Fq@R~cqGMRgM)I`p_aPs~eVvziL^7Dn8tm1dcCy73K$$sID)|$6A%c8^< zeN4PLSz}G^h0Slive;MD=H58LZCRM7l=xz4bm9dI@iiA-9r`ro0sGZOiDx*{cw!FN z-_u_DRwZ$<$`_A*F2ypR$XjX3v%0wS`x8^$b~Xo|d9c@DimBeBg+ANrty)A|^>f5{ z*$z&86MOnyE5nD!iHB-Dcg+62Bj@8pr^p`yjK9xP9 zO`4J|IpwWWzHJlV921hXQ0CDd`In~_zfX|xe;jeb<2=7`R_a3MN|RIxt=zaL&Sm;7 zY>%&cp1HK+!cyHQf7kwQz1a6;;nIkOwT#}Urll{e=@3SD$+Au~tvVb9!YL!WI-|d?qEZ#M3q2Rd#YJJOu q&YeG}Tg>&bCZyp)zgp~nwiTQ1uD_YY|Ac{ofx*+&&t;ucLK6Uw{WD(x literal 0 HcmV?d00001 diff --git a/src/resources/texture/entity/player/player_bb_0.png b/src/resources/texture/entity/player/player_bb_0.png new file mode 100644 index 0000000000000000000000000000000000000000..fa557b12c129a38ff3a21d1c8af1f148a643a1e5 GIT binary patch literal 1084 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;q6OLdV+^Yj=Pn7ln*978Nlw_fu1pOY$b?BVOm^m~aCY%Ymj znn4?RyfPMRDjN1)6cBe)$%~QbjgH+>_LkkC@cA*9>3><=RP%gd1d^jJ+bTh9J$z4LtS{0%)k&dF1LMMkIQv|M7?U9K@@rOm-xs>_~t zOw6xe5Vgp}XP?o*2L|SPm*bc8eXsUEwlC)3!Oms-k`5j$3%*}+aJhMY>y{%1a`PWv z6LrdMk~gnNn-IQK(jZSuS2D!E_2T#kOW`DW{nZ>Kl&x7@FJ zx#xU*wdpqFY5UWw=c-Is)(qI~XXn0H@;|HCe0%n|`iFBK>v&C4IJP2UNzW7p(bw&M9ZB$LF~Z)7)lFIL-RDY)e6*CXcUC-K?#zTc!p^xu>{qk^VAo!Pl=r zZ^{l`{MkA|%(Lpot*3!4tD8mGJ94Mxe}2R=KW4_8T@Mad?{As0v8eM|-tqSzRMVE- zyqof}_vntT+qGKWsU15J@H6xM+8WV!xrOC(Q??vQoV!tT%VX#N3gRB0=geEe{!_Yr zPtmkrd^hcD678>x=1nnV wQxnK-J9X8+iL3aZJy(|fS$}Wo+>houcW$=v9bj3(z`(%Z>FVdQ&MBb@0PrmYBLDyZ literal 0 HcmV?d00001 diff --git a/src/resources/texture/entity/player/player_bb_1.png b/src/resources/texture/entity/player/player_bb_1.png new file mode 100644 index 0000000000000000000000000000000000000000..5725c4e8ed7ac22cdc2af348f600af3290aa4160 GIT binary patch literal 1085 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;q6OM~f-(k~epn0!24978Nlw_es8bAI%RQ~_v<-4N- z%HsPH_qb%TpFF_vTYaT&V0=b9_fMN2>-U$Hhp)MQqw%ir8r_M9mS)S`@$b0t!6nyZ zhQ*z@8=KpoJZFuYw`Ajyua^H;FQ5PPosp;4XR(K`;$?e2J?vh8Jjw9m)2Ws}V>Zk@ zTL1H+vuLJXMg7N`8@Ha^Yt`-voAc$nBgI5Nb?S7RMF-Ae`Dt?FR+nGxw@`}@TGRKXRZQ7naBy#Y zM8+oJ$CK~;d(pikx3T>`N9M$ThV!J;-c=tuBM{AhLhiz?1;rEk`+IY(A3RxZ-&(`& zIq_EQFM)O6FMSl*c=V?E{VwgZH;)Uwcz^5p-qzy8XIlO5Hg~10bliC4m{ioqPLAzS zF?Q$YJ->a$Y69QXi2Q(c6aLQBHz~f&=iy!Q?BsHu{*Td9KXCT#cUgSSxcSbWGtbq( zx5o(nIyQHwt$f_fdHhEk3vI2B&(-rk`c;j2aS89%l}pXTZ~f_)d2o!^ZpN&x ybnJ2&Vro(7!EzYX>GmtsTczT1B0ilpUXO@geCyaVhP9q literal 0 HcmV?d00001 diff --git a/src/resources/texture/entity/player/player_bb_2.png b/src/resources/texture/entity/player/player_bb_2.png new file mode 100644 index 0000000000000000000000000000000000000000..3e610d0abd6ec0945824264b04d0ce09839c7b22 GIT binary patch literal 1093 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;q6OKXP7hY}eWm_j^V978Nlw_ZByKPOe>*u&SA>Gx(PwmIqq zcx~)R&ES-Vp#tzeU~g_PnJL_VU%Uy^q%)n>l^{-}oP2 zCkNZv{f){=KT~)7mXN2Odr-nhshuhnH*)^-?)h@aV#R!mWm8>$#!N^JT9aQfp1NcAsky3?78>2=Z99Ikum5jzjKW!CBR9dH zuW#=$bWNW7#(&=rh41nPZe^=yuJPS`@{&xlI%oLr7m^RI*$5_||9tSo#@e-eZ1+pN zTQ6W7b$dzbqzNStN<+G0_T38X{wV)+|F3-eO?z*i+;4QnQ}<_PFN^xJh}=(gd*!P6 z`&aW_oAbBK(5G&n1lM2Fs|RP5zxwKN{9m*67UO>m?KY3rR88Ai&A`CG;OXk;vd$@? F2>`BV06+i$ literal 0 HcmV?d00001 diff --git a/src/resources/texture/entity/player/player_bb_3.png b/src/resources/texture/entity/player/player_bb_3.png new file mode 100644 index 0000000000000000000000000000000000000000..bcde01b3dca3f94f787598484ba74f6d10dbf3dc GIT binary patch literal 1087 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;q6E3T@9i8B}&nEX6l978Nlw_e%<2YJ#?_?(G67<)VZywVyH__a-u%CDc4v2UGpCh_)dInGw$2$3_$O_%HrfBgDA^Ag20f3?5VG_XG&y_h{IzkIsAT+Z+1=ikKf z8GgFD-RH}N&HX6}QyyPl6S_jLv~PEj<%jtCf8QD-Vw2_hd^ZIua)+-g{A8iH=;6ey zD>LT2ViD_`@Mq5vx}d2da-k-pJq90 z^6#|&e65pdP1~p2^RHDazwUYKg!qlEvwehYGPeBpv;OPCIj8c|iZrQIW5-!;Z>QW` zy=FS+b)zT0R)kqM*L-?)bH=j3aJ`Ak0yoR1PF9%C8@2Yu*6#Qg;q!%0z1@y+cu&6b zcj{8B--d=~PgT!9D$72nN;Bp2m;U04mY?rA?fEX=Qo6h7Zo+ki_w!}%e>|uyuh$l1 z?m2I3wTR%l?-&0{Y&`o$_uBmm%XQbE%XuZ{zc+kt_sb;b{$smIUcEK^y}WH3ulDpG znZYSjxyN~}^v#8GX4yQ`IZ{7KZhJjbwtqYK$}PTnr%zavpK9U%@aXcDRc~aUEMNcg z$DfO`*>mPcax^a%VPA3Q$pynr>c4NU*c|n2yV2w2a&h%5j{FTZyOxo+=?}A~#|~3> z(Y=*=BIl3nYgTRjD|{~|lH>e2otAwMCk4#eP&E0h6?5_zzS0$~-By42=RY{s>lY-r zIQY-LGv%RT@%G}oh4ggus-Ay(dcjGK^B;?Y(~b32y)(2K7#J8lUHx3vIVCg!03uWY Ae*gdg literal 0 HcmV?d00001 diff --git a/src/resources/texture/entity/player/player_bf_0.png b/src/resources/texture/entity/player/player_bf_0.png new file mode 100644 index 0000000000000000000000000000000000000000..fb972ebcf53409317bb6335350867cab4adcac21 GIT binary patch literal 1122 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;q6D{;xRzm5zHOog5}{U1DQ}^^#j8)K-OIC=vMyrX?f%NDi*@(+S60Wk?Dkb!FH!yV;fKZc z=bYN=KVORZ_X{dL&vt*@Dn9>e#)N0g9fn+rKi;gCkGUDa&#e4sr{68VqR(RI{Wn#% z%TI4q;k;BMkQ|cjVz|xg!Ng=;i<6r_YyUjH!OH!;z-0fV*;Te$B1~r&Oz3_knR!X; z{@o`(GPoSYADkG`y!Ah_k-{d||BGEMFForYD}TZPuup6yhev@h7?bx>Qg5? zvpwVWwejax+l`)zxd$(YYc2f69-MAj;SeFQV59#w|IKc{1?}o9t>m^Hnt9q-QFqdo zz`KtEpGf}}+1)w!%({NEd?6- zZdKO)JGU4JzYE{F+sh~*DSz_8K$FG)z4azMvo!RP{?uJPXKq4q^PBj68zx(etSe31 zq_$ORH8+pF`;Lp=HUB0 z|KId)Wg7e!4KGCL{(LIO>E|D?_T#}TA#W_rR;{i-(weQE_~-Q03t@5>ui8JlyK<$6 h_y701O^p9B3jO`b`%vMZ4FdxMgQu&X%Q~loCICB>4LAS* literal 0 HcmV?d00001 diff --git a/src/resources/texture/entity/player/player_bf_1.png b/src/resources/texture/entity/player/player_bf_1.png new file mode 100644 index 0000000000000000000000000000000000000000..a38281fa9fee267774560f93d8235d65e532bf26 GIT binary patch literal 1120 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;q6D}{x(Bm5W`nDRYc978Nl*IqpBe`&C_3;+x~F!dHL%Z6P7V{Ocb#B9I0D(A%^eojrti!PcJF> zC*&@#Tt<-e94=poRQ!~Qkw zHp`t_`Tcs6m*m`0iTPvQ+`Px$PSW`1gR|w!S_S6RReCKJ-1{{zvghK<>C0MFD!%^i zcV2w%y>`p`32&GEU`U@oqvxxdiw=Se3d=W}k(>pr<>#=d_>iD}MP{ zrUd_HL_>%_>{8e4l2!$-Ltio8}IWFZ(aD-BSCeb;8NXPgbnC*j=!+{ZH%> zF?nCVqf>h=%Y)*d&oIxMa`=pER`wd@$W@cHH|*{V`%<5^Wyc3gcDcOm)7-5>5>|U< zPI(qzQ?@wyJZolSt)!9Wclk%#Sr0|}*!Y!Bt!CR%*U0a0vt#*G;me;B6K32~^0wbl z-}5CyezvrZenEDlbN{`ctqTLMO~1J&;C|9aEl-ahm3^Tl&vyLLwOtyxu>45&{xj{% zmpyl0XR)Zd;K<5L6?blBe7|pbB~N$nzC#Lq@`+{BwjV$K*ky^f_fxgdIX2;ZuSMf@ h3c0zBpG5^n$i literal 0 HcmV?d00001 diff --git a/src/resources/texture/entity/player/player_bf_2.png b/src/resources/texture/entity/player/player_bf_2.png new file mode 100644 index 0000000000000000000000000000000000000000..013dae942e69ba8dd976b34ba3d5be3679b2b50c GIT binary patch literal 1125 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;q6D?PX5Qcng3rV>vV#}JFtt(W%t-z^n6{_*6^*2 z=8NK5*AGz|tfy*!S^eoa=J93ooTq!v|D4lq(9X8&m*$j+s3rTSA5t`XKk5B~=bF>> zjI11cYRWqwGPULv*&cuS=GiTqrDkRy;(lL@$T@l2E+{nT^zFFyT7A#v?k==m!n*6@ z5sB^k!qfUcU-q3RtLn1sTi>zk{&PdtPd?3h;#S*(KjzcttY6c%FR?COHCKIS;bd{O z8#_+-dq>uJII$gH5!Ih`N5AQKUuwamou@q3LV`FA<}+&pu_ zwuxIdZ9Dn+#MSalYnL|(@A&k^Dt^AP=DYM`t>ngohg_{v*B$0L=5{mY>Fe<2kA7WS z^#9VsN1W;6X@}*r??fxU)ZVb!@ju6`i~m=uPIx9Eu}E}hw)Gsj^u+^5kT$DZ`DZXs$lV4Vxetny_9Y6lG=#7opqAS*Kw!WW!_{Nu_6XpEc oU-^D7i0MoDCVy}7%?JMCk$+fAd^$xK7#J8lUHx3vIVCg!0AfZL-v9sr literal 0 HcmV?d00001 diff --git a/src/resources/texture/entity/player/player_bf_3.png b/src/resources/texture/entity/player/player_bf_3.png new file mode 100644 index 0000000000000000000000000000000000000000..5c463d0b056a26329a0a283298b0077d653ab0aa GIT binary patch literal 1122 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;q6E3;7kxAF`OOog5AsO%5cT+zYMk^Q+p-X^yd2X%-~Har z;x_#BGMp!LW!dC!JeO{sy<(X)Ri^ISO7;}VOsNJ5&V!HT%^$72=Jev&KIb#F&Rpr| z3!lh29Whhnykx>It=q-v$Z}g-Mk+OP-mSVx^Xr~XWRINr{Lj-n8*X+uH3>}NGPzyJ zu_IT1zy5?JYyLX@`1GES@58$r6*|+JuHT;};#BbGX!0hVs>g44Ni2S>FC#qZ!PNKm z9Fddl>y>L7gL>!fw)pv>B4-=Nr~lhGtq5}Xkgsl7^)kt}rfiy=N-L9R=gapMZ(M9e zg8yfv?RM6;AK&9@(WkU3c8@-{zS;`J37HFOzD&ByMRobDz(5l*@DG($HN3=gNb2PQCH$ zOz5=uc^%!W?RU&9EANr859RL-U8g)Veql^%^<2g~H}Zbli!%Lwe>Qxz!rS$mHXb@) zkT|WV@mN%%`;Nfu%&nTs?o>{&PvcZC{Gu2(?dILn{qsNnJ95{$%)ro6wu=4btHgg? zzui3g-z3)dwno;?efr?9dH;R;GhbP+P0z?PC~s6ziP?L^$m*2MWm7Th?|iGj@>YJm zRZ>w>WL3h)!yW6qE;cb)_x}FH_VK!V+U@QX&RDtf&Pwj)#X9FczBMvF-+Mghkh-z- iJ)2sq6b78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;q63)UMi-*q!EFu8cTIEGl9ZoTN65mPGB`tkl=vssbd|Ga_B`yKYGvP&XlpB_-)HvTd#^U-BrN?p40#%~o6*pm2KX>5u?h$1O(Z;`eXdbW+eKZkNEP`m&>U zIVh6;tm`{AFH9c17xbnnDE6y(N+cw2r&#c-v*mdKI;Vst01K1*hX4Qo literal 0 HcmV?d00001 diff --git a/src/resources/texture/entity/player/player_wb_1.png b/src/resources/texture/entity/player/player_wb_1.png new file mode 100644 index 0000000000000000000000000000000000000000..fba8fbca1e3d0a662ec00a1953b0f3a4797de6eb GIT binary patch literal 1081 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;q63w{e5_NfdEOdg&tjv*GOTQ8o^4q+EL`tf}A=VQ}-gzAra zc6N4J-O8HMF)4^kOec1Wt82`c{~8(I^$yXi4z}8VZ;}?jJ4I~C4Lz={O&OU{U7;DP z`Z|r&eCAjgHW!{bQyt4QC1_HW`SZMe&x_u1u3OOg&aNo7=l{W{vX^-0-dX!G-!?#e ziKhL(L(61#nzsD>nj^U|W|7gwCTpvr2m7ni9HTThv;B3x;^k6M+VfDCW#x0fy{9gm zyLND$UCr5eqRGxr!p5#m8+mR{4bfWL zzNhTtXOqfbJ~!kht4MuKU!>tZCv{=wn+NI#x805T+t}F4BJ6Cl>--TJ{e;UL{O9U+ zzp#F7eV=d9jCV}0*(CP+6)c{9%;s$6B&)Z!bE+3_SaHxg{toA++!n*9kztBCXD)A> z6EkmOxBI1~2^CKdEr0pp-L-u}n>oBgAIW@`nsxGj*o}yc9p7x5qhH?hkY038#(&k9 zT(wNI1Dkf9S;Q8ow%FF&ENQ`kc-N-S6|YlQiH3bI_$?LxzPj+D#P5ASjbB8bUuCm2 z`pbS7lRLh-eJ_=QUAe5M^-dg( tuG;ba-^K@pGmC3|7FIM%DE?!capbbY%tQN6FfcGMc)I$ztaD0e0su+*0ki-B literal 0 HcmV?d00001 diff --git a/src/resources/texture/entity/player/player_wb_2.png b/src/resources/texture/entity/player/player_wb_2.png new file mode 100644 index 0000000000000000000000000000000000000000..fd4086628d9f5fa14ea106f40643d08526e6f6cc GIT binary patch literal 1080 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;q63#rhDkLws1nA|;G978Nlw_fzmh$)q5efa#|%#%KOX_IE9 zL|s1Ob187;$_On+&ZaA^3$n%EU5#~Q5&iF|xi+#xFLpT{st{YU;r%v>6i z`e|Y_^S=y(pywX~e`Ot!>=NB|nrCjcwaL1al(z5DHLgNE_d7?w zRz6A!ymjXBZms^cBk)PDR;zqZY?X=V3w=WprJcVbme zzu9{0(@&FCbM zDdb<2-LCOf$S5uE!x0I2zpLMQE52`+Uo>G;LF+fM?SkvgHPp7u+Eeh+X@@k=`tR4B z-!0v|@S6bhaScT|uN#>Le;6*kap*0a6MVurYI(<>M|}SC7i{#b-^Jc__RjwU0vX{! zk+U+lMno?7Cvou(!`{$59l-$mlkAK6-&sFCy7cwMx3gQOSX+w-J<@o0VD<~mqSAGj z#SZO1TmL_PUvm2H$NSS)B78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;q63uUe+*<}n2OkSQYjv*GOTQAx!3RrxIdWSX((*y-EZHzsi>gM?BycsOM#wxQBn2pkT-wwN=)>0^Q3pRCmArylAjHTz8quazE^n;7+@r!o7#`dFE{^N7|LzCc}}gHH?1@>M)+i?c-A z+@u%nwTwo-YjC@tlhyag2wd%>s%7&T=OfNb9;85tZcN9ob{gjvmUo! zx@Qx+I?~QzhC<%rrBe<1uCCtvpIQF>AC5OSzjg-AQl7kUp2w@0U-Rm@SsqJn($<(R z&0qO-b#vyY48I#flU2mBiWg~k&q>{v_vdZx!4KLocK-jPnocUd`+xEY&-vuL8uj(x zzAk#drgx8|i=k}guU|8NOnmS>Pb_Wa`AJtYUOxJ~_NOcFJXXH9*%{F+3YB=hVS5#Gj&-pTN5 ze_5lhaX}>A^lXY)>+@T$CRHg(U!4CuuJHlOy^2n+nNwr`e3OmOxxe9sPjkZkO<#W9eO+nby7kB(=e++eA}xPPCma1rx|d(CYy1D9 z*~^%-bD7zj<=1U`Jo|9w*LSto?JU$>{&)LKuMAPLSbnkozJYn3$)sC`7Ki5Ej?w@8 t?&jUhV6)d>{q?1G7br$J^a%WCe7)&hO0R0hCk6%v22WQ%mvv4FO#lUD{0jg8 literal 0 HcmV?d00001 diff --git a/src/resources/texture/entity/player/player_wf_0.png b/src/resources/texture/entity/player/player_wf_0.png new file mode 100644 index 0000000000000000000000000000000000000000..c8b4a83b696e0ea63d51253b27b90d21e9e17c35 GIT binary patch literal 1123 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;q63uE!%Y9R&&rXo)l#}JFtwHNJu=9DrV`*{BSUh8)jefHa8 zUQfL>EokbLCB8hzB!r#Yk4c&L8eTkmZ#TDEc>Z7Qr$3y*8Oi?{p5}>(OIUd9Z2u~1r4`b@siON~VA7M% z`j&yq?)dMk>e*NKZ23#Qz~f)pj~?VYoyw-IlW+7xWG}bVLLYm+`A?4DZm~Z8I}>PN|DM?FQ)C*879Yww<6slRGzbEMJvi=68G zMK^rYTW{@t{y1gnnVZ{N1&*B8^O|kVb>6?ra2C&r=a1xtA1A)zUd3_QlB;&j+QMh2 zTyo6ISybk_TKDS8E){az=Bc@Q>(_&=1&_7d`zC*}_u6&XD$nM---)SKe-_VtAAV;} z*hy(m#?q)Yq@C}_v_2r8-W@Yn=5Vo k;&zKod$#Ex=RYFVdQ&MBb@0B5BWPXGV_ literal 0 HcmV?d00001 diff --git a/src/resources/texture/entity/player/player_wf_1.png b/src/resources/texture/entity/player/player_wf_1.png new file mode 100644 index 0000000000000000000000000000000000000000..e19b711b4a4fb5598831c9b1ef888f60f1bee3fc GIT binary patch literal 1123 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;q6OJ1qa~V!PwucY-@KW+koouT8NcVUtm`lS zBcXU%p;P*qN$C1q&q-=a7KAN)uPSzGi>%5n4}kEdbos_Kh1ipE@NQvy=%vucRDpL*yy=1Fgx`{&5p9ULW?ZaP8DWP%Kj_g zzGK4Yj?Vq3-PD(@T)t>p+NCo;Za;Tk=%DRo+j7$`>|bKp+~tK&RF)n*n6q8HuCiD` zrSev_<%P3fR6I*t1uoB3U%S!Z_}+8DWy-E%5qia+{l6*syjl2xCGylpef_levA=FT zmZn7+2txi(^T7PBxYq$Cb4?g!^=kl=X&Ix&8<+UrAedpJT z>kTS>rsfx?T)2Ds6VF4Tdls&#oy)%!R!_-4Z!`O?Si!STYd5?XsP>-nKk0w5%JJJP z*A>^d{gkZox7p|PJn-7P;Mj!f=AHH&lU2jSBM&v&d^Y{H|G&y=yNJNQZ!Q~rlU`r{ zIdNKc)~8p`!+B$O3hjzdDeXMVI_Y+I@BjF^#+90Ge)G@$+Pq-t+M{P;wPsY;TddLj k5Gww8#!g2$!GEmo3%78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;q6OKvr`x?_B*qulhWva7JRi{8YYY&tF)3ES>yS_13B{a*6-g zoRyE95RWh1KSvFEIuN&&Q60bByx>GKx$!gqx#EP!d#+N1wUBq@2cFf zI<VaTOHV4A*kPhN-QxSP8RB9sw+idxmj$Rr?l~*0yhhj1R6p2m z`oYXqJNNoZWiDOtI)F{R^4&j=P5j)GL#ib$XMTKnOl@b2%0&HbnP%miRex0X9&VPg zaJeq{NwZ6K%IYikEX9wn7CpB|wMC(>&T-e}fQr1Bo{JR@cH;ln^tX2EzjU2(Ch$dC z>D0^9Uv1oaSzyAHZmHSPx4cxFbS4LVyLPSp`QfdnzsM`UtZdnG&}yCS@3Iq9Z{4|k zh2MLf|Jlnvs&7*-y?FineEZaRN!!!!%o3Nm6?b0~d&&2dnJ0eD@x4(y{+)@?nBvj3 zX3b}YPiJ+#<{r@!F0WX1sN}6-b>@@Ir0$v0C8yW%O)p65_?qfhTcx<~-$~c+mw)T; z&3Svb>PK>GyqHIpsM+-w)hG7H-uL&M6nx^cy@%k>o4)7xHg7w%FHBg(yy!o3@{)@e zCv6L|w$?dg@WUdp%6{(NJ2OvzlCnAK{+Ivw-aGMgcZ>duI#+b#?vemSPEWS=i}s#4 z`|^zLvHx@4pPj!y`Lo{M;~DEy*FN3G9UeW@R;>y=;Bfe|nUj te{7r6!I!{J?7t878R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;q6OUbLBn_C$en94j|978Nl*IqoIA5toD^x^aB_ixXXHv^60s z>PnFI;-weLywsN(&%O6L$?4IeA2;``F248OR(;NKwOzk8%8YD}-mKjeD;u-=W0KjD1#zh<_S~XY#EV z;^r++{~b7dXO_BG#NWvUFZ0-(d1@BmzdkG-6%vT^Fh zix=)B{8W2b{lrT1?V|S~mbcfKv$(vi?A>Zz)XLUcCmtW zIo1E>3WyiIGy3R$^k`@1td%eJm0ddX!&}{Hp#!^@bIVP^Y5$YTrnYbR&9Jn{^7g7$ z`FYa3p7Y)%{$ii8&nYNc?Fi2k&(}IfV<1bFc5O zw735DQvKag_VsdwKerZTtSOKVTzPk{r7u*LeZwJE4iD0?=(FA)HUwspS3#I ouRWXDe_qPESj}XjdrLiIRP{&czXkbm3=9kmp00i_>zopr0FEjXod5s; literal 0 HcmV?d00001 diff --git a/src/resources/texture/entity/smoke/smoke_0.png b/src/resources/texture/entity/smoke/smoke_0.png new file mode 100644 index 0000000000000000000000000000000000000000..aa7a12617ae9e1de8e9d9aa515fe242520b1a13d GIT binary patch literal 1005 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;q69hpfw6Xh5f82@;>IEGl9&b@HndrG0e@sHQnWuKas`tQaH z4b`qiO9E_E)MQ^@(|r-bd2iA4^&D2;=E!Tj3P|T%G&w-2JA*4VAU8s4T8?h2SLU*^ z3c0rzrG6NFmVIVBf96S^MAqKlC$AU2j=8{oUB30=9iH1|7w#N-E!bDOY1^^M=`!ag z=PP|)HuaZUUdi!9Rqwes`8vm zmb@xj_Wx0Z^;5}LQ786R`-iJD8(!#k`n2YEqr#0B5;lB`^*5&!pYflVd*F%23(tey zp0zjAUh|%3Kl&o6VEu;vSluUKfx*w~%{Geqaf-CHWxAzp>3UVACHm|CyZA#7#3XJ7 zO}@M5n?cVeU-!truJtuPgFaolHu=Zl&iI)4+{%e>4uu;wp6Gbd$NbQ^;_c}8lrVW(Aa{&AfN@;l}0ce)CRM8o}qyOdV^1~~>itL=+ zt8?am@qw?(-*V2z@04}R*4Fu(@QZck^Rs7amo+h))78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;q69fJj5{{CfPV0`ZB;uvCaI(O1(?~p*54Ny%Ir!NLMn3+|F&(oEXQmu+ zdD<=Y!cg~}<>8&?^&g(jtA79UkKFy@B-aQ06D+w_szt;$N^06J;MZWdQ@QNV)$12- za$nWrnLl~5L*j>(pOW+a4=ognnAN^a#b!@rvo%LjPr((T_}T@+I_sVN)$i<=Xp-gD zdhNpY?(?#%4tE&^-d}&1qo0#|ZIiS`t|s@6GIk}#-SQ45%u6dJ%AYQ2+bq@PcCD_k z@4!J}g?~)JK~>w+uQvSKzIeW;H^cikEJvq*SjwU#$8UFMw}NfL*(OGyBwLCt{N$ESYA#TE_5P|KNJAj=k>-lAV5DduEtDMV7m)g#F#t!l(C7dFFo??znHS zC>asfAu~Jhg!O@$JM`u==P-Ak)qP-wTJ^=w4u?oG9Ole;B7wjVk!x`L_yX}#y7 z@M@L^n}X_Mxr7V_55zYne|;m)x;txs(7%tt8}71AHTuA!!6bdxz*#|a>Gz)|I%!Q` pqpbI2wgl78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;q69V-V#k;e=Sj4wQ0978Nl*Iqv89TF&V{Ns6><6As+i`@)Q zJBcVQc6CX7VAoV2zP72UvFyEkhVT|Xxhq)?9!(iHS1s^WWD69GWWMP!E9uw_i^)k| zk-9a?i!<5zrWae@FFyA^CNGI4JL9Fo)e|?^t!{ak2F^wEzLD?bAEW10J1fg3w>YgS&A#rq+ZR1xtZ>rMCkCwLzHchXYC&g0u>1uW0 sySFyAu{HXa?i|#y+Z%sf{(=7a^K-oOG78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;q6U3SKx%*_l8Ogx@0jv*GOr(Qmt-;*f9_Thewv8n0OQ(L5t zEv@ooRn#kt^mub4((?$@M3Xnq>?d^8AK1QOf~VBAL)Q*@&5HDSHEF?0rQqovsjEs> zt>n8ERWm>CMbqRtd!EKX(*N9SjU=|4GBdC8>{Yn#wQS-m_OLaJQnj7`=GY&& zBf~Fuai-#BpH)kHm!+}EZQ3=j@Q(G|_XkNB!A%D zy}kHt#Xk2G_lu&(*FW0If9`u*EAQNzUmkb8njV_VSZ>g%tbG&PU65_&_C(?6_3bL3 zchqG?7AaqfXlL0}5%kJt&;KVSFF&4Qd-jSWEjd!`jrmTyZ})HP>AES|rRsK?<)q3% zuK%gwe9x-G7A~E;VCU?c@4e4y&p1%>M%ZxMk-oVPj+?AJsjo8WbH)Ar8W!coI(OD@ z5<7T4|B89h%X5?L_C$$@PxrpmqSeIzc!}{9wf{kZJxj~~dhRQ=yFWR%-)hdS35i*A z?i|{>xO>tUUE_##c3j*q`Rt~1vMr0)Kl7uZ-t8{Y6g zt{Aj?vrpaA&2iaPVQo{bEVtu3^Pd@y?ivgEN3ZBJYCD_h zmUZz3>y2Ig|BheWx7AilDB-l;s$`#Vj<|le2m9uRWT_+<-Hy}BUwr@Ot#dA|G385^ i{h4!eVun&ZBe&Vg`OBvKEoNX~VDNPHb6Mw<&;$Ufv)w`f literal 0 HcmV?d00001 diff --git a/src/resources/texture/entity/smoke/smoke_4.png b/src/resources/texture/entity/smoke/smoke_4.png new file mode 100644 index 0000000000000000000000000000000000000000..50eee451928bacd15cf26ce050ba6781c6be441c GIT binary patch literal 1046 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;q6U4f>?Hzf=VOsbwPjv*GOV=tY}4oMeb`*45nO}Li!Y=V!Wsq1_9m>*WME%|PnUOg$65zs*cmUBWjP< zO!&LjYs;ep)mLllt$)8;ovfpO@xy(47uGrtbDnj|6ZXm!wC~$HCG@|Zk=?PdBijEj z@7Z`b;GfYnr{_~QXO~}0^DVV8bT_QrKJU+5zI&|+t?3J@`QO@_DBqj7!GitWQ^)Hf=npXa5R{*hTB%NLS!WBEon9N*oxwn%ebGl=1J0`s;ps4Hc_`66@L`?|5Ej+V(KRPowpXaAa8T#jW#yMowGSxh~Oq z-LlLQozt((FPm&Klh>%7m0BmdKI;Vst E06?4QO#lD@ literal 0 HcmV?d00001 diff --git a/src/resources/texture/entity/smoke/smoke_5.png b/src/resources/texture/entity/smoke/smoke_5.png new file mode 100644 index 0000000000000000000000000000000000000000..eb8e9c2ff02e37c7570394d7b57921646811a76a GIT binary patch literal 932 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;q6UCH0EAr}}J7&m*mIEGl9uDyKLdrF`L>xcV$`ZS#*>(01z z$Y%si5NH%I;`qyZX`k68w;A;cw{~WJ*L%w<{x<93v08y7L9s-IRN=613wwEbrP4BP zE-I|3b+`UdAg}lQPW8FsohvQ>xK*ovUnhR-NP#lfVqx`@-!_<>KdSicd*z>|&yq&6 zOYVIuTGrfI^Kjqc8Ko?FzU>!psk605RC-Fyvvc2fO!9-gPoJ2Z!R%@Yx8+qH`~M&K zAkhD6XXO;3>Z8qS9-F^TT)->*GwK`TlU1tMo=< zZE9oj*gWdXBuR=73duS?9Ev*BLMVz^K2v0?oA%k@*QI9cmP+U-x2|2utW^;&~z9mcc&r0l+J zlIF4Z)TWJolCi#P{w?C==W4Hi_QOYFt*-Eb>IuC@)~Z35ExOlv>*)Pc-oEHN*Zr^v p4dXk<(>kyDg-yQ^e71l8*R-}@ch>7XXJBAp@O1TaS?83{1OO^xt1SQk literal 0 HcmV?d00001 diff --git a/src/resources/texture/entity/tnt.png b/src/resources/texture/entity/tnt.png new file mode 100644 index 0000000000000000000000000000000000000000..e7c36626de37a0a3c86ef69896b9e3706d548602 GIT binary patch literal 1182 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRK`paAYJ3a~Olv(|978Nlt6sFuQwbGmc=-QL@$16X*}GO( zr?7|_Oj32}YiscIxo|>JJ26n_fFPrQK;QNT7ZwXieX@=$oJ* zl_=wW@Bc@;$n2G`XDyUpApfFSU0YV%*ZF#>gkqCn2gi|yUmk)F-o4X{jgLQF{{G&{ zw{LS#ed>Ak$#{=NTf)x$`_m)EQug1U9Hey2BQ!L}OuFvh=jkQ)&(&yt2)F+D^YyHH zJG;-9&F#HJ#f}xKgib8zlQ5jNEHh&L^)sK(95431aAbo{fXEImF4>Li6KuEnTt0I3 zs%WczWoVQS4|neEA`6+gHFu3&w@)Za)p{tRdwR2@dxxv5-?78(?0dd@OiT`$nm)hc z^VRDum35ITWF5uMTnOIn5tw#{>+zli=Zy4?4c&g_9TQuZFnM~-kMH?GULh=1_czaE zh~8L|zU=Oqtfo{c&Cfj&%B`L(lM@&5+t}F!O;cUPrBbwhj_?T!!K+DI7YT0&yZN?^ zVa=@T9CC|iIu{*3e3)6O>9b{Iz$+!^*d-iJ^A!3QWLe7aEtz8Rn`2U9pMQT&c6)UE zo*g1PPDtjc?C1%pNcp6b_2ReO#2%Fc7Z?+k6+S4j5}Ypfk#n(uz3pOWhsCL%Iz5&A z60e&?aM#6Y7^_M&@7=S<#U&tgk*GsJbbyL~l+DRzkER)dM-8^gp0hNVHZ}CgulDy7 zS!XRfX#e;4WckXydtDCCw425t)9?OjnbP8vKFNuVm$VMD`^Ye_^18k4N7mU@_ZH1e zUGnH+C5(!bP0l+XkK1yvdl literal 0 HcmV?d00001 diff --git a/src/resources/texture/entity/zombie/zombie_b_0.png b/src/resources/texture/entity/zombie/zombie_b_0.png new file mode 100644 index 0000000000000000000000000000000000000000..4bff702ae74bcb759da796ae27a05edd494d6f0a GIT binary patch literal 1147 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;q6YpJ?38}>3VFm-vlIEGl9&b@d#`%b9{>xc8-%_m<^xpiaN z%volcPRqR31OzJGDl_JGyd%~XB7W5MFSC+{Mu)V#cA$vXEFGO?O;h!@1e7S22*!WC z$l_}yIm3 z&m~_1?A-q|7#4l2E_;3=SNY`&U-qk&Vrh{_+RMA*MUKonIq}EU*hjOolYTb*xXr^I zx@}=L|Mlmb!FzqqZQ4FxpmKX;PVQOF7SXFSKL44no$!Le_`0QuZppi6{n{p5CY(95 zDZk-p<+8Ny}_rS z2d8-yK6$Jt)wJBc%0JX^?MlxT*G(AUcE=DQLKHH_J zy<+E;&lMT^m-cplvUs@MFK=B?^wNL)x~zG1Woo;8*WUXdk&&U6xoFoBF^hWkj>)k+ ziL0g`Jbd(ryi#Feo(i9w-ZAO^P2V`|w=A7?e&QK@qs#htiX-pTfBakV=Ha8Zx6##? z9OmB*>Y18+_+z8$#!KoZ%C~1Gry8oJUAgXhe(%Rw0qZM|ac`fII*H|tR#EP(C(lK> z?uPtoiLy1#h&ktxboaG;{FNPZBH6FJE)AC#Q9B=4(_wJ!+%rDCc#p^W_l`&3Ex&Je zWbxCLAFhig^-61-Jn?Xv)Fpo5){*{Xo3G!z<7{oW9(-_}OZ)W8ztPs0S6j9Q#_XDI ztTEMVW6ejGIV*UMZ!GIeu6Z=qB2cn#X^>{$Bb|N6w*L?>@&2tYXyx0=z`(%Z>FVdQ I&MBb@0MH*8<^TWy literal 0 HcmV?d00001 diff --git a/src/resources/texture/entity/zombie/zombie_b_1.png b/src/resources/texture/entity/zombie/zombie_b_1.png new file mode 100644 index 0000000000000000000000000000000000000000..e0f56b98acbab4a04e2c07f5c3a0c9f42e0b6ccb GIT binary patch literal 1172 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;q6Yh}fg7F!t@m==4wIEGl9&b=6$akW%}{loe9dn)eSe73Aw zbL(8+^v%y4)>KXu<+v-tv*;*?Ntd3O;N8-T(iO`~0xza6@&}h%;#wI8Fce~y`mGS;v z(We8B$=*5Ik5A4KaQ#!zCYyQbYRf}5t<{n*me<&-mv?!2U(PzbDQC*JXa1)j+&J8$ z`|-^jgW8$X!v0yf^Z0$gTp)k->%aCl_vhcA_WW7qJ?FAXpQ@6QAKP3x^+#nt-(8)Y z_wShEx0hRN(%-u*Jm=y3%p^`Rb&gu|ybW`^?)fj8b*8xQ&F-Ct)_z<$&;Mz#=E~*P zhhCMgJ0qa25bEbC`E%2zM>7JRe2$kW?*FI&k!$-C!(L`{A!&U=u|%^MRoIL zl@A(%XM9Tpm98^&x;TjlHSPJhEB(+qcZEl;YV!d>nQ znkjAjrQa<1@Zg*kB~Ko|xb{r?Mo7It&W;~}S9U2`MJt9RF?OD;ob_H$?3n1aS#j0> za~DqdzH0lmElzc!SMHyWnU=lyh}rVUdFg5EC+LgtUei5xbWziHEB?ss67k74^Daym znZ#+-yF|e6!Nd&D;KSYV>8<{u|%U7OcokNamd^zB66@;dU*vD<7UGe5~)? z9rthqM>I z*Wuk?FQ7WfQ@?y(!H(_bDNzwKQdPYlUGn+(pZ`r#LPPnt_x*Nff+y)soSPu0nycTs mI78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;q6Yn_c{swxZ&OcOm_978Nl=UzOUeGec{J56yNl0%xBULZGEpLQORoC<&QC12w@JYpX#r#_$jXW#+51I9HQKY@0aRpCltsVua=o1W>xm_c<3uB&$P6c z?~^mZrJ^UVAent0oP~oK1)V?L6m+xP^<9C1F|AT+k+YhM!=C{~nUjO^=dsVA$ zk!=?*xdu7s3HP48QeUOC&umiD^7)lzhs~JN?E)lhMYBWO_CLI3;;H5wbpDCP)o0J9 z@MPM3|EN%UaAE(w?F#E>o#x!Ss*P>d#e2>(?w*~$-(dHlurI<7f87yKjN(t(9BG)s z8ajRVJic7lvNua?ynd`~o}C?XeZ^nr!jeI?~lq@z=;AG3q~$VWdm z!<%Oh98B6Xb>a>Sa}jnvvB$mYk@ZdTQ9);)dpw&ygWB~yH(rt zOF_0_T+R22nv%#luLPwgygd;d>2|SNM z+_2{~f1%jYAkAs|b9<75k3aH|RyVLJGwJh{?OqzB$@f@h-?8mK#95*ktX6LQvWtO% Ofx*+&&t;ucLK6TCK@?8_ literal 0 HcmV?d00001 diff --git a/src/resources/texture/entity/zombie/zombie_b_3.png b/src/resources/texture/entity/zombie/zombie_b_3.png new file mode 100644 index 0000000000000000000000000000000000000000..42e79f9d8ce949ade8c1dba9c351d569f2874866 GIT binary patch literal 1177 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;q6YtyT;y-yezm{xeYIEGl9&b=J#bG1~0{loe91%2#&3zYOz zPjx3CiStGnIA*RJi>tGd1Ca_Qr1slIQOn78F@iHe>cID4g| ze#nx9Pm3N3Sf5~QYn=1>{UeEEUvAF(`^~0$-uv&B^WN7zbCx|Ob|dbLvA2`R$G81&d?sqC_gvYua?V0VFRqul0&C;v2T6+gx@*3#+0Wr; zbL<9_{uz$o@SArJO`YF)@FruH{K7rQY|U!_ewkH~Iqg{5GIh3v9z-o5yD@amtv{2#xIY_#|+-16^#-iGGhT6uTTtNK>E{=eh;UqAotPZzV9 zQ)<@PuDSE<8E=xMinoTAT6D~u<(!rEFEf?WLro9w7pl8|=#=iaGhM$pU8mN3Nx7?aVB@^gX==M(7N+{@>4L@fG~~xogFX?UOIw>v1!gJdux-6Qj~eTg4k1;*ETtGo31{4 zI%!ReUi!O+2|7t>Qwq5J-zJ-#edhJg=J@lqU%%TXy$)AixM|uYE;ap)Ya0zBj78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pB2G&!SE?*fKnAUi@IEGl9j=d1?ako_B_{Zzt%WbTyF8Bt8 z-<}hEzT{DxtAwKCoOeyT-X;mQWL$AA-+gO^;gl}DU8}lv)skaxxC*ei28wSy5SICd z|Mtf@o%Lqhwrw*x>swNFZaeql4d?HE{;F&8py4$W^ z+R}f?B6jbQ6FcK?&R4zd5gM%hwKrz&f_1Z8|9qHnBkXj}v~5vo?=OGjvF>uR@>ZU; zduL%|!P==OEvt5MOzdBMv|NvIaI`58PWiMP61t zdtTXBv9uy;O-{qAk|-_DHEY*$dQR{P_YT>@^R4~!{mYm9E>$#~a-LQ&uV6)XfZF81 zsVgtuHGJT(F5W6QIl6Ri1N+^-58u6iGC#d`>XU!-TSRmvFYVYBd}9U6Mxm+C++3Fg znKo&4?+kb5(Yfn`^xU9b$UDcbS9nI?}d)MaSiH9;0GFHoiR_^#d#lX_< zUFM;sY}?EWH+#6eE3~_FTT=eo)PviePWjjGXYu(N=lZGZTKB&bIK5{5gmXfA<{L}; zE8moIfwm!u+}pNY~Yy9QkGuIz`(%Z>FVdQ&MBb@0I7933IG5A literal 0 HcmV?d00001 diff --git a/src/resources/texture/entity/zombie/zombie_f_1.png b/src/resources/texture/entity/zombie/zombie_f_1.png new file mode 100644 index 0000000000000000000000000000000000000000..90f977a3b514e0168c67638f8077f2d12ea1eaf2 GIT binary patch literal 1180 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pB2Hqo&&Kzf8U|Q|z;uvCaI`mR}hG>bzv5)89|G9nhVs4wY zaO}C4LDT!(woX{Uy>PZ(OJ0{pkBpXE$@QrLyI-i>6DgVbz=!k8uHAaNoZTxQ-njP6 z>ZQueT&;Aunby|UÇXn23Nc-+1BpY7hCmacQ=m9{>))xh-R`oE99eZ5n4=GLD) z*N%zt>plkc#aOSbF_*q2x!=os8{_;vj6Oc|Cwryy=;)nV61=baeSyuFfQ;ka)jK|` zYwjqT8eYYDG0UboF?L<));P_L&qJTRyR@nI%G%p|EDzk(Ogr@=-(=Y($*oaeHN#>> zGj1RHTdfi_CEcLuzTw_xkDenD8ZJjVAN{l_{q6K+i&^9!ML&`A$1g?Sxqm(3ko<`) z6Yl#xUtwWZ=_Y$K=bTq*f} zVf>I)C2XF-P1QYdg4adQA5S-!^YfARVQ1F+aXL-cUOu$gpc0oaY?iUZ?~d-pDcKC3 zrP+^vtZdrx%>30>(G71?&E6?=A9*Izt@`Y~K-SmitbX%<1aZ{-OY~26FiKU?T@qaK z^+L;$A4;;(nzjj--Q5qdi+3vq`>pFrIpulWUo_>ECx5vdXYSk(tv{wt=j{&l_HKFh zvwTv=ygIr6C5rD}*}XW@7<=B*%BJ%015_XFO-zW@Z?j`1~#R$B&1c zquK1am9M{?_rq@4rOf$qzb~Hjp6(Pb&&?k(OZn?}o7o?3#T`5TGwuJsid}BS>u%oR sQ8khOp<*-ZagO@tAL(yi{`(>SotanBcA?!T1_lNOPgg&ebxsLQ0R5~lIRF3v literal 0 HcmV?d00001 diff --git a/src/resources/texture/entity/zombie/zombie_f_2.png b/src/resources/texture/entity/zombie/zombie_f_2.png new file mode 100644 index 0000000000000000000000000000000000000000..5d25e55d0f149d28516f99889dc226a18f063832 GIT binary patch literal 1185 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pB1~I>OR&53brVXAhjv*GOLodW;TrFid_VN7t`g8UA?Y{1L z)AEZy|1eq>ab%H7$K_aoi=pCP3m!G)?V6;wiKS4a^kS%^zR#^)5#^2nBBg?Cr@an~ z-?=&S@e3i}%iFfi3AX+{KVDq;^z(O>74x1yl6ISzcvOmOtxrhAXNA_(GqKASw)TDX zky*aHU&8X2wlufMt&`;?7q6YW!5KAs#!-I$&bzuX8W-*!YOUNgKc&*ugL_MIuD-ax z(794WyQAOaoSr;Z`*`;9ftjZk)adEYH*0wKyu9+^o();b^>M1XYC8>%_SvQB7iS%^ zovPmMV3#ZKBsG#(Cw{Mq-={l2dY>@Pv3K-luf6@>n!|I#GR+lN#hw(Oeeg^tyL(N{ z*-u}8NUBHg+%k8^5shPwjU5(dmLlrQ+!pPQT>8sXC%paf8NPi7`Z?5#mgM^Qe>VA; zlNykG*{J)b?#>vk(^*NjrTB86M_vl?GA(l!;^Xl(y+4TWcZMSkK{oK!CX(jDxxGm_!^I1zX9d}yk+)EYGou&JZ z&(NTF=KFmQkG*dR&b2Yp?prVFrvEWST;3+I=fk7d>$CJsq-!1^>o6&Q#(I=4^48*ZQSBuarxk#(q$Xh zP1G*GVPYy|UjDY|!OpYaEsmVn96yhn(`vh+`PsMGKV%l~*fDi|pw`q!E~P5d)ccQI w*8U-qeoFq>rzaC5w5C4N=zFC8r>UOtuOe?=XKTh(1_lNOPgg&ebxsLQ0Aolj`v3p{ literal 0 HcmV?d00001 diff --git a/src/resources/texture/entity/zombie/zombie_f_3.png b/src/resources/texture/entity/zombie/zombie_f_3.png new file mode 100644 index 0000000000000000000000000000000000000000..6a654f03cdccb465c71c5574c5b5d503e3b4fa57 GIT binary patch literal 1187 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 E0O*($SpWb4 literal 0 HcmV?d00001 diff --git a/src/resources/texture/gui/button_normal.png b/src/resources/texture/gui/button_normal.png new file mode 100644 index 0000000000000000000000000000000000000000..d70229883758fac158099d2c8dd158ec6634e2d0 GIT binary patch literal 2877 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 literal 0 HcmV?d00001 diff --git a/src/resources/texture/gui/gun.png b/src/resources/texture/gui/gun.png new file mode 100644 index 0000000000000000000000000000000000000000..72ac7ce6642719c3a7d71368afacc2154bfeb832 GIT binary patch literal 1068 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;q64fYzxc87oxYdpE}d|Q z!$geb+vU_0ZgVy7J%$(Uuhbuup4-`-S1frthK<{2O~|!_ziwR=3+7t7R{Z^$Md8Pa zKiix?dh&bCc}xF_21c*cBG$5Pn&&6ZUK0EK5Xtw*l# zL`#codh;#ffMnRZfa;?Hl_}mSMKbS-i|5{-Z^+kgwxhJyKq+ri)#Uj2OZLj$+g~VO zPWja%y*=}arjF3xZO50t-ty|t9%qryAFA1yt8#@xxX$=oa4T%I=j%LXxlVB2pSK5% z#MLvd{j`}STiJj7sEUmIMBSjsr1I{5z2bY%H58?k^p-raNZWogO_lRQ=%kjk-ir<8 zp>gjEKTLbrz~1k93^^;YeoGy8lvT5bTUbD*`=loCj{p+6N>GbkayJz$F=fA}7?3#UV`I40`U&RXh z@_(-^y#HmAfYFy-HR_!H`l^b0%TlX9GTYxx{#Z3DO6+1yUtag8)OWm-C+J?XU2=87 zmI>by|1h1Ox4EjlThi!pNLYtq+4l3dN~3(AY02zaVz?m2^YN6Y{%*T77)J zvU+E?JXcjquiSf7>(=uU zU6-%S%K0~A*Z*hYyN;jHn>;_g!fVTHfrsbRP5gqBT9)26$=YJD-DkPu&#YMvrIYRX eFNywV+WqEk=O5vxXBik67(8A5T-G@yGywn#(Doz% literal 0 HcmV?d00001 diff --git a/src/resources/texture/gui/health_empty.png b/src/resources/texture/gui/health_empty.png new file mode 100644 index 0000000000000000000000000000000000000000..12b9606e39473ffdffca49981c150daaf1144ae8 GIT binary patch literal 5336 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 E0LQ^l3jhEB literal 0 HcmV?d00001 diff --git a/src/resources/texture/gui/health_full.png b/src/resources/texture/gui/health_full.png new file mode 100644 index 0000000000000000000000000000000000000000..904e99aff746b2cc9375835cb27aa3c9c009bdf6 GIT binary patch literal 4999 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 literal 0 HcmV?d00001 diff --git a/src/resources/texture/gui/hotbar_selected.png b/src/resources/texture/gui/hotbar_selected.png new file mode 100644 index 0000000000000000000000000000000000000000..3bd03de743d4939453dac53632b21247a5f74773 GIT binary patch literal 1410 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANNfEt$^F0iMpz3I#>^X_+~x z3=A3*YbV-z9Cna78XvtiN{g>dpzuUM>=p&BM=L@#oLU34x4cRydMR#_=@Aqo!+O1` zS-v}zT|7NjHip&l1M`uS7d3O?Ic=x|j>d1?pu z%r~n9YFx#u1e_!m3mJd44D>lvTyyvE@$0)K&VRD|{`^H~ks5Oi(?^}lyxkSe6;+on zS-ux`j|dFvINy1kXP3f9#2^%LjlQ`c`$6X8z%o9Cb977@w@11_SFU3^A#Xs#=VZLqEil4Ga z(#&eK>klw7CLMfl5PP>&zD~6}%TVa|&W#&&P8Vs&N+zCuJU#yB>!Y?uJXTM=XKl!` zjZ4!aTHa?_2ghFiB(50_ul;%^9)IkZ%^S*^FfaXEt$ND|iMf^YBB!-}w)vbPsy|hL zN$HUPdXFE!H}71yWs~upla|3*2cuQzu2V_4U(Vo@5F574X7lv9f!u~}XN*=cHzYJp zoD)|ru=pC+y~yu#EfR8>jn!R#*qVpC9I(!6TXm^gxy@sq(dpYx@^deR-(7@PBGvjS<5ZCtGZy$en z->vUGCDV?vU~f!7VaC;+`)i+ST-l_obY<_N;E-p38rx~O=$!KUP<2Ib zl(tgSwW!Extv0^xbMODjeC+(?rNFXN4=etIOPA)AE|9^seb%+&sJeU+W|qPe1*`v+*KF|I!nEdor7t#4JSF7KHs>y~ia>`rTxb=55W6|dS2_=FPqc9bV9sJ>Zg zBln{*(d3oFQ6COQS&rfpcixx(+w!#?Yr@2uyYLXz{RetyZb*N{anzdSB3FXwk#r_u45 z$9E~6l;BH@3`^3CSwCMu{Mx2ZKmT+FaV>iJv+AzYB;~cHIyU=5mWJ85sEM}m=4dEN ztu=ii%RRHSzF_Y^2hG+n>AYjx)*PAPIZb2h0{iQeBRY0ii}A`_EB$-k$XoNplo!ut zxCWhwn8T5F=bZX6jUL8DUaw`hc64l7!#_#l_O?LpheiKdR(&ekop>^1@5j{6Px`E9 Xe{+OC@R`TJz`)??>gTe~DWM4fPu+_K literal 0 HcmV?d00001 diff --git a/src/resources/texture/gui/shield.png b/src/resources/texture/gui/shield.png new file mode 100644 index 0000000000000000000000000000000000000000..f5ad411aee52e12c7ffb9c6a9c9d2774d17be7e3 GIT binary patch literal 981 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;q6bzKEEkM|4=j88mW978Nl_g;?no)Rc>?Bo64tIk@?lU?qp z&TlcxElefIoHe#>zWa+s-3v~ycz;n{fGP)fdb zHf{ah|L3bBs^2EasC%S&m~7bLpys=1;vuQ$uRKdPTO54A@zhBF{-x;(7u_~oaW0lF zo@{a?(ryW}`-!+GkA+mPD9&4=cJNqwo7)eQQZ0l3jjNkkQupN-zdx37(>_UOI(L** z#{0*w*-W>xoG++t+3Nc4e&2x-tH1j9o;_2mFqz7IDC^sPfo(~tlYWJiywv&eeKU9D zx$+BFd`meuvSqyvm02o$?EVC&h)~yxzNIryu|6t%HSv{dj`V^OmxV=fb(5{jE$vih zUst0q-qIE8Dj7 z!ufZvZeC4~yEtWGL`q%L8{ejvD!rOv;u^};y@$+?t@~qnuK)h?rU=>H(o_5`?)Cq3 zHJH3;!%;J<78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRVbM)*GB+|XFn#fKaSX9It$OKfo^+^0!^7{^#piycAM1VF z(spF3V&GB-C(VE>yd2X!8dhkS2OMb<6=&cU%h|!e61{^(K-z4@s!a=~Oj@Sep%ps8 zlaW=m_w}`pe=5%XjQGJfFT5%>HMLbsKVwUf+hW1Jas7`{4tY+zyyoi0tuu5^7n}`X;IP^^J*ah+m1>wWmDw6bKM+m~na9XNGLt!_*{*)mNy zF2?-M4$%U`J>T0F&eSU3#+>!=@9BUvuhp%6>IPfSdjyKe$jB(X-&frE;e++v3bCwn z8?N!!{MFScc$(Y1>%iUG6>5U3=BYHEjc4r?seYxq@&CVahvSYp3L%VpK788s=}zRs z+3%;$64lGm2>ozpAG_UwqoohOSD)&iJ^RMR0*~(|D;U)arf5%fnyS5ip71iao%?i; z@Ws`0daZwPWkP6U-u7!HbU?a*0uzN7@W{O|rQTgfK6gW_Hr}>8tY-tX_P5 zcq#kCQT4W+W=A##l{Z%TO4tV_iE|iTzVrWi{+o{v1)Dv!x<7O0+>?3XfBVBJ?zW{r z4=fIJ*9k*~Yp2VG%~Bn(nNf(4VjW*{N;%!#~+1Gxp4m>y-=) O3=E#GelF{r5}E*bM?z%) literal 0 HcmV?d00001 diff --git a/src/resources/texture/item/grappling_hook.png b/src/resources/texture/item/grappling_hook.png new file mode 100644 index 0000000000000000000000000000000000000000..0dc061f2f512b8ac2eb864e58b2cd3a9fd3dd5af GIT binary patch literal 1109 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;q61C7x47T*{cm{L4l978Nlr(Qhk9}_BZ{NwqZ24^Y~XZY=8 z=F?~8?!C}CLv2OoqeDAh-D|a;t|uja?EisQeQvR1t^Zr!#blXm>|AEb%Q=}*JUD|r zaan`0iBn+P>qkkqmZX25Gw1#1-*(SA%P$RD4NRO;r=8ucvu?t& zKYy&b4GRw?r1p7peytYaE)m>bxmLGzeqXC!d*T~A1@XxVzpVJ*3;&z3c;nGeN{Xp@ z#?04`w=SGY8VT<|@ate5%~1 zy2o?ZKkfPc9{k%pf6JI<=5D7Hp{_M9|VeYoLp-sBZh#dlI)Nli``@sfFe z@vVW`$>}e<)wWk((*FEJ@M^#0{DsvAzL@q!y_p;2^W*uHxx98cdu}{wo>uZt_s}hg z#iCKtOJ>y1y{A}joAgH1uYX4Dqw{L>r_HPVpw6o(F5Ifo%x^H~`9G<`pj2SWe= literal 0 HcmV?d00001 diff --git a/src/resources/texture/item/gun_upgrade.png b/src/resources/texture/item/gun_upgrade.png new file mode 100644 index 0000000000000000000000000000000000000000..67c46e0b1d8bee27077f9b59eaf8a309f26722c0 GIT binary patch literal 1152 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pReiMmLDw`M>nEE|k978Nl_x4-o$ApTs?*F`F{m$~VcRkK> z)24Dv*4Td_gvI-W;i7_$1q&B7%OB-m;27ek)F`6L)YwwspU%q3k!;haUjEGPoGt$< zmB}4V>u>J9k-c{Bk$d;#))tF+I>lc1Q4@|y&&ciX6Peg&cx=IxLs8!Io~(JrI=9s4 zSn`r7la#s)j!j6B)N7dDv@Q2yQ1aTP8eAL>cLT0-FEUBa&gNd?5?lW~wi%Q%ttAs?ZPJnKb(2W8sE;%3V7cG3k1vb;3ZIPM ze%|Bz<&CqncdbjVuAY5l8BcKUmvzfmX+8UF=^A)p%`}@`zhVQd_qe=0@OU+Uvp?Gr zmoxw7C9ZWh6VO5patYvTPcItln|0`gR#hHCowfC(4 zIn-RM)noWn#N6n5XXkIt)5{+I{L`{{@!|vjQ~tkGcQVmFvi5uV&L7uU{pMX&*`(fS z{LbEj=k-a3ci|P^w|{quj9c(>n#M|jhBvp`jwUs}*KXmxQ(qu)?e{ukUGFVy*;SW3 z9xido%gZy8;nQTZd?LusUVdcuOZ^W{LE+k)beLD3oGkJ;r?l_ILLKinH#v)MAA0)# z-+?W%Z7lcAe>^C>wy^ef$Kx5RR&}r`7tP=M=8xL7uRTQvOCC%4&;RFncin}R#Wz&a zWYnK{x?C-J^Z(<-4T={^dF}cFig->-7Rm*ii+w-eleICS=%vwrrbqF*zn6uq`O3h+ Oz~JfX=d#Wzp$PyE6CI)e literal 0 HcmV?d00001 diff --git a/src/resources/texture/item/health_potion.png b/src/resources/texture/item/health_potion.png new file mode 100644 index 0000000000000000000000000000000000000000..1eb81a692e208dfd50d8c2610b7a8f407b43199f GIT binary patch literal 1179 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRQDNSz*-Q)!OshOy978Nlr%u?L7ZWPdy1)3{&i~~S@!2Wb z^Ee(k8Z((IUa$~sVzQdo$o@c3=aq-Z!iCNYLS9y|yjbSLBH>!(yyQm81oc9jo!`#< zwY3+SIJad@R(9swt=Hp{s;i}A&5!KuS)?Js*KV?UQfTnx7C|kZ6|1=Jf6tuN_VtbI zy!{aYTY1CH%qK==Z;Inj=4n3Iut`Vr92Z-q-_uk>9?5XZ-P!J4WT<>v%zi%KiT9@2jseIT*z+$a=!&b)X2VoAkT? zKaW5Cba$_62Bf4Bk!sX=_t{x^l&(^rtpS&o5h^EPeYUvPiS1d4f*IgozlmF8`qazFVDEMRu7bh`)rD7XcwAy_J28Du^p6wVJJqK$Yn(s# zGyNM&<*zp_$J^WY{J&?~!n)ez+%yTDzfp^BHF!xZa#=XnF?vVoXElrC875A#JFQYK zTZWxhO-vE!O?@fSxJk#h`&!eA=G4`lp$-1WyB8gZbXQ>cv}o#q1K$_(A7xgbkvQ>? zl9l5l%MTAO9Bgd8ZEcQ+BQMZ0`76)Oq9XU02PckN3+jTr}ap_m#8TR!2KuiaSb944$rjF6*2UngDj3BHjQ1 literal 0 HcmV?d00001 diff --git a/src/resources/texture/item/rock.png b/src/resources/texture/item/rock.png new file mode 100644 index 0000000000000000000000000000000000000000..8058c755618500ce2593c37b4a98c91f55eea7e1 GIT binary patch literal 1179 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRKBcd=3l=djFs<@*aSX9IZ9CC7UpiEzZGQ2)nj2eXt8fnMo_O zYC~r&Q+!{>$#!4%?p6t9B_;+or9&_K)q~jlZ@t`PE449d?S%98)($2MbEEs--#6wt zH-CQN&tvx)mR;7IY@#gN*I`)n=|%a+r`c@Hj8aNla=m*5jgw{dDvCu{uAa4O&5Bc9 z%m3Rwee*}M{?E^ro2SENmcuLQG zye7ShOXBkFV1|&X0!-&D@4Z|W(kP+)bd}@hymR+bj+|_suR679+04Zn6Mfa+r=%Up zxDtAH^8Rxc`|8h6QgK|&f983y)!cJzd52PL_7w^yvoJH82)dXlCiig2m1c^c+;t|+ z*ss1)qq_W_`q^xeqh|sFU0Ba-cpZGzH^uYf_36c3b<^Kn`*wB;M^E>oUz{!qo&h=?J;@n-gt^e>>riL78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pR0nXk7X|@auOcOj^978Nlm-c&i%Y;g_%`aZLYMuA5Am^T$ zazZk~pSaUB8E0~E9h|T7(>U+QR3(iTmZJ?R508DF;4sT`_R4oJ?Jk#EmcEh^S2X_k zEoWc;=Y9J97It>aWZAk@7Ou-q+brpvo*CQUCo-{bKvQj;ik#X&aR;P>fCX8#U+QT`xPc|_?ob! z2nCw+&fQuP>pm@2WV7aOvkTm3E4R92_sZCOsqOzh&%*D-^6M6_WveGoN-v+^cK_X9 znNypdJnQBEvH7LPBZg}WjtM361bLh-u}Za(OJ4i5Ci{faLG#D!o2{5iS?*80-!^%= zdQY_T^->u*xk)<&ue(XTY?n*s2@MStVLkht+Y&c)O;FRXi68_DxilI}K9!+^#)G5$(<>()Iugq1elv)m4s}v9{+G~{@wq(iU z*ZF&|Tz&NWHA88vvWts=!)9iOvfRUIn-6|xd&m?NyYt`W{d4>-O3isI>DuM!_2u6` zJ134QK^3|TAJ;!EuTac9+h^kIm{qiP!t1-1ufNVR@%212ZB-TPfmf?nf7pG0o9wif zUGFn@PvhR~`nyb_FS*Ci<>rh#%Ncmi-w&?*_ie|*^f}z8_THW|PjAI-*(wvB9V%%; z>Q6jdGOg^YzwRthyim$(*B4O4B<}slW?7!h;n}Kbn-j|(JO5*H%5;uuh&`;xz`(%Z M>FVdQ&MBb@00F8De*gdg literal 0 HcmV?d00001 diff --git a/src/resources/texture/list.txt b/src/resources/texture/list.txt new file mode 100644 index 0000000..240e12a --- /dev/null +++ b/src/resources/texture/list.txt @@ -0,0 +1,219 @@ +./list.txt +./char/char_question.png +./char/char_l_a.png +./char/char_u_j.png +./char/char_l_u.png +./char/char_u_s.png +./char/char_l_s.png +./char/char_plus.png +./char/char_l_e.png +./char/char_7.png +./char/char_minus.png +./char/char_u_r.png +./char/char_u_l.png +./char/char_obracket.png +./char/char_u_m.png +./char/char_l_t.png +./char/char_percent.png +./char/char_l_y.png +./char/char_0.png +./char/char_4.png +./char/char_l_r.png +./char/char_l_m.png +./char/char_cbracket.png +./char/char_u_g.png +./char/char_u_q.png +./char/char_u_i.png +./char/char_l_w.png +./char/char_l_v.png +./char/char_fslash.png +./char/char_u_p.png +./char/char_gthan.png +./char/char_8.png +./char/char_unknown.png +./char/char_u_n.png +./char/char_l_i.png +./char/char_u_y.png +./char/char_l_p.png +./char/char_lthan.png +./char/char_l_g.png +./char/char_bslash.png +./char/char_1.png +./char/char_u_z.png +./char/char_l_f.png +./char/char_u_w.png +./char/char_9.png +./char/char_l_x.png +./char/char_l_o.png +./char/char_equals.png +./char/char_l_d.png +./char/char_dollar.png +./char/char_hashtag.png +./char/char_l_q.png +./char/char_u_o.png +./char/char_6.png +./char/char_u_d.png +./char/char_u_e.png +./char/char_exclamation.png +./char/char_vertical.png +./char/char_u_k.png +./char/char_u_c.png +./char/char_l_n.png +./char/char_u_b.png +./char/char_u_f.png +./char/char_l_h.png +./char/char_l_k.png +./char/char_u_t.png +./char/char_3.png +./char/char_u_v.png +./char/char_u_h.png +./char/char_u_a.png +./char/char_l_b.png +./char/char_underscore.png +./char/char_u_x.png +./char/char_comma.png +./char/char_l_l.png +./char/char_5.png +./char/char_colon.png +./char/char_l_z.png +./char/char_space.png +./char/char_2.png +./char/char_l_j.png +./char/char_fullstop.png +./char/char_l_c.png +./char/char_u_u.png +./gui/health_empty.png +./gui/button_hover.png +./gui/button_normal.png +./gui/hotbar.png +./gui/health_full.png +./gui/hotbar_selected.png +./gui/shield.png +./gui/gun.png +./tile/tree.png +./tile/stone_hard.png +./tile/dirt.png +./tile/rock.png +./tile/stone.png +./tile/lava_flow/lava_flow_13.png +./tile/lava_flow/lava_flow_4.png +./tile/lava_flow/lava_flow_0.png +./tile/lava_flow/lava_flow_12.png +./tile/lava_flow/lava_flow_2.png +./tile/lava_flow/lava_flow_14.png +./tile/lava_flow/lava_flow_10.png +./tile/lava_flow/lava_flow_1.png +./tile/lava_flow/lava_flow_8.png +./tile/lava_flow/lava_flow_15.png +./tile/lava_flow/lava_flow_5.png +./tile/lava_flow/lava_flow_6.png +./tile/lava_flow/lava_flow_7.png +./tile/lava_flow/lava_flow_11.png +./tile/lava_flow/lava_flow_9.png +./tile/lava_flow/lava_flow_3.png +./tile/grass.png +./tile/chest.png +./tile/lava/lava_9.png +./tile/lava/lava_12.png +./tile/lava/lava_7.png +./tile/lava/lava_15.png +./tile/lava/lava_13.png +./tile/lava/lava_2.png +./tile/lava/lava_14.png +./tile/lava/lava_1.png +./tile/lava/lava_8.png +./tile/lava/lava_6.png +./tile/lava/lava_5.png +./tile/lava/lava_10.png +./tile/lava/lava_0.png +./tile/lava/lava_3.png +./tile/lava/lava_4.png +./tile/lava/lava_11.png +./tile/ladder_down.png +./tile/lantern/lantern_2.png +./tile/lantern/lantern_0.png +./tile/lantern/lantern_1.png +./tile/lantern/lantern_3.png +./tile/lantern/lantern_5.png +./tile/lantern/lantern_4.png +./tile/tunnel_down.png +./tile/boss_portal.png +./tile/ladder.png +./tile/sand.png +./tile/water/water_12.png +./tile/water/water_3.png +./tile/water/water_14.png +./tile/water/water_13.png +./tile/water/water_9.png +./tile/water/water_11.png +./tile/water/water_2.png +./tile/water/water_7.png +./tile/water/water_10.png +./tile/water/water_15.png +./tile/water/water_5.png +./tile/water/water_8.png +./tile/water/water_4.png +./tile/water/water_6.png +./tile/water/water_1.png +./tile/water/water_0.png +./entity/flare.png +./entity/grappling_hook.png +./entity/tnt.png +./entity/boss_1/boss_1_walk_2.png +./entity/boss_1/boss_1_wg_3.png +./entity/boss_1/boss_1_walk_3.png +./entity/boss_1/boss_1_still_0.png +./entity/boss_1/boss_1_still_3.png +./entity/boss_1/boss_1_still.png +./entity/boss_1/boss_1_walk_0.png +./entity/boss_1/boss_1_wg_2.png +./entity/boss_1/boss_1_wg_1.png +./entity/boss_1/boss_1_walk_1.png +./entity/boss_1/boss_1_still_1.png +./entity/boss_1/boss_1_still_2.png +./entity/boss_1/boss_1_wg_0.png +./entity/zombie/zombie_b_1.png +./entity/zombie/zombie_b_0.png +./entity/zombie/zombie_f_0.png +./entity/zombie/zombie_f_2.png +./entity/zombie/zombie_f_1.png +./entity/zombie/zombie_b_2.png +./entity/zombie/zombie_b_3.png +./entity/zombie/zombie_f_3.png +./entity/armored/armored_zombie_b_1.png +./entity/armored/armored_zombie_f_1.png +./entity/armored/armored_zombie_f_0.png +./entity/armored/armored_zombie_b_3.png +./entity/armored/armored_zombie_b_0.png +./entity/armored/armored_zombie_b_2.png +./entity/armored/armored_zombie_f_2.png +./entity/armored/armored_zombie_f_3.png +./entity/player/player_bf_1.png +./entity/player/player_wb_3.png +./entity/player/player_wb_0.png +./entity/player/player_wf_0.png +./entity/player/player_wb_2.png +./entity/player/player_bb_1.png +./entity/player/player_wf_3.png +./entity/player/player_wb_1.png +./entity/player/player_wf_2.png +./entity/player/player_bb_3.png +./entity/player/player_bb_2.png +./entity/player/player_bf_0.png +./entity/player/player_bb_0.png +./entity/player/player_wf_1.png +./entity/player/player_bf_2.png +./entity/player/player_bf_3.png +./entity/dummy.png +./entity/smoke/smoke_0.png +./entity/smoke/smoke_1.png +./entity/smoke/smoke_2.png +./entity/smoke/smoke_4.png +./entity/smoke/smoke_3.png +./entity/smoke/smoke_5.png +./item/grappling_hook.png +./item/gun_upgrade.png +./item/shield_upgrade.png +./item/rock.png +./item/ammo_box.png +./item/health_potion.png diff --git a/src/resources/texture/tile/boss_portal.png b/src/resources/texture/tile/boss_portal.png new file mode 100644 index 0000000000000000000000000000000000000000..93017cc288afdc04243601af4847ed05cbcb0996 GIT binary patch literal 2349 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 V*X9aa&cMLH;OXk;vd$@?2>{_{Tx|dV literal 0 HcmV?d00001 diff --git a/src/resources/texture/tile/chest.png b/src/resources/texture/tile/chest.png new file mode 100644 index 0000000000000000000000000000000000000000..7208ba6a87801b704fc21e1c0a79cb80d066e1b3 GIT binary patch literal 1124 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pR0qMF*@lpl`reaSQ#}JFtsuy?Xse}qNJlwzP+{=01zm3dJ zADzLVtEed{Xwk4-)z#yO2ggSSfyS06tv6%))0Z#becm#Z2^fW7pE@RO7s4%Z&+KPeb^gjK1a z{McouSJ!RB?{+n7DEY1Iy}Rmo^0VXnr5I~I&%DekQoc%ZtyvZCth7njkNvCk_y6!) z*@SVbB)_&M&_v+wDTKW!Hnju*c zFzd2rhKUz%hSvj$L#}+wv=q8lDswz8aSC7iu-1KBLgst(b?h%hKWUv{a$eWMvdZ>d jfVK=jdzpOAng4TN1}6ON{3Fl6z`)??>gTe~DWM4fOk)9L literal 0 HcmV?d00001 diff --git a/src/resources/texture/tile/dirt.png b/src/resources/texture/tile/dirt.png new file mode 100644 index 0000000000000000000000000000000000000000..e5a4cb717cd6db6f65cfe32bac5f5f4d79f76560 GIT binary patch literal 1139 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 N@O1TaS?83{1ON_I33~tl literal 0 HcmV?d00001 diff --git a/src/resources/texture/tile/lantern/lantern_2.png b/src/resources/texture/tile/lantern/lantern_2.png new file mode 100644 index 0000000000000000000000000000000000000000..a7e5bad60c9904bbdc13df41b80dc5bb2c353aba GIT binary patch literal 1107 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 Xw;W0)-Cf7Pz`)??>gTe~DWM4fEPV!7 literal 0 HcmV?d00001 diff --git a/src/resources/texture/tile/lantern/lantern_4.png b/src/resources/texture/tile/lantern/lantern_4.png new file mode 100644 index 0000000000000000000000000000000000000000..c761f7fe8d96abf2e22d8ab1d1bdbaa4b4e0810a GIT binary patch literal 1099 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;q6O)J~52g?{3n4&yg978Nl*IqjBA5$vA`r&-F@rSm=1xF=S zN`5t8Fv~SnG*nbPW|kSTF)=-+Ed9~C-JY{;!*b!M;O9bN4avihRFu`|<23-PV;eXRZ*pmM#%p`QTBsO?A^&!F`90 z`I_Z#2zmHJZ)=optaM`Bi~YxR=6%`to6o;JQdafejVE^trEdS(;Wg*OU*!i+8pIcd zY8EyWi&yOQp7Z=exekZc{=QA7$C4~Hwk?mSY5tnMKK=M)9o~yO&Ytc(&}r@Q>xJe- zl|S3$MdqLT{IUA-%fHc=GpoeXqG!K(bI~&SouU4<&SJ|)dDrS5O=p$6p7nC?`SeBY z<;yOg*$X18yQA7QgPQz3=v~id+9%;Zc8XSX~-J;qMtv_D3DXj32bOMi$gRnArbo^F9;y zV|nanDi4i^>;;qd zUdRf1)hSTaK2LAgrL@Jh^3xMleYjQS zCEq(f=YM+-D{g(^&GYcmZ5{p3FQ25ms(&^4=FJtlx8?sc%n-RI@^s>bcm@Ur22WQ% Jmvv4FO#mNo4Eg{7 literal 0 HcmV?d00001 diff --git a/src/resources/texture/tile/lantern/lantern_5.png b/src/resources/texture/tile/lantern/lantern_5.png new file mode 100644 index 0000000000000000000000000000000000000000..d7d62e64f7eb7d77d72e6c350b4a52937d682f62 GIT binary patch literal 1110 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;q6Ep|WQ|0N6zOsSqOjv*GOYcHPlpOY%W`r-Z_o--f#f*0@z zSzS=dy&NViBrKGaGr3Jvy6jl$_B@|EzL%E7mbTY7%~pHo8tCUEw)*F<9l?<~=SO`+qR~j^0vwp}O^{WnSMT zl|Mg>uO~fXdU;QA7njbolj$oJ*9ENn5W8~9fg@K!wA$aAMkRAeRP^^QkC1#Mz2-Qe)I~Mt3aoOy>8v}$*C!D-|&r$90 z{HqIo3%{2h7T2$7GQ4&CMS z>-UuZ0AF;stGl{*AO7*_7 z6m9&W=W))$E_a@?@VswfQI})(NiE3uIH83FDcu~T)7#US}pq6X8pX&PI~V90v@p5o!R|hz81T_rEN-bqlW0loi3s~pUr4) zJy)>eT-j~w>V*97q84k|{}=x~xb@2Q7l$AG*3tWP^hd=b-H#bnR;AZ$JX`7+? V*->DU%fP_E;OXk;vd$@?2>@uB2x78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRF+SISArcG>OyQm`jv*GObuZryj$#*J{U9IyK}cjjL$2W> zM&F#*M>-3aU7l(4W$n+!zc0+JJ95RR*KFCbh1)VZI9wfh1$i#CzrOwM+?>0ctIr+# zR@C;E%~z*oPT5SyhNHaO{&#%ZskC+Rinxfycb_ct3&?Xh+MB{<4|vo})BD9~m}DKhsc&QzSZsO-=!wd2-D9v;<}TQ4LnWEL6s`2F@f-#oh1?kQbN z*>(K7|B7%=eW5>}_3!6iTJ`CdtmBD%`-|_3FE49!n)Sva*XP;K^=<;sS2^X(PL!Xi z^!-?7*h{mU73coFUy{CKmx85dV&^A2Zta?VPZv4XG#JP>9-dG%Io-c<^U=ued!n6& z=iaN>*e35gv0neAqMebG!KsIFB@@01^$Oq8UB(==xn|>m%+_mympLbS9-F8wlp=5V z!u9u2L&LK^^Y~A!Gq5|_z4pZcW){Y;#{25ez2*J*nmb8Z#EC8T)$x#5YxF00eXMGa zl<1V=NuCpKS#jE=>HK^TzX_){R;N#3uQb{$c=hP-i5C+-v&-3cKhhL@z2KIT&&9oI za`Ll}2;C{M&@(pkv^W_u&AvYEwY%87x?9+-fH~1J?Y$~*Fm-mE-sjn{$5<|`OC7O*|RTgKT>Ag zCTw|6-oPbu?l((u^%S`adwVqMEtF&)ZxXY7zfJh>(f<<{J*b+W{~&{bfq}u()z4*} HQ$iB}CT{yO literal 0 HcmV?d00001 diff --git a/src/resources/texture/tile/lava/lava_1.png b/src/resources/texture/tile/lava/lava_1.png new file mode 100644 index 0000000000000000000000000000000000000000..1f5738f05a3384c6e8033321f8377b55df7596fa GIT binary patch literal 1097 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRG09`P7wcy_7Cv5)?7LibD*TTB>p zG^VR11X`zh%`BYr^3dGBi(@U4w`N#7uM7|r%bTsW~%{g;S?X9!h1pR>Q zjbEEWW-YdV8Dki!Sl#b9J!8FR%hmN6CCvth4hc({-kPzl;AX-z#SQz9el={iyJ+%j zN7m*&K1??=?P4zfKk-WB@zDwWPa|qhX}THroS%3j)?kjt#=o;-X6=K%dN3& zCzN7&s^`mm%IIz8o%G?8Y5#Ojp3Z0;yGQHG?|k#%md&4-75L)gQ(>vnqR%e%{|}pI zZ+X4vXS2q$=khPU@7%edbEnKwL%j+5pWkx^PFgM18GcaoC|CKhjH@rVMbw`Aw*JYx zqEbJr^LLo4Z=cco_;T83wUdmGVg!yGR_o5QP0gNr*=(i1lW6JArFDT?QE3C`5CoBec$TlIXWu98`XjqNMGOmNhHGyO;z`(%Z>FVdQ I&MBb@0IP`tcK`qY literal 0 HcmV?d00001 diff --git a/src/resources/texture/tile/lava/lava_10.png b/src/resources/texture/tile/lava/lava_10.png new file mode 100644 index 0000000000000000000000000000000000000000..20834689ba930cbc586d3314ac94eddb31145c51 GIT binary patch literal 1098 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRanrZ&dTJRMm?Ax0978Nl>t4DW933js_A#E1Q{9(C(U(E` zlsj|86~CE5X)@_m59j_}ytm+3*2S{6poL0GQW-xycx3EmO}ZeUzwLL{+wStSyPs7C zt(W)`xUMk0rK~w`_SEM&f4v^+O;1nhK67T{?xSCn=I2>tPu%Ak!|~7}ZTs2H%X8Kh zPP(vLW%BcqehznapQ}G!iXWROC#58n_FOkp=lo@>2Q~{uCeD7aIkWGTO7#?@l+8T} zd)z`QPvrI&Cmzh`+#Sjn7@3mNGd+6=+a0B@jCmj47U!+=jGsGEDoO3xHt*v3Rg<4) z7Fpg~W6bEBcu?VJX7k(fDFU^>Jj$lrv5=NH_i=$&rBcY;z5ekPtM7mO5jo>{%e6pd z#d8<;CUME%T4EGae&fDsyo#Pt*u(Aek-z8N)MwhNv#8qAiZi%71h{p@&AcaEQ_Chkk{PsVanwHh5hFy+?r`Dv3kSTSx(dLX0LjY_^{IBY`ul@$RgSB?o8QcO=#QQ~a>sZh7lWrl}JX;x?Yzf7~Tg@AV({ouFfcGMc)I$z JtaD0e0sw9T01*HH literal 0 HcmV?d00001 diff --git a/src/resources/texture/tile/lava/lava_11.png b/src/resources/texture/tile/lava/lava_11.png new file mode 100644 index 0000000000000000000000000000000000000000..8e4d748fb8f5a43bf21222a019d5d119f71845f8 GIT binary patch literal 1097 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pR3Ff6|ShX1#m?At~978Nl>s~q?JS$zI?c@FLoK6ldOj*qH z9xc3OChY#$$2_v+`k&KtU#@$3#BAoqWwWBP=Q=jC%dqe(GBNI|_`Pmkd7*u=eR1qX ze;)H~EB^X^?VHLaZtCT_i1DhLu_c?c-@C~8rM2F37Sy_ZnU*Mj)K#wc;);uz8-8~E zy?@g7**Z_F^LLosf1g?RVX6D)t|JU9V>p%v$(UCBY}%Wv7hUq+BWow;mo&0c|FW5jxj7NE0woJ`} zh99TXFFj6CyLmLDZFy=}@WNMrcxoT!{yp(|dg45RsN-A3R`SfP*7|Wp!Ryn7XHPnE z=7r4b6srGs=-c@-^};Kb3fiB%kQW%aFotKxE%7a{L{5MCt>Sj`W@_bRch5w0-Kgbfx&CpTpLJ_p&Etp8L13R{Tf$ ze3q<_7eftlK3l(;&V1t+!v5Sd-bJlhE2wCFc6s%$ z`8Vez?UDGGY&k8y;HUk&kCuxLvmWjg`u+aIQp>6ZJ$lpjEvu4XIi(cKQyxF(Q%?8f zxe4pd-&gDtEAcgrs5`b_{zWPCYws@;aspm_ddv1zYG>s?W{stfm3zAPS2Hj$FnGH9 KxvX78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pR3H~)zo(v2OOp%^0jv*GORWBb5o)s=}^kKWd0E-~!3em-e zD>~<REZ`^fo!PqM}7n~cj(D6}Tcd+GWwdxDhWukQ`-uXnuO^K-Vw*?jxU z?~7|4xr-}LEsj|b!1+kSbGh3i(`GxbP&c>C>o2!P)*k#O|K$BeOZDJ{ym@51rIB4y~&_$}-8>+2!z?eX5;PS)<%z zj)*94np|Ug+OxM}eo~iDTcA%!=c)dkyE%VOlF%+%f5`BZcTeBv-&GMGWEXWj)3o37 z;M=SxS1mggpIy51HA5~ady|p3+3DH5YKa;=5-Jv}H-GL^TBJY!WY5I83BeBEH#lV) zMbs9|-&b(0?#au~1@huC?q6q=OuHv){Nsw+#7DbMKa|_a^pfdu>c3yDU*}hRC|xkk z(PZvYY2(cN>fwv8ci0x)tkKeNbWoR!k-h}`fFy+ zmisCjrMpV>-o7OU&g+l=zOGZ_p0qi|!0h00S+0%(#s6nssU$D`Aa{2251l{f9_l0) ztCT(GJ$5?hzo*^dd#0jy5*`X}y&JGV#%Sq;-GxUcoAR0ekY8o_FxZJfcRB+D1B0il KpUXO@geCxMJp}0h literal 0 HcmV?d00001 diff --git a/src/resources/texture/tile/lava/lava_13.png b/src/resources/texture/tile/lava/lava_13.png new file mode 100644 index 0000000000000000000000000000000000000000..d7bddc28d62c650446de8eba79c1ff3d89ff1b76 GIT binary patch literal 1099 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pR3F&PM=GHPWFhzN~IEGl9R=s@MKRR6G=)?2kvtQqkcznYl z`H-@W)GaqhMUT*>JXYENUhrv|=6VQsPH^(lTxxp6=8cqIzr~FsW$e#;zDcfGyY+ki z+bi$p9E@mvYc8_s&D{W3aqjq_+e`axHl-R_`ten6Id+gOv*Ksl@zYD#j_8WXfBasZ zw>zb@}=%C4HfEpBrU>0Gq`|LLxj=iKe}LP!7n65cCkE^cBNyuj!XYggz$Yelc( zQ01?)9QmJCzU#TL>T>4BUvu8x*SPca)tsD(GcCVun;G}$v+i@>OSMN@75b9DMcGuJ zx@NVU^RBj0<+*R21vRIx*zDhvB=d5i;-bW|`>m~ObS~IDQCcW6arT4m%)V@u-&2fI zHuogd%vBllUcZc=`L?)&5On;qtu+~MeH+WzDxwpJ8Ul#{CpE>fy+JtX~ zX~aym>5t#C2^)w=@dVAedb84>^Wt;=6!(+8n>!!M@UNPp-gNcm?=LOezcKgEZ>{nv zki9DWNM>&KvJV?wwGR8vZnpj8`ba5RwC?}RukthhY6YBD+BJRgT!XDHTV)Ei`g=%C zS*^(bGSSQ|GUlmYo6oG7tVu4nbJdo4M%{^j^odzrmP>S(>?>=N*=NElzc)P+nafwd zC+%T$(CpOai-mS?3=SOP5>KBaA5`b?+$h5CmioEkN});RxB1Eimo8GsQ+XH>w=fPG5}QvYzSxpS=#cx3b$>*48;M7H$!IHt)iUi3vsXPO}B`GdKR#UDyBe zdxsjUPdMl4(@Q4IfAZLLum2i9gDAfL6PddG50~;imzevozGK0|0^^=IP6h@B22WQ% Jmvv4FO#rPY{Gk8< literal 0 HcmV?d00001 diff --git a/src/resources/texture/tile/lava/lava_14.png b/src/resources/texture/tile/lava/lava_14.png new file mode 100644 index 0000000000000000000000000000000000000000..d069795d4bdddcf8650dbecc07694295c2ac8b38 GIT binary patch literal 1101 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pR3Dxq04c8bLm|{F#978Nln_j*hJUdn7=tFgR&iG%g0+(2_ zCKqY2M{f;YcB1F8kN%#`^;^WPzBL532Q6e$lFG19VPm@D;pDle;&|=Xduwd7*Wa%S z)|a@mAVl@#=Dn_8`A%v)FKu&|n4eZXwf!^?+n*2IpE*5eUOCruFkrXbni3@b( zFP5O{QSuH+e=o4;;@vH*3l7j?a!V$KPzL_@yeXJ!i|y*hwb~ce%GL7GAY^ z&yUW+CGBk;Z8s~WnIh*bt~^jVJITf9p!#H)s~PVD&rCRL)bufO(I@6#dkf;F7Q5z! zTewsLq;e)fd~mmdJn8j{6_3_9>9Pdix0HUH*`d{@o#MtNDKK ze!_Kx_1LLDzm&D_8~%-4FwM2ZeBtF~yBwB^6qNR5nrnnQ$zM9WX07r5BWrnPngkag z=`geQ@wt>&nBUm_U8elx^p~Y8^DpKYML&F7%oVyTwk|sLop#V`)#i(Z_wo%7+);YI ze2#3uF8}XJ5q5W!&lMKR%qqXj`CrM))$xv#9$(mPcAkX+ORgn7ww$TczW?%0o78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pR3B3oxk#P(ROfjA=jv*GObuUK;Pfiy(`Y}FE=-vzgC!dB{ z5)OR2xw4WIXZ9J#eOXs`tF9@oWLa2dDcix0~)g`Ka@pmrIoIUU9R8;3Cg21s9VFC$emsT(f7%_s*xB zZru-UCnf(AbeA}1VC9-rd@Ny&%UjW%Ceh(jE*`xz{Y}m#cd?gBD|y>Wv|CxI@EvN!&I~6=QG7#tDTvP>i<3c$hFpL{e9u1HvebF^{+PW zGn~5Et|<&>YATkoH|`|Qz_l6fm7w`GNh@7Ve5 z%ZwEHLOqk?hS9$BY#zPUa@XA@zGTy!9QNz{eJjp2E zU3s~i(Inz$BfGzot=fvdSGtdQ=6Y-WxS=xf(W$o#G@?vOIZOr>~fP1uUTun|IAvEl`6r-^WQJLmbS=i^~t-e=j;n^D26Y( zy>Q>bkA|C5@7XBFFTDKl{PZ)m?n!$y46M$z^Rmr|e)Oj0vTfJ*7jxK8{=R)A@*F>N z<@L7(;(aqE9ZZq57l9tDN@3=9km Mp00i_>zopr0NOJDKL7v# literal 0 HcmV?d00001 diff --git a/src/resources/texture/tile/lava/lava_2.png b/src/resources/texture/tile/lava/lava_2.png new file mode 100644 index 0000000000000000000000000000000000000000..d977597655e123ed0ea914b416962874b7b4fbfc GIT binary patch literal 1096 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRF=Yltj$8%?rf^Re#}JFtx|dG}&n^`?_VN7hNfS&ITLd_S zPA!dT$y)BCsW<24p}BwN|C8366BvEvT!4s`hq9DGj1#l|^dKhRM~|Mrn{%`{@BDX{ z`xm2scP%+u(0a@2{l|)l8jChMOFs@h$G7rKfYj2DeeK;Yvs3pT4E%R@Vf)Thy>k}! z3;uL`Q@z}8c}IEj^G`G4+J8%5vV5e$_ekuMq?wr~-wWrBE_;t&^Ix)AX5ZsyT^A!i zJubO@WNUEJni|i|vMq*b^DeHLoRBl^w3=}DfqP=t-Ak;GB)@o|m6+Md@zc;Q=JL-I zUabdWuxv_1o{ftG9Oq%-r_z}%@uUz)ChEGYaG;mn$xclfSsoVR5B%ZyRlQVIpWY%pTy$>(v zeGU$aP2qB!b21?N<0H%H*K<_v#7;a{yiNR$rB!0mwE6XkA}jaVJ*q3K=VyZj67C1>S7AC+Iw)4``FS~Yt?ZeXG?zU)@xZyGZzno1r91_lOCS3j3^ HP6#?_ literal 0 HcmV?d00001 diff --git a/src/resources/texture/tile/lava/lava_3.png b/src/resources/texture/tile/lava/lava_3.png new file mode 100644 index 0000000000000000000000000000000000000000..6a0a23771ed3c5a3d4197296262aaf08b3b49926 GIT binary patch literal 1100 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRF@4VIE^Z7AOwpb$jv*GObuZrzo*XXH_A%a0Xx{{7L&m6c zY=XC}jFgQ1(r5U+fA#-PT*g9Os_gwywf+0i&EIxkt15f* zeM;So)(M{vn6>2cva1gkoGV|wr~c$2;X{gMbt*UZ^*u;yK3S<}UvNn+ zy6eF!zOPnK3-8$|+dJ+)yF2`ht>U)GE9ZMZB(~cR`*O^@ z3-61neU)4VxRrJ^mYn#dcGj6~f_^~ehOa#?lNQ_W%rgv9`>VRw>|oqnhST>0vfUFJ zZn|I5GBFH$w&~arrVaa#UNzjScTi$ihG}GsO4}C+`SmaAk}9Xf8172nbf@}^CR^~6 zWu0%&z2cvKqt4gt$^RWoP;1AQ$`VBM*;e%jpTd7B<`QyzCbr`mD)n+2$!mF$(tQ_N%iL zMu{e^U$jR?9)Cmax1fz z>9l1YOK(J^i?A(X`YVwhT6QnU;loeilQJs>&Hjr&d1rC-qQV`j5xr*Xp|L!Z*rTev%iw`7Gz<;~k*#g2B_( K&t;ucLK6TvZvH+1 literal 0 HcmV?d00001 diff --git a/src/resources/texture/tile/lava/lava_4.png b/src/resources/texture/tile/lava/lava_4.png new file mode 100644 index 0000000000000000000000000000000000000000..5eb97fb87a9414bac84930f0a58e8501bdcd8ab8 GIT binary patch literal 1100 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRF^evjgN+OfOwpb$jv*GObuXU{o}4an?4h z{+|J>`g%_I+?Eu-d$oSYZ@rwWuXr9cxGvc;as32=3TBf@36u2Zy_>gr$N8P-ch>tq z692_NJu}R*Z|7WfV>dJJ&r>c6Eob*RSNLh>YO(&h2WyUfl)E@rXYGuYs;69yl((!p zV%n9uD|S-zn*0qrPOTMLsbb8%L@;-&hOe;sj@?I&GF~ zx&7zowAS~YIU--%)h%u;>u(jEl|JWv@E-TyO*h|L+)|$Vc#+rs)4tsy(=-HG3z>J8 zY>;|y+%S=8D%)&*&s2+FKCdTrRu+}N*xFh4+9jgaWvy(B;Inx_s|Ava=57<^<~$=1rpKR?J? z#oqhNcl$p(+-gqz_IJsw`)~TB{_c{#nKqA|O$>vcZSk7&WRugQTo2d6dC|@$e3|AE zwFj@sKRLd`hQHzLnT@-Tei6E#XR&_r8^yW&k4k3UWjjBAXPi@ADU)8UIQOye zvS&Zv@(O$K@d)s4`m89ElG^yo?(7UFmu*MhX7*_xsTK)JG2-F0ae2)DqV!OmCy%&< zc5%x`)i$@vuU0ZU+BFuH9rD-Tu~V(G)Gw)FW{JY;Z>?UvQ(t~izP~=Wsqw;s`48Sq zc-t=`Q2W~}ZN?iG>Ho|{>wPwgtT}g&cfrA1=WQzG?k#S5{hwjZlc&4IFR^Z6U|?YI MboFyt=akR{05pmJMF0Q* literal 0 HcmV?d00001 diff --git a/src/resources/texture/tile/lava/lava_5.png b/src/resources/texture/tile/lava/lava_5.png new file mode 100644 index 0000000000000000000000000000000000000000..3965c252cf9913ba9eba52087cd0a1e894c0b17c GIT binary patch literal 1098 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRah5#>J?;z)Op%^0jv*GORWIH5pUo<9^rL@#)V*~}bz`|b zw0XF5R=5~#J2FG!@zZ}9`aXALP6^#;>Fmg8{Iq!M2eF8yskwVA^yhbfelq8?ZRcCh z#U=ADP6$`8*?!=--O|WIh3EP@{Z52e?m3ll;GEiDzUv%Pf{AVSbVF-0CVLcKfBK>! zr*Xr9l$rPIk{+|m)%vY;lRB8wmgiDB)2p+j@ttMhC*_oN)?M8B z0j0*pI+YH61ndDW4U*`ml&~hDu`{L$eXl9@&+j-;(e}rt^Dpb-lSaGqPb{_EvAD@jOg{L2dWX)Xr54|R8m>NXc}t0N z{rwMDxjF?CXDWQ^0vghurJ$8;wT=1`SP^2DzvQ@fxNcNszt(q#wk8vEkSuZZWX`9FE8GbH? z3dU#Ei|1VJ78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRaenPbq30PGn4&yg978Nl>s~$^d@Ed{?P2$P1r8;p6{3&C zvyyN77#W@`v6}2!epddjYx*p+WhZ+KubOSWHcjGBgV0B14TTFwUq;T|T#1^CZ|@B zMLSL2iaj;;VhysqwS3Df5w9=5kGS8wmsr}ok)_juTU$l&?bewymtTEyPinfn#oGzG zm)-_cyDxTJdgS)=C#OoR{`~8jy1w(R2#@-*pC9@Z!{iD-PW-IQb-G0F@QLH?D#kJM zjNV+%p6nrfbdf-w(qx{++xjFN_58P%N!c6Wfi<;R4&Gs$2$9a&$ zyMJYPX5zL(sdGR5b$C!P{k1S#?V?D=%c0$0OOsBV`Sj9i$40}$E{c1OZ(d{f@J;<4 zVeTW}rt_$GzuBuc`_Y4GLc1b<&Ut0WoH9YHWv_pK#fFo=b02+pWXgZNlh@NMvi3my z{)?~KuBE?Fyr^>j>FMKFvQxx6|NU#vH_Ntm*?_K|8H|kMVttd;eYnj>rb_p z$n#ZRZ$cL=3P{YElh*4uxi|gIU#GIJ)t?n^91>!$KC`~?`r|#0H4Q0dEt5U@X4%vp zdMB2yyDMD9sK$n;#P6I&_>Y&Wmpl4<1bR39Hxv1k(Rxf!T=$dUOG&%g&zE?;o=~Gy zv#Ic4`-+PBj^=N~kGsrUDRf+8ouS>y?zI6Q7y@1X_TyL+@zjx+eXJBAp N@O1TaS?83{1OPSL3p4-# literal 0 HcmV?d00001 diff --git a/src/resources/texture/tile/lava/lava_7.png b/src/resources/texture/tile/lava/lava_7.png new file mode 100644 index 0000000000000000000000000000000000000000..ed8ced01db13f0b634e7d0f6e34df78a147ad2e4 GIT binary patch literal 1102 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 literal 0 HcmV?d00001 diff --git a/src/resources/texture/tile/lava_flow/lava_flow_1.png b/src/resources/texture/tile/lava_flow/lava_flow_1.png new file mode 100644 index 0000000000000000000000000000000000000000..624bc7cc8377ea6d88cb13bf31887807222ae729 GIT binary patch literal 1114 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pR6{GftHSZW0m@++G978Nl>t4DY99%Ba_VD@k$unjMIPtVg zJyB@yTC1#VbophE_}EudHv$LQ#To>{&xD_G_zgi-9+7jLZ3U&mpQBXi!4gn+3GayEAK7#B^*nQ zwu;TxKk>xk&*XEe$;Be?j9v)6HS65)Y3q)Qs;wOczgygT&D5Ul$T0ZHaO3uqR~?S? zGni^)wnauMEigEET>IDj2+8yvlg>E1ip?u(imq&1&S|~5r)Sewx0o{MU=gWzcWA->MbKQA7+&|-r<~f1C zfBS#j4lUe$?zVl$razyQ|Jq%DZekdlQqoa8W!0Z*pDE8axmC;!2%P!&o50##7jid# znzJ@u^WMWxJu#gxBg?kWhxcV`Ojr@3zJr| zq{~>W-TZf+k>amEop%g=8k+qRe^NK~RE1FKv$!CmHFf77rz`Y$1i61TyJ>S*TkYdU z*ApGw;SBg5`J$t!jX3UZ(#c-kWzD)BKA;R*Pwny9- z5DVKeS8;M$)jXX=Yxy1rZ;8GWEfQbzV25|%l(_H}`P^rh8H7K*%k4F}WcQzcvwr6P a;J=#izC>U6RyP9!1B0ilpUXO@geCxT><+#F literal 0 HcmV?d00001 diff --git a/src/resources/texture/tile/lava_flow/lava_flow_10.png b/src/resources/texture/tile/lava_flow/lava_flow_10.png new file mode 100644 index 0000000000000000000000000000000000000000..92c9ebea3ec71ba1f67e984d997b348df8a2f03b GIT binary patch literal 1118 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRHRz=AC;D$do<_gxypIM zafuCHy%U>u++A=z?W<+aQm6TbHB+G8wR3Caa ztKibYdQYqKFXaUL{AR5Ccv;^^!PLaXk6R-dTPx zCABT4&-}H|p@2;ad~?ih)VWJuT;8AJe$sbC<3pM6t3%W#uPFXLN%`>Q_Z44sRvuSb zx!BEp&dJW|aG%G{vnM>;b^4#)PobGY$&dehQ_j9`{N2?_xBEq2Utar5)m5UKR2NqJ zEcaY`D#0OZ##dgka7oX}euldp*e-@mKPhRI`%afr{JrJ7K$+$D7jN`k?Yj2VZSg6~ zUVi=YcWTAM?7|x>I^5MO_Uj&rhm^B)}+ZSH?`)$?P9>Pv1{vH1l~66ZJ&QaiPy%q5o{v eyb2?q+ndI{FZ%Mt^CbfV1B0ilpUXO@geCyprwI-K literal 0 HcmV?d00001 diff --git a/src/resources/texture/tile/lava_flow/lava_flow_11.png b/src/resources/texture/tile/lava_flow/lava_flow_11.png new file mode 100644 index 0000000000000000000000000000000000000000..94a6bfa1c9a2ac884719cbe5bea23f9924586282 GIT binary patch literal 1115 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRH4Trg&&3!Rn6f-w978Nl>t6Quk4_h9efZq^#*K}JZ8N-+ zi@B#e-PYh}y5h+;*R+0TP`a<^C6`4@CIop+J1i-jiV7b_Mnc3Xb%mv-WJ zey;wVdzGS7()yZXmreii>A+Rim3Bt0E^|&6TzK%5J28FoXSKW0mn!x6I}57(Qs>>j zZ`60?0K-Lv-|`-brH$Rm>t^@3JyH9SHtVw1S!cJ)DVuo`YvyI-%&eQ9-FfhXM*rzK z2|1k$1@GkuCH?A9diDIzm#+5eptahE7>p%<$-Z(AdA-JO^68Jy#e@weNE~TAEmbWq z>H6jAW(#YbbG@5;56bwTo}xBs#pd9X6B8e&&)e_wOwjYyifby97hhh~w7X5<(w*&= zRtoVd!6_*{`|FZFho|lLUXdzjd-7slP~@T*p-ry0(oJ4ZIrXJ#3ERzEX@zs$GcReT zi5-!Al(GHn5tFlR23wDuRX=AXa_mLfinoP@2Ww{Xuh$HFQF5eyfAT~3LuH;eHhML; zl#dWzT^#8^xbwRfo(Tn3m%{$ef?_3!i>Bk}Sj$>``!u!gz{`}(J z?i&`yal*grebl3S>DSaH^a`&htx(X}Cva~6Be{8sZ_cZBl-&x464Cf8{%M z)>FcpmZrSloIEeLV9V4k*JppXiB~-G$fx;e`k(I;+t*DvYAH7%&*0Y6-=?ojxi78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRHKVQ9<#HGpn6f=x978Nl>t4Pc99=4M^yB&W6DCX$aFWs! zI<=HhN7g!Z$r+1tUk;l8cK`jLCv;_LThKyR7nOj#&c*_7P7_Nznfu>P-`f1`-#XE4 z=|49d-|Xt7voFi&|CIgrFV7b~_szmpEOQE%&zaBfIbSj^s{i(*to52={(qHIA5Qm| z>^}6CmDfjHLh=dIQ7@&wpqQ&1`4?PwYRO3~sq|Q`sk1-jvpE<44lDKOl&WcSeV2*- zs5xKR9Kt`7iMct&=#5F`$2q;Be$jVgC!Qt>xhmv^xV z-;RvHt`ofPEsE!IR+S5}ICO%k`S71zUL7wLyH?Eq zbl3Y`zGv+GZfE(+l2x*=eqVW|<2&*6$Fg3-7v5q=8aF#{yBF;A<)`pX#iGS)yf4_U z3Xt<&bI!(R9*_3@&u?6f_`PG?+jWgBt*-kB<;`j_*`E8Y{Dk;P5lOj+{qrOKHqKP% z+^SP(GI8X==Gol|o>iNuks{cid(Px*M zE#7M9pK=yX|84eijzFu1p!vk}Dq+#=Ulv9PU7z)+H+;!vnZK^TyDqMpFkhfbcF|n7 zNgJN7Ur{cU=wkDG>yEg^tsk|fm#WEgbL^Imk-z*}sQ3T<*41L&-7Js(SeRcgvEOKO zEMVsB?8FTR{(N3C_pfE!GS1tZITxM1ubFbxdV5Gg`%eAVTV+BEY&NA{vh?Gt*mdZi c)PF`-?KffkubbK#7#J8lUHx3vIVCg!0HcfsF#rGn literal 0 HcmV?d00001 diff --git a/src/resources/texture/tile/lava_flow/lava_flow_13.png b/src/resources/texture/tile/lava_flow/lava_flow_13.png new file mode 100644 index 0000000000000000000000000000000000000000..1acea91d06cc9fb501fb02d457392956bc1543fb GIT binary patch literal 1121 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 literal 0 HcmV?d00001 diff --git a/src/resources/texture/tile/lava_flow/lava_flow_2.png b/src/resources/texture/tile/lava_flow/lava_flow_2.png new file mode 100644 index 0000000000000000000000000000000000000000..fa1550573e65903558c63931d7078d36872d8e8a GIT binary patch literal 1114 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pR73+VtN4yvqm@++G978Nl>s~q?JiAol=*RQ#eVs0;#5nEn z(3oB%xN5FZK#axZR_mKT!hiMe2=Lx&EW&OzCCOyzLm?@S>6Zj%?a_;yo?iIO^10>x z55{Ku7GF)N@Tu8w(%mLbiDluw7f+ zZ!hh8!gKj=kI2p=39bF=E}84HTkI!?PI+DtATq1;-K;ga8-BC@JscB1K{};sT663& zv7bfy`z)02I&ZT#Oy4YHQu(iEuCHHo$-0vw7VFhs%gi^jRR8x@b+O0tAeY)h|Kd+N zhdr~jezM6`Q_22Vc(Ba%jL@S?d3MUUa`In1G3mlTD7hwe#xb?mEAGk2() z^7cPtWr*PP<41PN81oBXNciji@MSS$o65>y`>iu)Jh*JR(07~mIT2wcX?Yzopr0A8s5y8r+H literal 0 HcmV?d00001 diff --git a/src/resources/texture/tile/lava_flow/lava_flow_3.png b/src/resources/texture/tile/lava_flow/lava_flow_3.png new file mode 100644 index 0000000000000000000000000000000000000000..48e112244ad325dad195f80113c8f31e84571c20 GIT binary patch literal 1114 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRRiUL*a?=?Ym@++G978Nlt6shx99=4M^yB&W6HFAvon|qd z+Pjb=Yq^i6v241;ar58yubYj-ymQ?bI4$kaDEHuDanfv@^!RY)9sc__v)Aq|`(f+8 ztpA`P-}a;5t9E8h&n@7VqL*BrKE-67m_7Mq-@ zKklMgSnVzoryd@-l5;QXEcTLFXYAAens}eocf6h|W4WN~75|p^^SHNPU!r%O z!?q`VQrgw>n=8AYA3O0hA~H>&>V?pw11}k+-)kuU`Z6&`ekWttgdgQu&X%Q~loCIEyc0EGYm literal 0 HcmV?d00001 diff --git a/src/resources/texture/tile/lava_flow/lava_flow_4.png b/src/resources/texture/tile/lava_flow/lava_flow_4.png new file mode 100644 index 0000000000000000000000000000000000000000..86e39f179f80f1e0c2f8abc3201f461f7a5c4089 GIT binary patch literal 1114 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRRT(E8hXe)&rc6&4#}JFts+Z3O&ng!=`tkgG#+HT^9r~PR z88w+_P9Nzkym)TMi*-NScfVhhJIT!WSeR_K4(~@C{E3S6?h_`OcRzkn z?PV@3ob}?qf6acU*A72Em^^yzbzj*|3)Q>oDczkGvs1U9e5Gx6ujtaFcU?Y? zHF4hSic1b%(b>N*dCmmCr5$WHej010WcFRQy`}3l(Zc@V-*%a+nO8MZPdsgL78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRRaIHd6B!H)OgWw|jv*GObuZobpUo-;yE zdRqCLJbJqE#qLTwJ`Gz1Q#}jYMa4e*PAwK)q?-d?UY#Y4_hv4*yd)&iLdEdhvuLsFJEp75 zOvq~#IW$-9^5&9THM@>nHB7H9N@c5++Px*}iq@WL$Aw<|&*w|))cAhb=2F-7I5x1Q zHFTGF(`jX|`4{(hY0sCLaH^o2$dKY7ma?V0Q3)UtaMyt%*SuS{rYb-(gmLb1CLatDwNgsS*zR@VXyhGldhV4?dVvd-em(CoI9NJ2;c-3NQmOB18RjpxM^>LZr~l+#ajmA8 z_>9@<_3bxR?d}!c6jE{Xc>1V7>uBBV{P~;qo~v{>*`YS`=_7@0#Z`V=)hd3@(o{Ki zjN|ytYH{Ys*af93ugWyqQkMNpnReM~F0-Sdr`6e(AM%GjCA%^2dc^v3(TloP;VIK+ z%y@Fu%27o^ktcKB=fB18@;vXv2=y3FPr4#*%D>V)a<1xR!JJ$p-sFwvG#)HE_^!I^ b2mfQGAN`MIvL`YyFfe$!`njxgN@xNAH@X7Z literal 0 HcmV?d00001 diff --git a/src/resources/texture/tile/lava_flow/lava_flow_6.png b/src/resources/texture/tile/lava_flow/lava_flow_6.png new file mode 100644 index 0000000000000000000000000000000000000000..a99b6674872684741de09a7924befbd05d9adedf GIT binary patch literal 1119 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRRbAmv4p9sYOnIIzjv*GObuXU{o}DVv_VNDbNfR7|6jT~o zKJkiez3iuH+-DrSW3%-Cbn&a(wi!?1({OcBzTer{a$ZFsPJI3OS2^eA6u*02b?BMO z_w8TuDqnQ4A6t2C#{9G`IyEurB0Dwp_&n1)jjlwA2;RLvNj9mVhxZG=QT##^y_C&o z>=vn4X4`-Gk{Z;%pmm@8Z6Cj)S~b30Bil=riVMmP1a#(2FKXRe`ps_hpE(!&f6vJ% znlM`}_;iR@O8ZXBg^`Ox7G77rdj1!i_iCOcp37%Msx)W3Zu^)yi&sv!xbT2yyVK0P z_QScaO2xEls?L58naj6-fBMJhLvEc54f(bmH58kF(MtH-cg?excP4z(?)!G)$qoy} zcZKE7RTDH^9yR9{GVk=+lvO<6jz@f@*^QdHOX|O{n@{i2oiO{!Lgy{f>W5yLU$Ock zsC345dDzm(xhkuYPPf@>TRFlefNw zZ^3bA<3}5e)#Wrde|6MIxtSa6DBc|(boU{nWs3L7yXwCmsb~M$?8kMlMqu7Lfg~f| zY4bij&%aZ8(o5~0;#~pp-8Fyb+)`|fT(tk6*uLn+l_!p$?_9S3&y)}O+gBtnQ_y>U zRF^0G$M+VEqp6`B@Bg1)u;qZmykm-U*;cQ=@hdb&;^`+F!JM?dySmG!xBj+1_j-xk z1WlE*GkJFN#_bcx-}iKj=l4k^eVc8S4t>-N=Kk}i&v41FUmd@0{+z<{DJL-I{_?9! zBn&OiiC>lpZ+#|r)a0g4WhZ~&PecB@Ptuomw0HG{SvXZjp6KVuzsIHMm*FC~HF#hB e(b(Dl8BSb#zx3j}9U2S_3=E#GelF{r5}E)A@d{G_ literal 0 HcmV?d00001 diff --git a/src/resources/texture/tile/lava_flow/lava_flow_7.png b/src/resources/texture/tile/lava_flow/lava_flow_7.png new file mode 100644 index 0000000000000000000000000000000000000000..82c0f62e0242a34f09d8826aba0e30bd5edbda8a GIT binary patch literal 1119 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRRkNAXJGU_~Fy(o=IEGl9*1dc?cyhTw`^WR|eVvk=I80vJKuJ< zea@TB)#oHWz7aAv|Fh@NW_Bm7v$uJdy)U|`Fn6iVVV9}jvzO@macHiJ%-e19eT8}C z41rITVbdgAMYeY^A7{_mm&|eTY%{_RGym^Rg*92iMm0NA@@G4B=5!uRy!Y?WYWbOe+KPH*7FAd3S@)a|)SRqccyqz! zB{2)HE8ji-No#ZWos$zhgXb!CXFQ&Ck<%*o-TA_Ajc(H)8HC63nPqNW5gJkLm^mkJ zx_!Ly=bjBwV*EWH5+_R-bI+0ER{uR^`OA5#+Vyu7qaUnsyz}_iB%gU2E+-45TXjya zc1oWw;^lnh_L}_)lOI2hkC|s2w75Wjp;+$rjtxI_&#s#=>B&lUlh-8%VUO3G{L$QU z;GC6s`=i_QETkqUSiR@?{Fz1M*pCv&_r~3ed8SOh6QA-;)BQ+oCEKc&wVEFvY}oLz zEvfIVen>&<%=IhtRhdL5Xm=Y|O8vHpO3I&Ua_F?V%{=uZDYwtqJ$hdr6R*0azhnKx zOyiQHht*B^HT<|P+V8H}?()20>UWpOy5E`)|33}6qqI&;@}2(~?a&|F6ANqN?H1e?)Bktin7qjTM}JfV*I23MU(NApd@QSY=%L_a)4IQN1(yVCF0$Kp%|lrK%!OOew;T>odE&m)`e5SRb9~M- hpPc-qYWIhIx$wJd2Y+6ZWME)m@O1TaS?83{1OVWr5f}gf literal 0 HcmV?d00001 diff --git a/src/resources/texture/tile/lava_flow/lava_flow_8.png b/src/resources/texture/tile/lava_flow/lava_flow_8.png new file mode 100644 index 0000000000000000000000000000000000000000..48a3a55be628ed438ef714cff0e9d1efe5414aa7 GIT binary patch literal 1116 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRHRdOra$yV%Oxd0;jv*GObuZlwj%F1&_VBsPBsG;5hr{hH zLKzI*+b;WQ8uuB;RHXmUNG~}Sb-~Cva7Bb5uSpFHKZ_GHr*EJ5@x8b9R+QhXt(VT> znINawv*Z54LWi}A6=u$Q$8YuqxCG^)! z^qDx(u#Ib7-Z^TeZvGQ@m5UxAUv}{mv8_6#DCgNYbRAy%;DdCWJbN( z4x8tXCR}p13h#WnxYnq0onJ@wovohFIhqXw-A|;m%#JqUmvktc5_RO8_NBcZ#Jp4d+^F;8dy9eVYPSz+CmmLvdLR%Od#5v^?&LXrk$0DO zDMX8eJiBo_F>RuMdCZ)Nuatv5j?C<-&`78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRHKD$pc1su-n6f-w978Nl>t4F+AIvUu?BjXMEnBut3A%Mi z=Tlh1rn4R{la3zgzI)cbO8m6RVP4@Qoyk0ftf#$qpVG_^+At?}&fj%)=I1A?|Ez1i zZxFG-%3DqOUuy62e#@Hkg(?!hlh1v&Tom;Du%5Pm#Xc|5m5q#t9Jk${aOjfE+uB_d z7l=%fe!SX~PugYoluId_c@{>guetO5+bq38uEVNs*-gwLViHn`UsWB?=pLGI&CuTF z@w2WgKRFLF1WV>sZ~2z7C1RG!^v7SVk_{$^9ATV4D`)TGmJg@XHywVmDks6c8p%#|u@zHKitV&f$_iX}@%?0}l-lN>sqdC}E}t<=xw+u;q>Y}7_`Zu-{ME2{ z6}Y0{?&6)UyM6Z_n=LM){^IM8;@+L_In7QzdZ;D8y@T`Fv=?=cQs#fs*?T$V(?PwN zHp|_Q)aL0OeJPVDp!Sf@(QdL&?>9+@jV_B1-xgo8S?15#r;=B9S=5^^6nnRYlXKes z#aF$X6w~A`W(g$jIhWbp`8(;z?tDx8C)@lj{4N}iJn~41@zdj&IhX&R`6O{T_2bc< z6)O(>N$&f9+}1{wV_UkA%k1?UDK~d6YRf)TtDBdj&h&Jm?&NcYTl6b79J*JvX#dr4 zn;4&xvn4a?73%)?&3@hT)i7_uI}WewHNQK;CLc0+*j`_;$?3|IukkICAJ^Nf|5?9l zi(%*jBb676A|BsYJ|vRP+hp3g>Zw(E+mX3yd-+bEzwswFK;r2e6~UaWwz!%!_{bgWaVDNPHb6Mw<&;$UpzY<3P literal 0 HcmV?d00001 diff --git a/src/resources/texture/tile/rock.png b/src/resources/texture/tile/rock.png new file mode 100644 index 0000000000000000000000000000000000000000..b283e3a8e1faa53146403f04a20b414d768ecd85 GIT binary patch literal 1221 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRK`!1)Y{wWFn67xbIEGl9Ry}*R@3srWfsg-dZk)5YcUCR+ zXN0KeHrBq5WWgZSEut$z_KFCwKM<{Cxbpl#LzqI#jk9@kj%-ZsPq#6a`BmLGf5)y} zhuR!MMZVOYFWRZn!)IMtvg|}jUoqcOk;^8A`p;y3w-s{fh;uKQGD+)n!MQ*QXAgm; z2co*C&B~m$VilLr1^zF!&Su6oH9rKFxY$fsP-y^x})*xgenAu%^u#{JZ$ zB~kMVw{Ys4{I2S~CMBs<@xIe=(sS0&n}yBl9vw__o%ejou?~V*zEj$*%ce0q zaQUQdxq$o{CfsFP>$(kqr<>)fY_U%74ltS)5+)AZ@nzx!zWhhBDS|i4I;Tw^cFPGVZJ zY*u)Vne>#PGoN}Slv{mRW-fdzazn;!N@`~@pGQvH#Q6QcjTo1xNX&h_{r>$95t-Fj zyJpXpewNOk!5_Wk6pxbmn(Nsu0y8w9PrtrCxJUQvyZC>5_ASebuB-d0q`7qE>seET z+BKU_OxXRlEj86(`ST+ZKc5{9wc>Ms_sVwr*M_h2{%?zR>iJUJFCgj3a9EJR_EzJv z%#M4XE`PUQ;(Wbu|L*4(w)!{<%~7_uKVEhI)f=9biCMOvC(p4{d2;k9tGc>+$kRC& zEw7cHwfN>SQ`ot}+S~JT>7J^8HecTgCi8fl-7`b6{J8DzyL`z!zYjMG$S&?T$!-5G zr>ko2>%8~AvDNYZ^>NGYRlmu2d5hWTRzpzN`uTRgU+es5$h4nRV$fA(l-QfTVVeEA z^@aC}e?C-ZX}TvjakIdWZ#Oqz*`llHw(H^BtR*fPy@qU)pP%V!>etf?2>NtYeE#xn gnGyRw+x=($SUjWToS>>30|Nttr>mdKI;Vst0L3>hr2qf` literal 0 HcmV?d00001 diff --git a/src/resources/texture/tile/sand.png b/src/resources/texture/tile/sand.png new file mode 100644 index 0000000000000000000000000000000000000000..609247879aad0e430271e5b1a8cd57e583e4531f GIT binary patch literal 996 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRUgeeIhrcs0Fn;!QaSX9IZF(tklC--3^M&bKOC}qC`uqN| za^$8H@1icrPx;u(z~r6sZ|+RzBhI^8_^#D-YFvw}s#iMm^U|%CyW*>|y)35|{@?a} z+uqisUh!#LHMhR{+rBlwc&`hmzzyq-TQo$^R9p3JV9vJaQ)g?7;?rr_nzvV8i7$Ka zlxuuj<)X6hz29!SEU4@I@9AgWHb4Da^*FjyK=9a)wNn-aOz?Us*RTKgMG)7SkAh2U)Y_6`eI(a8+^{xMcMfxIdGrrw>XDIVG^Zk^asd;o7JjK~y{9CtP3?=Gayb2M?)#U2f3*j>SYC~C zRazdi-Jw&XYr@Q^|5K(-eD^xuXzp`O5gx(0Pvj2s83oPE?hHC>xW@LPOVOPBi$Vgq zy7r3CIuoLN<&%IXx8l;{pF7$0mfCG_VcEGi&VKFGefxs#=RMK=-hREx{)BHx_Masp zTiGtv#%8Ua7jGYM_qzV^nJ&T`H%{HUZ0_xO+i&r2op-E4S>}0smhIWfhZp+WQtybL zl*m`T{`}a|((hl7UHR>)cjwx!e{){G{rZdJYFOvG@0aTZH<&(9`*}>Afq{X+)78&q Iol`;+03yfO761SM literal 0 HcmV?d00001 diff --git a/src/resources/texture/tile/stone.png b/src/resources/texture/tile/stone.png new file mode 100644 index 0000000000000000000000000000000000000000..4ed4fdc6cb065a6cd5511d11ab19b640f906fc3c GIT binary patch literal 1159 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRUcKwf_IoifFirDxaSX9It$O}+-eWU~hKujjS6b_Oo86iz zp~=P(@Wu7hzkY+PACiiiFf6lgA%F z3Qlq2WSrvUqENAgTSaco);quFRo^e(eYfLL$Ez<5lY1^o$Hm7-UKf4JyymqRN27(G z#wywAR}1gRcRZe9bJ{|N&!*=0vWfojx?UQyK77sAp1*SoWdgklcW-}lYEu1u z`x8Ol9z{t?=kn9%6nh9Q-g52E-DCax{~y%nE{#oIt9sh#)1gH!9)FuU40N@vjCEc+ zaWpQBH}IUcp+ETEzyJNYw@-Xbxwm+$t2SfmhSsM=I~QzK>s5B*P{}&HnnQHX^P-&- zmT5+1CpyS*GwKQzxKqg$aM?*_wo1AhksWeUaQ@CD?ylnsV`ANptJ7s z4dw;UGM8jZ9lE8M=bWh_+$^*(Gs=uLKezktTZ<6UV-3+^mpmR%Jv7Hp-GybX=|K*K zHC!e3pFaF$WQmK5oA7v|Lf6XICpYm-S!f{j`DVSMc1URJ?!CpO!pDELY%{*Qm)XH( zhnc*~5*?M6Qk5LW_cmHSa%)XvuRr`W>Cm+oCk!SQ|Ni50V+B9^C5xj!ry7;p{Qb)8 zD6vd#a#g=~(zimVi7q9NduFFIl$oVZ;$5q=&Q@4_T4KqMe&g870rkJn>8Du-R#YEy SGhkp~VDNPHb6Mw<&;$TV(htA@ literal 0 HcmV?d00001 diff --git a/src/resources/texture/tile/stone_hard.png b/src/resources/texture/tile/stone_hard.png new file mode 100644 index 0000000000000000000000000000000000000000..6186703e1f438ec687af99b9c8036fed11b1b9e7 GIT binary patch literal 1231 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 literal 0 HcmV?d00001 diff --git a/src/resources/texture/tile/tunnel_down.png b/src/resources/texture/tile/tunnel_down.png new file mode 100644 index 0000000000000000000000000000000000000000..73581c32a6ca972e444bdbe0fc53c6c461f91eb5 GIT binary patch literal 961 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK3lonr^K;emi*ewcLk5+_gIJE|7Z+Vqa^itd;(<3NGhV^<= zvwU|byLfu6Yz(X82j(LuFM3{d_4*SZlp*-|V4?lJyVZC0GXME%6nwU?(BZ0%^3)FQ znQvAJ)VPXQ2{=hC7Bc>78R&DUxaRKR9uXMSalZ37&n|_J%GXn;-?tE#`S$rt$3(xg!tNcdPSU4y&vdnU*|^GthV*{= zD>+^CT=bl)MN>`RpNy9{m#KX^X1Qexi`YgML8g?DKqpDDq%B!XW_VnzyK~t7#Shn_ zlTWl7CnhtBu9zTW|3m)IyK86s{dRahw7Bpy>9+h~hXV18D>=V^-`FOt?(jfz$EB!$ zUa~WOs_eaXX_33beY1kXyO*BWJ}6?BsJNu+T(pG2x89C_&-{z#sg3`l6}CM4cJ0pb zm&_BEt(#`sf6E;pRA<@;}BR()NFkbLi+%S8@7g{`QVYAp{w%Fp4+Bo89C{3Z+X|2^H15|zZbsz^2)WP2m772 zT=P*AK4X@i?Nt>g{&c5^YvW@JiDZvM>38m>icEc&Vd8YH)K|jQ#P@K4h06KjFMHD@ zj*Bc);Zw@FJt=D+$hdMft+Ir0D07PZT>P97}Q(RDBEx%JF4_iM{ap55PGJuy8daqYEf zk=gvkyX4Z-)2*4ik2YP+I+|nVT=#$DvUOVD&KAmub+ZPgOUfSk*AS%Q*>p>c)$7Dw z#`|ACEO9DZx=8EPUPk>FA5)^2h=1$gZ?9(l`Ik9-b@q`T1u5@8>n?6q6rUbnF16p< z*7bg#z`ABDt9b^SroDaq_}u;XTaIlL3+I^fx41;QqWV+Yw!9S?miG4lvn_n%AG9-W z{-P=#uP2b&E75C^08xJqly)|j|j=Q5G~jDg(8AAVf; Sz=eT&zYhQZ;o6T&@6R#2g&(ke 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 literal 0 HcmV?d00001 diff --git a/src/resources/texture/tile/water/water_1.png b/src/resources/texture/tile/water/water_1.png new file mode 100644 index 0000000000000000000000000000000000000000..0154f8080f0785938c66da4c559715d242cd0c94 GIT binary patch literal 6651 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 HQ$iB}HRf1; literal 0 HcmV?d00001 diff --git a/src/resources/texture/tile/water/water_10.png b/src/resources/texture/tile/water/water_10.png new file mode 100644 index 0000000000000000000000000000000000000000..5f8b8e1745aac51959389ef15cf777e6f1db8e24 GIT binary patch literal 6646 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!uT7^^}eN`ey06$*;-(=u~X z6-p`#QWa7wGSe6sDsHU}kDjEg$@AyANHvQ}+#?H-5Z5=n-+s()Xu11t=FOQMrCVbo zSe;J!aBkoI|L5<*`iDnFjvNh9xjx4>ZsW02yv!eehhA6zxx?;j_x6M0yRG>pmNiu0 zi1)tyllR+~sD$bZU$4G%nZIF$^5->thwscZlz8uW=-h3;K-sI+{6$kg$-O%I`(EiI zF4y}Db*>*j`RCm|-i-`PCmLuQ+;41(pI_)M@NM_Qx!2QEH$Qk<@OXl$5W^?cz03>h z*V*W+;A9t?E*=;z}CCFx9O|9&xePS1b&;&)}6&H25X zvkjRquIc)8?!wG$gO5y45_M1S;JU~8c+5hojH0yT`cPNwXN~$2hTMdOyxYs z;ayj?Gv4;k4x6Y`}<$A2eCG19@O#J z@H2b&4xznUM8(cCeinMSTkFKsg?tQx-~2e*m?S>TbXw%I&p=%1fri2g#Uj3m`UVb~ z9~~yhIG=dK#eIJ7#$^{~o$fUDH?9)y@K~{iDK9HSLHiiX-zgdw0=yNEP6_f;?esR? zDpPbu^LfmtoT9ZYLf%?CrzkC*rslXvU|X$yH0DB%dS(&ZF$*CH{mG0R zv((e$G~DK$@jX|QD&m^NGE>bw??MWX$g$ZLwk12N4Zlb4*{QPssPupF;=G{m^#;!! z?v~%HJ8)~p^O*Raw_0;%{Azf$dm?Lz%G;ez4)We2AD=&s`YxjRIJqzAX+`erFJ-dP zvC3=f^`HA`D%bDrzVxXDsAPfb^a?7i*3do4?ZNzUpm zHH=0jFHFDu;;FQ)eqg%cMHb6a?WiwtwGt7JH!1vC{IOH=TT#Q-CZCmwfz#mX;-l0&4x)=+zRz2Htt^6 z@KEqAr{Sr!dAr`&N(rt#A^^|B;z*U)(T`nR? zhMGS&Bo*_MDXXGB{hYGLO*4@7!kHeCs`&p|GZ%+Qb$L%||?7gz<;hbLH|4-h!&DdwLb?UNL5~6SCePwapyDG1yye#6A zrP_tNIk0; zAFm;?>00-Beqkl?W6@9F_MHx6h+Exq{iNyZHS%t8%RgS5VQp{Pr+KcvZC+#X{lDDx zw;p@&Ob_W}U|>kaS{Y;(lq7>HgU6?IG(4XLF)#}o>m_pwD+_y17GV}vXkk`XKAgg= zoLsD6eDTJK8w@SIK@D3ZXKZ0Pt;U=hd~j3ev12jEjvZ52s=ykcxIls7o2+=ko?r9c zF);AEWQIhPMELqxCFkerC8p#jrRr7W7BGN-jeSKyVsdtBi9%9pdS;%j()-=}l@u~l zY?Z=IeGPmIoKrJ0J*tXQgRA^PlB=?lEmM^2?YL|ztSWK~a#KqZ6)JLb@`|l0Y?Z*~ zTICg6frRyy6u?SKvTcz9|8>y;bpKhp88yV>qrKIT=SLT%@R_NvxD}#)HnBkII zoLrPyP?DLSrvNfDF)6>a#8yd(OF=;aYB(rxT`Nl97J&F*|gBLoqo&SHB{$K;KZ$KtDGZMMrUoYZ<~mtU8KA zDhpEegHnt0ON)|IUCUDQN|cc;EyyV?Mz*uGI29xWc6Uxnntnwt#AakY?w-B@a6O=4 zOwY_M0P6s$Mpl`U3|CiBT9gA;laj2TnvVR8;-QM%0=NdO-T@m94k#;^ z{Nz%QDV{F2N+1VVrQ|1PrdUCkiOGfr$)=XN#>U15x+W%uNxBvmNyfSC$Su&z%uKOLGc+_YHnTL=wMb4()-^GoGECJqPE0Yk zG_o`|Gfz%MGQz(oGd(jeF$dXIAfr+;Q>;=AjEzhz(vozOlT(v*O_I~hbd$`C%yd(Y z4U*GREsavmEtA1UfdbabF~HMS$wznWcq=fw_sfp@D%BLQz<1QE_H|9>`2X13g0%uuMv_m0NyMZeoe8Qf6*qda8aw zUOHH!BDcWGxhOTUB)=#mKR?G-3FIaPBRxX{a9&Wb0i|l!iV`cI{NzMXZU8GzO|b)K z1aNk9N=(-Wb8YnTDaJ4ksA&;X}0O;op(XQbxYDrp-U zSQ!{7L84c|MjuoX!n|h#Dl2?_t&ju222_?zM z4s}TS!RaiYpmtmEkDFjGT zJesiM11LJq|m_9F33O z8l}ZoCQx`HAa;v_)}s}n8cwYN+FM>F6ulHT$@B<{kzu{w)GXf}$}XNBD;vY=_<{Mz z$%~#BUA_Lq2W1F8K3Hgf?{4*-z07~U8U>&2D|EQ3qdc{Pd*+)}0yVDURRT^Di-nB8 zS_b+YDz3SE`1tkR66ZhJeSiKUv`CG)hUufuW!~Gv(fWxjnr(=pNStgw4WtCRHU+%sKmUN){Wp&`AW{z^_4Jr_OaYSC2F_b1~e z&Sh$!j#+Nm!XmbjMUW{aB+yAxENM&Dk{KQs>+T%3fAPb$=;RZv#)-*{qAMoI*#D6K z^X}Rif4?1`4=pbIOu8+9*r7l?<4Vr&-#4~Nt2;c9+;J)DpO@^6pDKH=U0USsaNn$; z@b0B2whxNfB`PkdIu|Wr@U6Gw-!uQBd1~XoXoW4$zFoU>{3Y{*W$PxHA2_IJ5VYV; zX@7b7_V3@`&rGYgH@sTZn|tt93j+fKXMsm#F#`j)FbFd;%$g&?z`(#>;_2(k{)CN_ zOHq1%=d&~VN`acfVov&CF9jf)z?bijq z`-KclpPt9pAD=P#bl7j4AId1_}a9C zBP;lf$Ylpt31yAShi`fxb|pAmVAoMyeEg-&{kf`=_HwN$r*@mhnVw*~%81Zv!|9_z#Q|Vf!1J_R%wl9@f)mSFK#x>$J7t3|s zkHz)Dn?C&3E#B5SvtZlF$5IsyGcULW>|QL#Y@B-L5 zbFNZ&bmiOHCD&7x)gSI#`=(u4sl#FZTwQUwXs4yYlP36da7XzOJGx zo?hp2V+Bvj=B!(@rg+G4$}O4D9l6p;WLtw+v5Y?rdkBv4rF4KF&0!w~Y(7$f*Q}JY13gB<7~9SJ*P^{jojIIWO|^ z&M|BHYhlP*@au&_fcx?rr#{zAv``u;#>fXEN@*_ggf-+}_nRWd7X~p{I7Q7Jr|9z4Nr_ z-?mLY^2(pLSHJII)ws*Knd!5z#*fne+szyH^WNX{Zt7Zg`R#I{wu}n$4`mttT06)q zM4zr*Tptzxp!o8?53Q+TJr{nwWLP@CdA~y4Z3~(HAH@uBrph0>_+Dar&&M|}qRu#& zWV=xYHaP&c@$9 zGWEsO=){jQ2KoBmk z;{ryz4;?DbU!%F@S<$02o275DC<$q;ZkR14b)w5qvEEDMNr1QF(J4WGs-51ZTV;yQ zXg-hmB(gKisZ(`ojMu~<@5u^*lTtL5f|iD^W0abawQi}`+O4K#ywavOvS!@BQ2bGJ zUBy!E_@|Rr$E{Vat$MTadEBlqw{D*;-=Qd6zVEbd`QF>k?;3+_K6?7sol^F%z2&g3 z*Wi(da=%f^m5Y4Yr(W@2&)?v7N=kp(vpq!-&g-?0`dpYY*~F4LS%$M``bh?%S?cL= z8gBE>_@1jt6>&|nn5ky|ZrMo*jUN6&sgfPlhTpyS>{Qu*MEbvYabD2(dV}W_{-q6JBW)lquQVb0)H{aLo*JEAB8;y)cc{9(PvA+JAg}DYcZ%-ubiF zlpnTC4^3yi`X+pAs;b%fVwv0C_iyt^=tu2zmC-IvO^QD7MBcY~9mCHZkGVTcGL~58 zy6f-R_%nO)l;Tx&v%3S|$#PtMtFmiV6{nrN>*Y6BJA_KOtxB|H^ZCSEuP)COn{}u( z|7u!oe*A>>y?z;7eMeNPd2OzJnV2<)ec$$(metj*+c##vpChZ}CB0wTbH&ehrr#%Q z{>bvvwW0og_GYum>tEDZ8mgV%dE6&+qQ}$QK@C%U5xuGJF5sVk`ECds6~izx6uve(|+Fzi>&@!wJ1?dT|QdI3MO& zyRKdJK=)*S@GhQL*4yMNt@+h8mt2@vVtvkd?lH?sKfTkB%j7O_zs(E%sx|F;;+E(i z)k#L(FLys(_GPn|{k;dFBF|QD)H-KybmOgQHGS4rE2rP7o}y|trPrwt1FO8*43Fyt<6i$`yQ_M0@{xB>K-EGj)>e0?dwl{V*M5_p3>bFT+6_~?~)l3Q4-Zx zN)4{^3rViZPPR-@vbW>1sj#ZZEyztRNmQuF&B-gas<2f8n`@Ot;j4hQnKSxuqjGOvkG!?gBnqkl4h%vQBqQ1rLSLJUanVe zte0Puu5V~*X{m2uq;F)TTa=QfTU?n}l31aeSF8*&0%C?sYH@N=W^UL4yi0i)elN7&Mz%WPIWCy z%_~txwzMFpv>4gW(&AK*5ZK*0DQWr@xe%L?^|*Wb2Eg@zf-yZaw*agIq#9XeN-|ts zL1|GASWQZ@erir?ZfaghvA&_6A&Q48atq)ZuzCkV3m@e zoS9+;W*VoOStO-dn&_q_8=LByq?je?TBcYg>87Mun3@@zC8Z@=q#_yRnO9trn3tRi zGO8lCKrb^h#VRo^CDGE@&_p-I%rr^YB+(*CHz_sASl80fAl1|`In~_4A`!_5|Dw$F z%)G=LWLJTVO36&Ivb0DxPccig)U`-4x6m~)G)UF8urM*wO-oKmG&M3!GBPr<1RDhk zSS!Z>Pg^A;Jp+VDKu%&wT7FTkt&&e>UTFnFA|x|6HMk@Z6ljK~mWF1Q78XVZ2Id9^ zMivM~VW~yMnfZAjGYt*&3{Ai?DalrD`9-;jCALbLxryni`UQFEV2O&{0xRdD)Wnkf zqLBRj99t!jn-q-n3=P0}LBR%;s$DBetbFp56G6EFtT;8r4xACd+07|2T_4P~(Z{D4 z!=&Jh{PH}oMo5;!V-7+o+!V*6lJfkbZ2uzvq^#8B68z?1Qw%pLC^bE^xTL7klYpnt z)Y(9irAKCQNq$i!lKsJ{g%BRZTREBFpi)o(=U%JCWKbyDDitS|rKW(RKmjI|oROH9 zo|-N*TOi}$TTg@)YRAllE&bs z7w4yylqVLYI;N-QmDnn|XXX}w<5@uioXRv&-BO;BnrEw|ZD?R+V4wtvUIiO{P)P{$ zo(-t1@b$Gq4gecaSz_f0N@2mJ1qC^osYQ^W04J2-)Ix|!Hu^Z!A?XLFvwVWuk(EJo zJLeZv7GEkDFjGTJes;jgNvjPAW89P>Y`e3aUr_Ksd*{3 zO65xScFP!ev=|r|TQZ%U13aCbVZ*o#3>p(_C)#=(c91z5AH6k7i?2+e@I*lD76q+G zD?&A#S_8DVyhF z(Ei@t>N|Ux|9mwHKHFF5a8*ZnY6thsH>(6{T*a#doFoqbNBG^>$@e+ zf3o}j{6%Py8gmWPN1e;O-4)FhRhKVWz87|n2n^~t-+7#8m%>No>#5W4TZqei`+TNj zqTg9z_l{O4>C?Gqy4t*KTxCK-dO!V@oGyAUdd}6NsiyBw#!H;b)IJ@v+_Hs5Y$J;x zQ%XpnlcZSEmaHW+JTBJVIc)#philQvCt8gYlNm)a zBRv1kbyn`@7V4(rwdJl+@@r|ZF$y*7on$!UHg zQ{=;(w(1XhCX=|V(gT7X-JJ7#T|<&s#h$}nO|`L=+s<8Ozdfm=faPG!g_j4{FLvg* ze>`Q@X1#N(8=3khPA-ZT_wrLIwR!M4?uMA_bfpyEIe%Nb3T_(}YyDo7lbz&qW15fr z!Rw2Q=1d5YFn*zY!Ax!bcb}8m^S__D+GEC6YqkEF3(NV-FE0Q5eO*}8gY#dlBumEj zgQjyPHNXGQw#w-wt7FC1?xiX=J-?ULtkGV|@$THD);X+ycis0;nxT4zRnWuJKz_~A zO;?W;#Yzzr<#P zvzn1FiVb`_8q&FStoGO6yYRt9nwfvcGZqKehJ>{<=S($Zp31Z5=eI-`jq{fS1mu1< zWd#(oGB#u~b7X~WVzcBtc;u1p_l>DGOtGsz?djQUY3j^U^M+GHg|}{=xY7eT5#Jf? zOEq%$eGe#C*R=W8((&QO)W=tU?ouy0H6?^0@nqwQP1m+}uML|Q?#!C1+0|jByFtLk wDAys#;`mXMAC?a*Eid=%S4N4-%e%fIySfX2)`UHx3vIVCg!0AJ5XD*ylh literal 0 HcmV?d00001 diff --git a/src/resources/texture/tile/water/water_12.png b/src/resources/texture/tile/water/water_12.png new file mode 100644 index 0000000000000000000000000000000000000000..b6b7917e2b33e6b98e1b62179be1c37ef0ce9743 GIT binary patch literal 6665 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 QW6-#nr>mdKI;Vst0F~HC7XSbN literal 0 HcmV?d00001 diff --git a/src/resources/texture/tile/water/water_13.png b/src/resources/texture/tile/water/water_13.png new file mode 100644 index 0000000000000000000000000000000000000000..ca777b471cdae424bfe91ac4284c9e8f8f609de7 GIT binary patch literal 6658 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 Kb6Mw<&;$U~WlgyN literal 0 HcmV?d00001 diff --git a/src/resources/texture/tile/water/water_14.png b/src/resources/texture/tile/water/water_14.png new file mode 100644 index 0000000000000000000000000000000000000000..cd0d9c4f41479eab0b57afa5d6406f0a2f4e9588 GIT binary patch literal 6646 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 F0RYHEXM+F$ literal 0 HcmV?d00001 diff --git a/src/resources/texture/tile/water/water_15.png b/src/resources/texture/tile/water/water_15.png new file mode 100644 index 0000000000000000000000000000000000000000..227cb19df02fab116ef80d32faccf359295993fc GIT binary patch literal 6644 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s-|5b%VlmsP~D-;yvr)B1( zDwI?fq$;FVWTr7NRNPt{o;~S{8qc5ennf%sagQt{-mJQ#aNM6+=-$o0pH`jPVUuPc zHfh(@Pdk41-y5`L8;$}n90^Z;0 znY;ES+U@1PAy-m+&ibOYPSy#X)dvmA(|C@Bs~euLp0`M9)pxlkT2EK67Jr|8z4f%H zt#jnE{)s`@xw8daqYl95KJoc<#g9cnho0qy?WWx=dDFbpF1p z>{Wr`r?af#&(0;D_0)*j$*jD4PNd;lFp!>Miel{xVbPQ&AD?{t6@UJfA1e%)=N3szkPL5z1*l^nU*b_7K*l%%zb6 z37@Z<6{=S46cszi_*!V)Zmknj7qU%IdNcO{539lh<5riMHHmsICl)g-U^{Q=vaf+* z=@DkXA|A!f+B!Dhj~TaKi}IUO>E}F~!Nn<6G$GiTIl@rw!*UnK_9!mRWmAf@JY!a^ zd^#c7&+_@C!w&yy zo7ug-;HY-&Pp#=OU$bPtyxh2aUiHgM+4;@x5)(Qnx=R|p$}rz4?NxZ(`tDD??RUQB z@$dN7qHg!{q<`g;mHyT%G*{X8{cn)c%-S2Bb z%W|6*KV3GTcmCX2QG&;}Jze_t$H7}$bSwf)qk}Bes<*9SjOshasPuC2PFJp1dMmcy zU3=lp+f+U-mR+Z(K)^0hDPUccp*_HE{;1CMF)KXnfizI&-> zlEy5L!|T?&<}E#2!?7iK=339wE}C7>f3*CIc(Ey#Ez^~=^Nw5dbK@S)g$KVJb7q^N z5qe`LznfIVt77(ecQJAiOE^J>eZhLCKb=CFa7ah&#E6greEdyf2L*oqLl}q{MTLbtNBqthpO_5 z+VxHnf8%%bzrOf2u}-s9vfz!(!P%>J|5&n>m631R`7rj6UnEZ5@4l?L_Ct|fo7WyM z`9CJFWTNkVa5??=%?iE+@wdh1ojRJ**OeuoefHcpDIJUMGV$aYd&*Zy9o{i3G-Xld zI{#Sj<+YhNzZb@vm%mifJ<1Xq#>(>KaMXIQhU@2yJL^1ZW3O#n?H#!_tj96V@1Uk8 zW1U&AZS9FFRj+)ew`p2?*O{vx*e@+Tqi)ZPJ+dy>-`pzXt}%+=a`d76tf`Y*71Pz~ zbJL^lSBBeHJuXjT`JeP*?c^%)@(-uh3JyS=6D*8?{O z28J}OH9=-UNiwJ=uLsS+C#C9DBQBlHCStb$zJphgs>q}eKEl#~=$ z>Fbx5m+O@q>*W`v>l<2HTIw4Z=^Gj87Nw-=7FXt#Bv$C=6)S^`fSBQuTAW;zSx}Oh zpQivaGchT@w8U0PiAzC20ctoXbX_Y-;1+=RVB?ERQuI9wN|H?~atmB5O7x8k3@mgF zjC74G^^x^g<>;YgzzBV%E<%=m4X5|_gW<;gF?|(sW`DLH3b|6 z3NWeUjKsY3)D&AKXdZ!yXJSdN#>vS>#)gLGx&{WOiMl3+Nh!J(iAkoqMiwb4iK%9( z<|ZkSGzK@lI6tkVJh3R%F+DY}#8$~YGq(U7&k7pgRHljQmhz0$JXTqK16Ns32P7uAA` z3(+-B%}cRWDp#_%o4)d3I|Bn_OQy4PfTy!FY%G_7L1SX=L|c!;4l+mMqqjzB@s$Y_ zo(PEDqM-F?MW}{TYk>BaR|!Qg#Z59jf?{M?uQxTzcZafzr^m|1usVKVK63J+=S5eq zKk-2sf{zat+TXideP=K8pRY#2XZs2ruIeaH?ckpIW|csVt9X@wlf+^nhdMa_rmTGfk7STJCF11QuwHRJ$3qh z3vrompU-qm^gAo;-qGqLeLD9{SDTlOt4wG}@29_#(?!ok&$(JO)%5+zc!_hF+NWcd zTeh%>ZDbK-N(l*ck`znYlC@-p$HlrkhwWeda4kCdM5}RPGNb5<2{QIS51)w zB6f+2ORCOAOBj6X?fCc1zi6J?_%B*v%d>CS?i_!~JYm_oN#+L*DjEbWcvIS6UcUYN zxA!yC>g^4$7WL*Hyw$?Mz`$AH5n0T@z%2~Ij105pNH8!ku$OrHy0SlEq`*9BO99r^vwgd!iQK-Kuzrg6o5t@Z+$_>JCYl(l?6#Ia_22p7 z!hlbI=hqtxA1hiTQWgAecJUfV?Wti?ds3{nNV#ZbAG{s<^J{^La0n~E#O0l~Vym3i z_llm&m49=3CEK#rS{BYfKWsEsy(rV^d$>a7ew_65b#Ib`OjjO#vGr5cx)>{)z6ZB> z`Il!s-6kKgM8QGu>G9`FIQGQ**W3|5t57tdWZS|HmfI0~=1*O4VbS8Sgf%Jg&3T7b z9z0(Ae5t0sx`K3Zo(})My`f5p(uYcphc9rQe|Y_L;q}+OmKCfLRg?^Nc<|Y<(Es0W zOM_5>hx>Hftd}wEmAqY$_uEmIRZzh5&g3}OiRWfaUeqq5>#rmbAxZ97K;1cMo1( zVNwz`PTX0%>d^127bcf>*_?iTmLY((|K#=4+|R>q^v&&XY3RT0bo7JAw!0T=t&Yws zH*T(#6A_&i`fcV1_0OW7hvZM5E4k6O`0Rsys`B4Y?hKF0+!M!j+{dMC+ufh9Pm3G1 zzKswO{a3g8%d!=EIz}(oUYf0-@;q)w{=uc5O$c#Vc1aL4VCL!S=d#Wzp$Pz0 CnN=tN literal 0 HcmV?d00001 diff --git a/src/resources/texture/tile/water/water_2.png b/src/resources/texture/tile/water/water_2.png new file mode 100644 index 0000000000000000000000000000000000000000..45b9975bfa5358e11e959fc1ededcb0b583c5710 GIT binary patch literal 6645 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 G&;$VWgId-A literal 0 HcmV?d00001 diff --git a/src/resources/texture/tile/water/water_3.png b/src/resources/texture/tile/water/water_3.png new file mode 100644 index 0000000000000000000000000000000000000000..94c25ad85efa9806e3ab52cc6ccfc985034ae82d GIT binary patch literal 6650 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 literal 0 HcmV?d00001 diff --git a/src/resources/texture/tile/water/water_6.png b/src/resources/texture/tile/water/water_6.png new file mode 100644 index 0000000000000000000000000000000000000000..ba6af565cbd8b136c6f3262c4d5ab49d012f18f0 GIT binary patch literal 6658 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 LtDnm{r-UW|%{@@0 literal 0 HcmV?d00001 diff --git a/src/resources/texture/tile/water/water_9.png b/src/resources/texture/tile/water/water_9.png new file mode 100644 index 0000000000000000000000000000000000000000..89ba2ade41e2a6787b9c2545984b0e551f94a8cf GIT binary patch literal 6657 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 My85}Sb4q9e0L{8Vpa1{> literal 0 HcmV?d00001