From df8714aa1d48f2dde3b69a8da4d786447bc76d4b Mon Sep 17 00:00:00 2001 From: Tony Bark Date: Fri, 7 Feb 2025 14:39:37 -0500 Subject: [PATCH] Initial commit --- .gitignore | 22 +++ CC0.txt | 121 +++++++++++++ COPYING.txt | 14 ++ README.md | 7 + UNLICENSE.txt | 24 +++ game.conf | 14 ++ menu/background.png | Bin 0 -> 594 bytes menu/header.png | Bin 0 -> 3501 bytes menu/icon.png | Bin 0 -> 482 bytes mods/wisgame/init.lua | 11 ++ mods/wisgame/mod.conf | 3 + mods/wisgame/open/disabled/open_air.lua | 52 ++++++ .../wisgame/open/disabled/open_spread_abm.lua | 29 ++++ mods/wisgame/open/open_conf.lua | 56 ++++++ mods/wisgame/open/open_hand.lua | 54 ++++++ mods/wisgame/open/open_heart.lua | 81 +++++++++ mods/wisgame/open/open_net.lua | 22 +++ mods/wisgame/open/open_registration.lua | 13 ++ .../open/open_registration/open_field.ini | 24 +++ .../open/open_registration/open_hand.ini | 19 ++ .../open/open_registration/open_terrain.ini | 123 +++++++++++++ mods/wisgame/open/open_skin.lua | 26 +++ mods/wisgame/open/open_skys.lua | 31 ++++ mods/wisgame/open/open_trees.lua | 89 ++++++++++ mods/wisgame/schema/smoltree.mts | Bin 0 -> 90 bytes .../Christian Elbrianno/mass_rename.bat | 1 + .../Christian Elbrianno/open_acorn.png | Bin 0 -> 427 bytes .../Christian Elbrianno/open_acorn_sprout.png | Bin 0 -> 419 bytes .../open_bluestone_overlay.png | Bin 0 -> 527 bytes .../Christian Elbrianno/open_cobble.png | Bin 0 -> 585 bytes .../open_crystal_overlay.png | Bin 0 -> 379 bytes .../Christian Elbrianno/open_dirt.png | Bin 0 -> 717 bytes .../Christian Elbrianno/open_feather.png | Bin 0 -> 382 bytes .../Christian Elbrianno/open_fire.gif | Bin 0 -> 697 bytes .../Christian Elbrianno/open_gold_overlay.png | Bin 0 -> 343 bytes .../Christian Elbrianno/open_grass.png | Bin 0 -> 476 bytes .../open_grass_mask_big.png | Bin 0 -> 129 bytes .../open_grass_mask_sml.png | Bin 0 -> 131 bytes .../Christian Elbrianno/open_gravel.png | Bin 0 -> 240 bytes .../Christian Elbrianno/open_iron_overlay.png | Bin 0 -> 531 bytes .../Christian Elbrianno/open_magma.png | Bin 0 -> 541 bytes .../textures/Christian Elbrianno/open_mud.png | Bin 0 -> 738 bytes .../Christian Elbrianno/open_oak_bark.png | Bin 0 -> 358 bytes .../Christian Elbrianno/open_oak_leaf.png | Bin 0 -> 421 bytes .../Christian Elbrianno/open_oak_log.png | Bin 0 -> 344 bytes .../Christian Elbrianno/open_oak_plank.png | Bin 0 -> 375 bytes .../Christian Elbrianno/open_obsidian.png | Bin 0 -> 512 bytes .../Christian Elbrianno/open_orb_glass.png | Bin 0 -> 352 bytes .../Christian Elbrianno/open_rapier.png | Bin 0 -> 198 bytes .../open_redstone_overlay.png | Bin 0 -> 409 bytes .../Christian Elbrianno/open_sand.png | Bin 0 -> 528 bytes .../Christian Elbrianno/open_sandstone.png | Bin 0 -> 507 bytes .../Christian Elbrianno/open_stick.png | Bin 0 -> 175 bytes .../Christian Elbrianno/open_stone.png | Bin 0 -> 351 bytes .../Christian Elbrianno/open_water_source.png | Bin 0 -> 500 bytes .../sauce_noexport/apple.aseprite | Bin 0 -> 477 bytes .../bags_bundle_closed.aseprite | Bin 0 -> 1028 bytes .../sauce_noexport/bags_bundle_open.aseprite | Bin 0 -> 805 bytes .../sauce_noexport/bags_camping.aseprite | Bin 0 -> 756 bytes .../sauce_noexport/bags_messenger.aseprite | Bin 0 -> 676 bytes .../sauce_noexport/book.aseprite | Bin 0 -> 741 bytes .../sauce_noexport/bookshelf.aseprite | Bin 0 -> 1247 bytes .../sauce_noexport/clay.aseprite | Bin 0 -> 511 bytes .../sauce_noexport/cobblestone.aseprite | Bin 0 -> 495 bytes .../sauce_noexport/dirt.aseprite | Bin 0 -> 632 bytes .../sauce_noexport/eggcorn.aseprite | Bin 0 -> 529 bytes .../sauce_noexport/eggcorn_sprout.aseprite | Bin 0 -> 1043 bytes .../sauce_noexport/feather.aseprite | Bin 0 -> 484 bytes .../sauce_noexport/fire.aseprite | Bin 0 -> 1389 bytes .../sauce_noexport/grass.aseprite | Bin 0 -> 509 bytes .../sauce_noexport/gravel.aseprite | Bin 0 -> 398 bytes .../sauce_noexport/leaf_oak.aseprite | Bin 0 -> 450 bytes .../sauce_noexport/magma.aseprite | Bin 0 -> 529 bytes .../sauce_noexport/mud.aseprite | Bin 0 -> 2151 bytes .../sauce_noexport/obsidian.aseprite | Bin 0 -> 508 bytes .../sauce_noexport/orb_glass.aseprite | Bin 0 -> 855 bytes .../sauce_noexport/rapier.aseprite | Bin 0 -> 416 bytes .../sauce_noexport/sand.aseprite | Bin 0 -> 542 bytes .../sauce_noexport/sandstone.aseprite | Bin 0 -> 607 bytes .../sauce_noexport/stick.aseprite | Bin 0 -> 389 bytes .../sauce_noexport/stone.aseprite | Bin 0 -> 3049 bytes .../sauce_noexport/wood_log_oak.aseprite | Bin 0 -> 483 bytes .../sauce_noexport/wood_oak_bark.aseprite | Bin 0 -> 496 bytes .../sauce_noexport/wood_plank_oak.aseprite | Bin 0 -> 487 bytes .../unused_noexport/apple.png | Bin 0 -> 293 bytes .../unused_noexport/bags_bundle_closed.png | Bin 0 -> 448 bytes .../unused_noexport/bags_bundle_open.png | Bin 0 -> 425 bytes .../unused_noexport/bags_camping_closed.png | Bin 0 -> 436 bytes .../unused_noexport/bags_camping_open.png | Bin 0 -> 384 bytes .../unused_noexport/bags_messenger_closed.png | Bin 0 -> 407 bytes .../unused_noexport/bags_messenger_open.png | Bin 0 -> 336 bytes .../unused_noexport/book.png | Bin 0 -> 280 bytes .../unused_noexport/book_and_quill.png | Bin 0 -> 412 bytes .../unused_noexport/book_simple.png | Bin 0 -> 153 bytes .../unused_noexport/bookshelf.png | Bin 0 -> 687 bytes .../unused_noexport/coal_overlay.png | Bin 0 -> 291 bytes .../unused_noexport/fire-horizontal.png | Bin 0 -> 913 bytes .../unused_noexport/fire-vertical.png | Bin 0 -> 1068 bytes .../wieldhand.png | Bin 0 -> 3341 bytes mods/wisgame/textures/RedAndFoxy/heart.png | Bin 0 -> 569 bytes .../RedAndFoxy/useless/BloodBlock+button.png | Bin 0 -> 852 bytes .../RedAndFoxy/useless/Bloodblockbase.png | Bin 0 -> 1283 bytes .../RedAndFoxy/useless/Bloodon stone.png | Bin 0 -> 768 bytes .../RedAndFoxy/useless/Dirt_block.png | Bin 0 -> 410 bytes .../RedAndFoxy/useless/Furnace_side.png | Bin 0 -> 582 bytes .../RedAndFoxy/useless/Grass_block_side.png | Bin 0 -> 534 bytes .../RedAndFoxy/useless/Grass_side.png | Bin 0 -> 298 bytes .../textures/RedAndFoxy/useless/Grass_top.png | Bin 0 -> 621 bytes .../RedAndFoxy/useless/Steel_door_bottom.png | Bin 0 -> 4453 bytes .../RedAndFoxy/useless/Steel_door_top.png | Bin 0 -> 4471 bytes .../RedAndFoxy/useless/blue_skeleton.png | Bin 0 -> 10327 bytes .../RedAndFoxy/useless/clipboard-nopaper.png | Bin 0 -> 564 bytes .../RedAndFoxy/useless/clipboard_paper.png | Bin 0 -> 476 bytes .../textures/RedAndFoxy/useless/fan_blue.png | Bin 0 -> 779 bytes .../RedAndFoxy/useless/furnace_front.png | Bin 0 -> 709 bytes .../textures/RedAndFoxy/useless/grate.png | Bin 0 -> 319 bytes .../textures/RedAndFoxy/useless/moss.png | Bin 0 -> 550 bytes .../RedAndFoxy/useless/plank-roofing.png | Bin 0 -> 822 bytes .../RedAndFoxy/useless/plate_steel.png | Bin 0 -> 554 bytes .../textures/RedAndFoxy/useless/pot.png | Bin 0 -> 673 bytes .../textures/RedAndFoxy/useless/remote.png | Bin 0 -> 348 bytes .../textures/RedAndFoxy/useless/spud.png | Bin 0 -> 481 bytes .../textures/RedAndFoxy/wis_beading.png | Bin 0 -> 421 bytes .../textures/RedAndFoxy/wis_branch_staff.png | Bin 0 -> 200 bytes mods/wisgame/textures/RedAndFoxy/wis_fire.png | Bin 0 -> 609 bytes .../textures/RedAndFoxy/wis_orb_full.png | Bin 0 -> 399 bytes .../wisgame/textures/RedAndFoxy/wis_stone.png | Bin 0 -> 283 bytes .../wisgame/textures/RedAndFoxy/wis_sword.png | Bin 0 -> 161 bytes .../textures/RedundantC/open_clump_mask.png | Bin 0 -> 188 bytes .../wisgame/textures/RedundantC/wis_black.png | Bin 0 -> 145 bytes mods/wisgame/textures/RedundantC/wis_blue.png | Bin 0 -> 686 bytes .../textures/RedundantC/wis_clump_mask.png | Bin 0 -> 188 bytes mods/wisgame/textures/RedundantC/wis_gray.png | Bin 0 -> 114 bytes .../wisgame/textures/RedundantC/wis_green.png | Bin 0 -> 730 bytes .../textures/RedundantC/wis_kinderblut.png | Bin 0 -> 179 bytes .../textures/RedundantC/wis_palette.png | Bin 0 -> 111 bytes mods/wisgame/textures/RedundantC/wis_red.png | Bin 0 -> 855 bytes mods/wisgame/textures/RedundantC/wis_sky.png | Bin 0 -> 114 bytes .../wisgame/textures/RedundantC/wis_white.png | Bin 0 -> 112 bytes mods/wisgame/textures/RedundantC/wiz_blue.png | Bin 0 -> 686 bytes mods/wisgame/textures/wwwq/player.png | Bin 0 -> 1275 bytes mods/wisgame/textures/wwwq/player_back.png | Bin 0 -> 1115 bytes mods/wislib/init.lua | 111 ++++++++++++ mods/wislib/lua5_1/bitwise.lua | 126 ++++++++++++++ mods/wislib/lua5_1/events.lua | 0 mods/wislib/lua5_1/io.lua | 125 +++++++++++++ mods/wislib/lua5_1/math.lua | 0 mods/wislib/lua5_1/number.lua | 0 mods/wislib/lua5_1/table.lua | 30 ++++ mods/wislib/lua5_1/test.ini | 9 + mods/wislib/minetest/anticheat.lua | 0 mods/wislib/minetest/booking.lua | 0 mods/wislib/minetest/chunks.lua | 0 mods/wislib/minetest/commands.lua | 120 +++++++++++++ mods/wislib/minetest/content.lua | 0 mods/wislib/minetest/detection.lua | 0 mods/wislib/minetest/dialogue.lua | 0 mods/wislib/minetest/entity.lua | 0 mods/wislib/minetest/guilds.lua | 0 mods/wislib/minetest/heath-bars.lua | 0 mods/wislib/minetest/hotbar.lua | 0 mods/wislib/minetest/hud.lua | 0 mods/wislib/minetest/initialize.lua | 24 +++ mods/wislib/minetest/minetest.lua | 0 mods/wislib/minetest/protection.lua | 0 mods/wislib/minetest/registrate.lua | 164 ++++++++++++++++++ mods/wislib/minetest/trees.lua | 0 mods/wislib/mod.conf | 2 + mods/wislib/namespace/namespace.lua | 71 ++++++++ mods/wislib/string.lua | 59 +++++++ mods/wislib/table.lua | 9 + 171 files changed, 1686 insertions(+) create mode 100644 .gitignore create mode 100644 CC0.txt create mode 100644 COPYING.txt create mode 100644 README.md create mode 100644 UNLICENSE.txt create mode 100644 game.conf create mode 100644 menu/background.png create mode 100644 menu/header.png create mode 100644 menu/icon.png create mode 100644 mods/wisgame/init.lua create mode 100644 mods/wisgame/mod.conf create mode 100644 mods/wisgame/open/disabled/open_air.lua create mode 100644 mods/wisgame/open/disabled/open_spread_abm.lua create mode 100644 mods/wisgame/open/open_conf.lua create mode 100644 mods/wisgame/open/open_hand.lua create mode 100644 mods/wisgame/open/open_heart.lua create mode 100644 mods/wisgame/open/open_net.lua create mode 100644 mods/wisgame/open/open_registration.lua create mode 100644 mods/wisgame/open/open_registration/open_field.ini create mode 100644 mods/wisgame/open/open_registration/open_hand.ini create mode 100644 mods/wisgame/open/open_registration/open_terrain.ini create mode 100644 mods/wisgame/open/open_skin.lua create mode 100644 mods/wisgame/open/open_skys.lua create mode 100644 mods/wisgame/open/open_trees.lua create mode 100644 mods/wisgame/schema/smoltree.mts create mode 100644 mods/wisgame/textures/Christian Elbrianno/mass_rename.bat create mode 100644 mods/wisgame/textures/Christian Elbrianno/open_acorn.png create mode 100644 mods/wisgame/textures/Christian Elbrianno/open_acorn_sprout.png create mode 100644 mods/wisgame/textures/Christian Elbrianno/open_bluestone_overlay.png create mode 100644 mods/wisgame/textures/Christian Elbrianno/open_cobble.png create mode 100644 mods/wisgame/textures/Christian Elbrianno/open_crystal_overlay.png create mode 100644 mods/wisgame/textures/Christian Elbrianno/open_dirt.png create mode 100644 mods/wisgame/textures/Christian Elbrianno/open_feather.png create mode 100644 mods/wisgame/textures/Christian Elbrianno/open_fire.gif create mode 100644 mods/wisgame/textures/Christian Elbrianno/open_gold_overlay.png create mode 100644 mods/wisgame/textures/Christian Elbrianno/open_grass.png create mode 100644 mods/wisgame/textures/Christian Elbrianno/open_grass_mask_big.png create mode 100644 mods/wisgame/textures/Christian Elbrianno/open_grass_mask_sml.png create mode 100644 mods/wisgame/textures/Christian Elbrianno/open_gravel.png create mode 100644 mods/wisgame/textures/Christian Elbrianno/open_iron_overlay.png create mode 100644 mods/wisgame/textures/Christian Elbrianno/open_magma.png create mode 100644 mods/wisgame/textures/Christian Elbrianno/open_mud.png create mode 100644 mods/wisgame/textures/Christian Elbrianno/open_oak_bark.png create mode 100644 mods/wisgame/textures/Christian Elbrianno/open_oak_leaf.png create mode 100644 mods/wisgame/textures/Christian Elbrianno/open_oak_log.png create mode 100644 mods/wisgame/textures/Christian Elbrianno/open_oak_plank.png create mode 100644 mods/wisgame/textures/Christian Elbrianno/open_obsidian.png create mode 100644 mods/wisgame/textures/Christian Elbrianno/open_orb_glass.png create mode 100644 mods/wisgame/textures/Christian Elbrianno/open_rapier.png create mode 100644 mods/wisgame/textures/Christian Elbrianno/open_redstone_overlay.png create mode 100644 mods/wisgame/textures/Christian Elbrianno/open_sand.png create mode 100644 mods/wisgame/textures/Christian Elbrianno/open_sandstone.png create mode 100644 mods/wisgame/textures/Christian Elbrianno/open_stick.png create mode 100644 mods/wisgame/textures/Christian Elbrianno/open_stone.png create mode 100644 mods/wisgame/textures/Christian Elbrianno/open_water_source.png create mode 100644 mods/wisgame/textures/Christian Elbrianno/sauce_noexport/apple.aseprite create mode 100644 mods/wisgame/textures/Christian Elbrianno/sauce_noexport/bags_bundle_closed.aseprite create mode 100644 mods/wisgame/textures/Christian Elbrianno/sauce_noexport/bags_bundle_open.aseprite create mode 100644 mods/wisgame/textures/Christian Elbrianno/sauce_noexport/bags_camping.aseprite create mode 100644 mods/wisgame/textures/Christian Elbrianno/sauce_noexport/bags_messenger.aseprite create mode 100644 mods/wisgame/textures/Christian Elbrianno/sauce_noexport/book.aseprite create mode 100644 mods/wisgame/textures/Christian Elbrianno/sauce_noexport/bookshelf.aseprite create mode 100644 mods/wisgame/textures/Christian Elbrianno/sauce_noexport/clay.aseprite create mode 100644 mods/wisgame/textures/Christian Elbrianno/sauce_noexport/cobblestone.aseprite create mode 100644 mods/wisgame/textures/Christian Elbrianno/sauce_noexport/dirt.aseprite create mode 100644 mods/wisgame/textures/Christian Elbrianno/sauce_noexport/eggcorn.aseprite create mode 100644 mods/wisgame/textures/Christian Elbrianno/sauce_noexport/eggcorn_sprout.aseprite create mode 100644 mods/wisgame/textures/Christian Elbrianno/sauce_noexport/feather.aseprite create mode 100644 mods/wisgame/textures/Christian Elbrianno/sauce_noexport/fire.aseprite create mode 100644 mods/wisgame/textures/Christian Elbrianno/sauce_noexport/grass.aseprite create mode 100644 mods/wisgame/textures/Christian Elbrianno/sauce_noexport/gravel.aseprite create mode 100644 mods/wisgame/textures/Christian Elbrianno/sauce_noexport/leaf_oak.aseprite create mode 100644 mods/wisgame/textures/Christian Elbrianno/sauce_noexport/magma.aseprite create mode 100644 mods/wisgame/textures/Christian Elbrianno/sauce_noexport/mud.aseprite create mode 100644 mods/wisgame/textures/Christian Elbrianno/sauce_noexport/obsidian.aseprite create mode 100644 mods/wisgame/textures/Christian Elbrianno/sauce_noexport/orb_glass.aseprite create mode 100644 mods/wisgame/textures/Christian Elbrianno/sauce_noexport/rapier.aseprite create mode 100644 mods/wisgame/textures/Christian Elbrianno/sauce_noexport/sand.aseprite create mode 100644 mods/wisgame/textures/Christian Elbrianno/sauce_noexport/sandstone.aseprite create mode 100644 mods/wisgame/textures/Christian Elbrianno/sauce_noexport/stick.aseprite create mode 100644 mods/wisgame/textures/Christian Elbrianno/sauce_noexport/stone.aseprite create mode 100644 mods/wisgame/textures/Christian Elbrianno/sauce_noexport/wood_log_oak.aseprite create mode 100644 mods/wisgame/textures/Christian Elbrianno/sauce_noexport/wood_oak_bark.aseprite create mode 100644 mods/wisgame/textures/Christian Elbrianno/sauce_noexport/wood_plank_oak.aseprite create mode 100644 mods/wisgame/textures/Christian Elbrianno/unused_noexport/apple.png create mode 100644 mods/wisgame/textures/Christian Elbrianno/unused_noexport/bags_bundle_closed.png create mode 100644 mods/wisgame/textures/Christian Elbrianno/unused_noexport/bags_bundle_open.png create mode 100644 mods/wisgame/textures/Christian Elbrianno/unused_noexport/bags_camping_closed.png create mode 100644 mods/wisgame/textures/Christian Elbrianno/unused_noexport/bags_camping_open.png create mode 100644 mods/wisgame/textures/Christian Elbrianno/unused_noexport/bags_messenger_closed.png create mode 100644 mods/wisgame/textures/Christian Elbrianno/unused_noexport/bags_messenger_open.png create mode 100644 mods/wisgame/textures/Christian Elbrianno/unused_noexport/book.png create mode 100644 mods/wisgame/textures/Christian Elbrianno/unused_noexport/book_and_quill.png create mode 100644 mods/wisgame/textures/Christian Elbrianno/unused_noexport/book_simple.png create mode 100644 mods/wisgame/textures/Christian Elbrianno/unused_noexport/bookshelf.png create mode 100644 mods/wisgame/textures/Christian Elbrianno/unused_noexport/coal_overlay.png create mode 100644 mods/wisgame/textures/Christian Elbrianno/unused_noexport/fire-horizontal.png create mode 100644 mods/wisgame/textures/Christian Elbrianno/unused_noexport/fire-vertical.png create mode 100644 mods/wisgame/textures/Hand Painted Pack by Drummyfish (downscale)/wieldhand.png create mode 100644 mods/wisgame/textures/RedAndFoxy/heart.png create mode 100644 mods/wisgame/textures/RedAndFoxy/useless/BloodBlock+button.png create mode 100644 mods/wisgame/textures/RedAndFoxy/useless/Bloodblockbase.png create mode 100644 mods/wisgame/textures/RedAndFoxy/useless/Bloodon stone.png create mode 100644 mods/wisgame/textures/RedAndFoxy/useless/Dirt_block.png create mode 100644 mods/wisgame/textures/RedAndFoxy/useless/Furnace_side.png create mode 100644 mods/wisgame/textures/RedAndFoxy/useless/Grass_block_side.png create mode 100644 mods/wisgame/textures/RedAndFoxy/useless/Grass_side.png create mode 100644 mods/wisgame/textures/RedAndFoxy/useless/Grass_top.png create mode 100644 mods/wisgame/textures/RedAndFoxy/useless/Steel_door_bottom.png create mode 100644 mods/wisgame/textures/RedAndFoxy/useless/Steel_door_top.png create mode 100644 mods/wisgame/textures/RedAndFoxy/useless/blue_skeleton.png create mode 100644 mods/wisgame/textures/RedAndFoxy/useless/clipboard-nopaper.png create mode 100644 mods/wisgame/textures/RedAndFoxy/useless/clipboard_paper.png create mode 100644 mods/wisgame/textures/RedAndFoxy/useless/fan_blue.png create mode 100644 mods/wisgame/textures/RedAndFoxy/useless/furnace_front.png create mode 100644 mods/wisgame/textures/RedAndFoxy/useless/grate.png create mode 100644 mods/wisgame/textures/RedAndFoxy/useless/moss.png create mode 100644 mods/wisgame/textures/RedAndFoxy/useless/plank-roofing.png create mode 100644 mods/wisgame/textures/RedAndFoxy/useless/plate_steel.png create mode 100644 mods/wisgame/textures/RedAndFoxy/useless/pot.png create mode 100644 mods/wisgame/textures/RedAndFoxy/useless/remote.png create mode 100644 mods/wisgame/textures/RedAndFoxy/useless/spud.png create mode 100644 mods/wisgame/textures/RedAndFoxy/wis_beading.png create mode 100644 mods/wisgame/textures/RedAndFoxy/wis_branch_staff.png create mode 100644 mods/wisgame/textures/RedAndFoxy/wis_fire.png create mode 100644 mods/wisgame/textures/RedAndFoxy/wis_orb_full.png create mode 100644 mods/wisgame/textures/RedAndFoxy/wis_stone.png create mode 100644 mods/wisgame/textures/RedAndFoxy/wis_sword.png create mode 100644 mods/wisgame/textures/RedundantC/open_clump_mask.png create mode 100644 mods/wisgame/textures/RedundantC/wis_black.png create mode 100644 mods/wisgame/textures/RedundantC/wis_blue.png create mode 100644 mods/wisgame/textures/RedundantC/wis_clump_mask.png create mode 100644 mods/wisgame/textures/RedundantC/wis_gray.png create mode 100644 mods/wisgame/textures/RedundantC/wis_green.png create mode 100644 mods/wisgame/textures/RedundantC/wis_kinderblut.png create mode 100644 mods/wisgame/textures/RedundantC/wis_palette.png create mode 100644 mods/wisgame/textures/RedundantC/wis_red.png create mode 100644 mods/wisgame/textures/RedundantC/wis_sky.png create mode 100644 mods/wisgame/textures/RedundantC/wis_white.png create mode 100644 mods/wisgame/textures/RedundantC/wiz_blue.png create mode 100644 mods/wisgame/textures/wwwq/player.png create mode 100644 mods/wisgame/textures/wwwq/player_back.png create mode 100644 mods/wislib/init.lua create mode 100644 mods/wislib/lua5_1/bitwise.lua create mode 100644 mods/wislib/lua5_1/events.lua create mode 100644 mods/wislib/lua5_1/io.lua create mode 100644 mods/wislib/lua5_1/math.lua create mode 100644 mods/wislib/lua5_1/number.lua create mode 100644 mods/wislib/lua5_1/table.lua create mode 100644 mods/wislib/lua5_1/test.ini create mode 100644 mods/wislib/minetest/anticheat.lua create mode 100644 mods/wislib/minetest/booking.lua create mode 100644 mods/wislib/minetest/chunks.lua create mode 100644 mods/wislib/minetest/commands.lua create mode 100644 mods/wislib/minetest/content.lua create mode 100644 mods/wislib/minetest/detection.lua create mode 100644 mods/wislib/minetest/dialogue.lua create mode 100644 mods/wislib/minetest/entity.lua create mode 100644 mods/wislib/minetest/guilds.lua create mode 100644 mods/wislib/minetest/heath-bars.lua create mode 100644 mods/wislib/minetest/hotbar.lua create mode 100644 mods/wislib/minetest/hud.lua create mode 100644 mods/wislib/minetest/initialize.lua create mode 100644 mods/wislib/minetest/minetest.lua create mode 100644 mods/wislib/minetest/protection.lua create mode 100644 mods/wislib/minetest/registrate.lua create mode 100644 mods/wislib/minetest/trees.lua create mode 100644 mods/wislib/mod.conf create mode 100644 mods/wislib/namespace/namespace.lua create mode 100644 mods/wislib/string.lua create mode 100644 mods/wislib/table.lua diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ef02689 --- /dev/null +++ b/.gitignore @@ -0,0 +1,22 @@ +## Files related to minetest development cycle +/*.patch +# GNU Patch reject file +*.rej + +## Editors and Development environments +*~ +*.swp +*.bak* +*.orig +# Vim +*.vim +# Kate +.*.kate-swp +.swp.* +# Eclipse (LDT) +.project +.settings/ +.buildpath +.metadata +# Idea IDE +.idea/* diff --git a/CC0.txt b/CC0.txt new file mode 100644 index 0000000..0e259d4 --- /dev/null +++ b/CC0.txt @@ -0,0 +1,121 @@ +Creative Commons Legal Code + +CC0 1.0 Universal + + CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE + LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN + ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS + INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES + REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS + PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM + THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED + HEREUNDER. + +Statement of Purpose + +The laws of most jurisdictions throughout the world automatically confer +exclusive Copyright and Related Rights (defined below) upon the creator +and subsequent owner(s) (each and all, an "owner") of an original work of +authorship and/or a database (each, a "Work"). + +Certain owners wish to permanently relinquish those rights to a Work for +the purpose of contributing to a commons of creative, cultural and +scientific works ("Commons") that the public can reliably and without fear +of later claims of infringement build upon, modify, incorporate in other +works, reuse and redistribute as freely as possible in any form whatsoever +and for any purposes, including without limitation commercial purposes. +These owners may contribute to the Commons to promote the ideal of a free +culture and the further production of creative, cultural and scientific +works, or to gain reputation or greater distribution for their Work in +part through the use and efforts of others. + +For these and/or other purposes and motivations, and without any +expectation of additional consideration or compensation, the person +associating CC0 with a Work (the "Affirmer"), to the extent that he or she +is an owner of Copyright and Related Rights in the Work, voluntarily +elects to apply CC0 to the Work and publicly distribute the Work under its +terms, with knowledge of his or her Copyright and Related Rights in the +Work and the meaning and intended legal effect of CC0 on those rights. + +1. Copyright and Related Rights. A Work made available under CC0 may be +protected by copyright and related or neighboring rights ("Copyright and +Related Rights"). Copyright and Related Rights include, but are not +limited to, the following: + + i. the right to reproduce, adapt, distribute, perform, display, + communicate, and translate a Work; + ii. moral rights retained by the original author(s) and/or performer(s); +iii. publicity and privacy rights pertaining to a person's image or + likeness depicted in a Work; + iv. rights protecting against unfair competition in regards to a Work, + subject to the limitations in paragraph 4(a), below; + v. rights protecting the extraction, dissemination, use and reuse of data + in a Work; + vi. database rights (such as those arising under Directive 96/9/EC of the + European Parliament and of the Council of 11 March 1996 on the legal + protection of databases, and under any national implementation + thereof, including any amended or successor version of such + directive); and +vii. other similar, equivalent or corresponding rights throughout the + world based on applicable law or treaty, and any national + implementations thereof. + +2. Waiver. To the greatest extent permitted by, but not in contravention +of, applicable law, Affirmer hereby overtly, fully, permanently, +irrevocably and unconditionally waives, abandons, and surrenders all of +Affirmer's Copyright and Related Rights and associated claims and causes +of action, whether now known or unknown (including existing as well as +future claims and causes of action), in the Work (i) in all territories +worldwide, (ii) for the maximum duration provided by applicable law or +treaty (including future time extensions), (iii) in any current or future +medium and for any number of copies, and (iv) for any purpose whatsoever, +including without limitation commercial, advertising or promotional +purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each +member of the public at large and to the detriment of Affirmer's heirs and +successors, fully intending that such Waiver shall not be subject to +revocation, rescission, cancellation, termination, or any other legal or +equitable action to disrupt the quiet enjoyment of the Work by the public +as contemplated by Affirmer's express Statement of Purpose. + +3. Public License Fallback. Should any part of the Waiver for any reason +be judged legally invalid or ineffective under applicable law, then the +Waiver shall be preserved to the maximum extent permitted taking into +account Affirmer's express Statement of Purpose. In addition, to the +extent the Waiver is so judged Affirmer hereby grants to each affected +person a royalty-free, non transferable, non sublicensable, non exclusive, +irrevocable and unconditional license to exercise Affirmer's Copyright and +Related Rights in the Work (i) in all territories worldwide, (ii) for the +maximum duration provided by applicable law or treaty (including future +time extensions), (iii) in any current or future medium and for any number +of copies, and (iv) for any purpose whatsoever, including without +limitation commercial, advertising or promotional purposes (the +"License"). The License shall be deemed effective as of the date CC0 was +applied by Affirmer to the Work. Should any part of the License for any +reason be judged legally invalid or ineffective under applicable law, such +partial invalidity or ineffectiveness shall not invalidate the remainder +of the License, and in such case Affirmer hereby affirms that he or she +will not (i) exercise any of his or her remaining Copyright and Related +Rights in the Work or (ii) assert any associated claims and causes of +action with respect to the Work, in either case contrary to Affirmer's +express Statement of Purpose. + +4. Limitations and Disclaimers. + + a. No trademark or patent rights held by Affirmer are waived, abandoned, + surrendered, licensed or otherwise affected by this document. + b. Affirmer offers the Work as-is and makes no representations or + warranties of any kind concerning the Work, express, implied, + statutory or otherwise, including without limitation warranties of + title, merchantability, fitness for a particular purpose, non + infringement, or the absence of latent or other defects, accuracy, or + the present or absence of errors, whether or not discoverable, all to + the greatest extent permissible under applicable law. + c. Affirmer disclaims responsibility for clearing rights of other persons + that may apply to the Work or any use thereof, including without + limitation any person's Copyright and Related Rights in the Work. + Further, Affirmer disclaims responsibility for obtaining any necessary + consents, permissions or other rights required for any use of the + Work. + d. Affirmer understands and acknowledges that Creative Commons is not a + party to this document and has no duty or obligation with respect to + this CC0 or use of the Work. diff --git a/COPYING.txt b/COPYING.txt new file mode 100644 index 0000000..b3d0b75 --- /dev/null +++ b/COPYING.txt @@ -0,0 +1,14 @@ +All files avalable under cc0, for more information see: https://creativecommons.org/public-domain/cc0/ +The following is an acknowledgment of the the contributions of the artists included in this package: + + +Special thanks to: +Kolevier . . . . . . . . . . Many log hours working on something I never used ;-; (https://kolevier.carrd.co/#three) +Christian Elbrianno . . . . . . . Various tile and item textures, and hours of time. +RedAndFoxy . . . . . . . . . . Various tile and item textures, and their trust in me. +wwwq . . . . . . . . . . . Player sprites, and access to their coding cheat sheet. +drummyfish . . . . . . . . . . thank you mysterious stranger [Hand Painted Pack](wieldhand.png) + +Thank you for all the hard work every one of you put in, none of this would have been possible without each and everyone of you. +I'm grateful to have been given the chance to work with such wonderful artist, and I'm truly sorry I couldn't do more. + diff --git a/README.md b/README.md new file mode 100644 index 0000000..6187dea --- /dev/null +++ b/README.md @@ -0,0 +1,7 @@ +# Wishful + +RedundantC's barebones Luanti game. This was downloaded from [ContentDB](https://content.luanti.org/packages/RedundantC/wis_side_b/) with the source hosted on here because I couldn't find it on any repository. Like [Minetest](https://git.tonybark.com/archives/minetest), I've assigned this as a template. + +## License + +This project is under the public domain - see [UNLICENSE](UNLICENSE.txt) and [CC0](CC0.txt) for details. \ No newline at end of file diff --git a/UNLICENSE.txt b/UNLICENSE.txt new file mode 100644 index 0000000..fdddb29 --- /dev/null +++ b/UNLICENSE.txt @@ -0,0 +1,24 @@ +This is free and unencumbered software released into the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or +distribute this software, either in source code form or as a compiled +binary, for any purpose, commercial or non-commercial, and by any +means. + +In jurisdictions that recognize copyright laws, the author or authors +of this software dedicate any and all copyright interest in the +software to the public domain. We make this dedication for the benefit +of the public at large and to the detriment of our heirs and +successors. We intend this dedication to be an overt act of +relinquishment in perpetuity of all present and future rights to this +software under copyright law. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +For more information, please refer to diff --git a/game.conf b/game.conf new file mode 100644 index 0000000..a79d247 --- /dev/null +++ b/game.conf @@ -0,0 +1,14 @@ +#title Intentionally Left Blank, To Disable Engine Rendering On The Menu Screen (Top Left) +title = Wishful +#name is a uid only allows characters [a-z0-9_], not used in enduser side +name = wis_side_b +author = RedundantC +description = A simple game provided under a CC0 LICENSE: for writing & testing, mods and tutorials without a depending on minetest game. +min_minetest_version = 5.6 +map_persistent = false +disallowed_mapgens = v6, singlenode +allowed_mapgens = carpathian, flat, fractal, valleys, v5, v7 +disallowed_mapgen_settings = mg_flags, mgcarpathian_spflags, mgflat_spflags, mgfractal_spflags, mgvalleys_spflags, mgv5_, mgv6_spflags, mgv7_spflags +#allowed_mapgen_settings = mg_flags, mgcarpathian_spflags, mgflat_spflags, mgfractal_spflags, mgvalleys_spflags, mgv5_spflags, mgv6_spflags, mgv7_spflags +mgv5_spflags = caverns + diff --git a/menu/background.png b/menu/background.png new file mode 100644 index 0000000000000000000000000000000000000000..812a0f39f59a310cbdc8d64913ca471e32c84bb4 GIT binary patch literal 594 zcmeAS@N?(olHy`uVBq!ia0y~yVAKJ!PjD~+$-8^KK@?|!M`SUORtI55EzXJl3=B*x zo-U3d6}R5rJ-GIefq-kEwd8USuV1WzQXCzR@3ZRMvsCRV`Dzw+DZlC07EcV@m@E zGFEi&{aVPnp+&*T0R>N3e5`6GQv{kD6`W24KCaq@Rs8qQ0&M0S?v})2`qFKe<7XZa zYT{rNM8-}NZY>u##^Oqk()%+Qy*ZRvTu`v*s`>ii44C4UtIlr68VFaP9T&x7ZQrYG p?4HVvUB`eKCq*IAr?DDSKS4&B=LMf&JTPG}c)I$ztaD0e0s#4xoZtWe literal 0 HcmV?d00001 diff --git a/menu/header.png b/menu/header.png new file mode 100644 index 0000000000000000000000000000000000000000..4c7b74b7bc8e0311af2cf709f0a4bc8bd26bd84e GIT binary patch literal 3501 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 YPpZZ8X^>d&^Z)<=07*qoM6N<$g12DOHvj+t literal 0 HcmV?d00001 diff --git a/mods/wisgame/init.lua b/mods/wisgame/init.lua new file mode 100644 index 0000000..cb2feea --- /dev/null +++ b/mods/wisgame/init.lua @@ -0,0 +1,11 @@ +local modname = minetest.get_current_modname() +local modpath = minetest.get_modpath(modname) + +-- DIR_DELIM 2345 < is 5 chars shorter, and I hate it! +c.dofolder(modpath .. modpath:match("[\\/]") .. "open", function(filePath) + if filePath:match("^.+%.(.+)$") == "lua" then + dofile(modpath .. modpath:match("[\\/]") .. "open"..modpath:match("[\\/]")..filePath) + end + --print(filePath) +end) + diff --git a/mods/wisgame/mod.conf b/mods/wisgame/mod.conf new file mode 100644 index 0000000..57d94ad --- /dev/null +++ b/mods/wisgame/mod.conf @@ -0,0 +1,3 @@ +#name is a uid that only allows characters [a-z0-9_] +name = wisgame +depends = wislib diff --git a/mods/wisgame/open/disabled/open_air.lua b/mods/wisgame/open/disabled/open_air.lua new file mode 100644 index 0000000..a9ff8f1 --- /dev/null +++ b/mods/wisgame/open/disabled/open_air.lua @@ -0,0 +1,52 @@ +local print = c.log +local max_light=math.floor(minetest.LIGHT_MAX/2) +print(max_light) +local breakskybox = function() +minetest.override_item(minetest.get_name_from_content_id(minetest.get_content_id(minetest.get_name_from_content_id(minetest.CONTENT_AIR))), { + drawtype = "nodebox", + sunlight_propagates = true, + walkable = false, + is_ground_content = false, + light_source = max_light, --this breaks everything! + + + use_texture_alpha = "opaque", + paramtype = "light", + paramtype2 = "wallmounted", + sunlight_propagates = true, + walkable = false, + }) +end +--print(minetest.LIGHT_MAX, max_light,0) +local fixskybox = function() + +minetest.register_on_mods_loaded(function() +core.fix_light(vector.new(-31000, -31000, -31000), vector.new(31000, 31000, 31000)) +end) +local chunkSize = tonumber(minetest.settings:get("chunksize")) or 16 +local maxBlockSendDistance = tonumber(minetest.settings:get("max_block_send_distance")) or 10 +local maxRenderDistance = (chunkSize * ((maxBlockSendDistance * 2) * .25) ) +local deltaCount = 0 +local deltaLimit = 3 + +minetest.register_globalstep(function(dtime) + deltaCount = deltaCount + dtime + print(deltaCount) + if not (deltaCount >= deltaLimit) then + return nil + end + deltaCount=deltaCount-deltaLimit + for _, player in ipairs(minetest.get_connected_players()) do + local username = player:get_player_name() + local userpos = player:get_pos() + local currentuserchunk = vector.floor(vector.divide(userpos, maxRenderDistance)) + + local minp = vector.multiply(currentuserchunk, maxRenderDistance) + local maxp = vector.add(minp, maxRenderDistance - 1) + core.fix_light(vector.new(minp.x, minp.y, minp.z), vector.new(maxp.x, maxp.y, maxp.z)) + end +end) + +end +breakskybox() + fixskybox() diff --git a/mods/wisgame/open/disabled/open_spread_abm.lua b/mods/wisgame/open/disabled/open_spread_abm.lua new file mode 100644 index 0000000..f06d89e --- /dev/null +++ b/mods/wisgame/open/disabled/open_spread_abm.lua @@ -0,0 +1,29 @@ +-- Function to spread grass to nearby dirt +local function spread_grass(pos) + -- Define the positions to check around the current position + local positions = { + {x = pos.x + 1, y = pos.y, z = pos.z}, + {x = pos.x - 1, y = pos.y, z = pos.z}, + {x = pos.x, y = pos.y, z = pos.z + 1}, + {x = pos.x, y = pos.y, z = pos.z - 1}, + {x = pos.x, y = pos.y + 1, z = pos.z}, + {x = pos.x, y = pos.y - 1, z = pos.z}, + } + + for _, new_pos in ipairs(positions) do + local node = minetest.get_node(new_pos) + if node.name == "default:dirt" then + minetest.set_node(new_pos, {name = "default:dirt_with_grass"}) + end + end +end + +-- ABM (Active Block Modifier) to spread grass +minetest.register_abm({ + nodenames = {"default:dirt_with_grass"}, + interval = 10, -- Time in seconds between ABM execution + chance = 50, -- 1 in 50 chance for the ABM to run + action = function(pos, node, active_object_count, active_object_count_wider) + spread_grass(pos) + end, +}) diff --git a/mods/wisgame/open/open_conf.lua b/mods/wisgame/open/open_conf.lua new file mode 100644 index 0000000..06484a8 --- /dev/null +++ b/mods/wisgame/open/open_conf.lua @@ -0,0 +1,56 @@ +-- Initialize mod storage +-- ASLP (Anti Stupid Lua Polyfill) +local DIR_DELIM = DIR_DELIM or "/" +-- Engine headers +local MODPACK = debug.getinfo(1, "S").source:match("mods[/\\][/\\]?[^/\\]*"):match("[/\\].*$"):sub(2) +local MODNAME = minetest and minetest.get_current_modname() or MODPACK +local MODPATH = minetest and minetest.get_modpath(MODPACK) or debug.getinfo(1, "S").source:match("^(.+)[/\\]"):sub(2) +--locals +--Avoid Using $.get() to get null instead of sane defaults. +local function nilget(key, default) + if not minetest.settings:has(key) then + minetest.settings:set("noclip") + + else + return nil + end +end +--Avoid Using $.get() to get null instead of sane defaults. +local function nilset(key, default) + if not minetest.settings:has(key) then + --Race Condition? + minetest.settings:set(key, default) + else + return nil + end +end + +-- Nooo! "Attempted to set secure setting." +-- nilset("secure.trusted_mods", "formspec_edit,") + + + + + + + +-- At this distance the server will aggressively optimize which blocks are sent to +-- clients. +-- Small values potentially improve performance a lot, at the expense of visible +-- rendering glitches (some blocks will not be rendered under water and in caves, +-- as well as sometimes on land). +-- Setting this to a value greater than max_block_send_distance disables this +-- optimization. +-- Stated in mapblocks (16 nodes). +-- type: int min: 2 max: 32767 +--nilset(" block_send_optimize_distance", 32767) + + + + +-- If enabled, the server will perform map block occlusion culling based on +-- on the eye position of the player. This can reduce the number of blocks +-- sent to the client by 50-80%. Clients will no longer receive most +-- invisible blocks, so that the utility of noclip mode is reduced. +-- type: bool +--nilset(" server_side_occlusion_culling", "true") diff --git a/mods/wisgame/open/open_hand.lua b/mods/wisgame/open/open_hand.lua new file mode 100644 index 0000000..c8cbf9e --- /dev/null +++ b/mods/wisgame/open/open_hand.lua @@ -0,0 +1,54 @@ +local image08='blank.png^[noalpha^[resize:8x8^[colorize:#000000:255' +local image16='blank.png^[noalpha^[resize:16x16^[colorize:#ffffff:255' +local modname = minetest.get_current_modname() +--why is : the hand, is it legacy support thing or what? +local hardtimes={[1] = 0.00, [2] = 2.00, [3] = 3.0} + +minetest.register_item(minetest.get_current_modname()..':hand', { + type = 'none', + wield_image ='wieldhand.png', + --[colorize:#000000:255:0,16=wis_black.png', + wield_scale = {x = 0.5, y = 1, z = 4}, + tool_capabilities = { + full_punch_interval = 0.5, + max_drop_level = 0, + groupcaps = { + crumbly = { + times = hardtimes, + uses = 0, + maxlevel = 1, + }, + snappy = { + times = hardtimes, + uses = 0, + maxlevel = 1, + }, + oddly_breakable_by_hand = { + times = hardtimes, + uses = 0, + }, + }, + damage_groups = {fleshy = 1}, + } +}) + +minetest.register_on_joinplayer(function(player, last_login) + if not player then return end + local inv = player:get_inventory() + inv:set_size("hand",1) + inv:add_item("hand", ItemStack(modname..":hand")) + --minetest.log(dump(inv:get_lists())) +end) + + + +local old_handle_node_drops = core.handle_node_drops +core.handle_node_drops = function(...) + -- flag all drops + old_handle_node_drops(...) + --- minetest.log('old_handle_node_drops') +end + +local old_item_drop = core.item_drop +--core.item_drop = function(...) old_item_drop(...) --minetest.log('old_item_drop') end + diff --git a/mods/wisgame/open/open_heart.lua b/mods/wisgame/open/open_heart.lua new file mode 100644 index 0000000..cc79b24 --- /dev/null +++ b/mods/wisgame/open/open_heart.lua @@ -0,0 +1,81 @@ +--Code that modifies information about player including: health totals, movement speeds, and more. +--movment world combat building +--player combat world + + + + +local physics_override = { +gravity=1, -- default is 1.0 +jump=1, -- default is 1.0 +speed=1.5, -- default is 2.0 +speed_sprint = 2, +speed_climb=2, -- default is 1.0 +speed_crouch=2, -- default is 1.0 +acceleration_air=1, -- default is 1.0 +acceleration_default=1, -- default is 1.0 +liquid_fluidity=1, -- default is 1.0 +liquid_fluidity_smooth=1, -- default is 1.0 +liquid_sink=1, -- default is 1.0 +new_move=true, -- default is true +sneak=true, -- default is true +sneak_glitch=true, -- default is false +} +-- Register a globalstep callback to check for sprinting, and sneaking, and regen health +local function for_each_player(dtime) + for _, player in ipairs(minetest.get_connected_players()) do + player:set_physics_override(physics_override) + local controls = player:get_player_control() + if not controls.aux1 then -- 'aux1' is the default sprint key + --c.log("slow", physics_override.speed) + player:set_physics_override({speed = physics_override.speed}) -- Normal speed + else + --c.log("fast", physics_override.sprint) + player:set_physics_override({speed = physics_override.speed_sprint}) -- Increased speed + end + if not controls.sneak then -- but 'sneak' can have a normal name... you know what whatever! + else + end + end +end + +minetest.register_globalstep(for_each_player) + + +--[[ +local function remove_fall_damage() + for _, player in ipairs(minetest.get_connected_players()) do + player:set_armor_groups({fall_damage= 0}) + end + +end +--]] + +local print_physics_command ={ + description = "Prints the player's physics override settings to the log", + func = function(name) + local player = minetest.get_player_by_name(name) + if player then + local physics = player:get_physics_override() + for key, value in pairs(physics) do + minetest.log(tostring(key).."="..tostring(value)) + end + else + return false, "Player not found." + end + end +} +--minetest.register_chatcommand("print_physics", print_physics_command) +minetest.register_chatcommand("dodmg", + +{ + description = "Does damage to the player", + func = function(name) + local player = minetest.get_player_by_name(name) + + + end +} + +) + diff --git a/mods/wisgame/open/open_net.lua b/mods/wisgame/open/open_net.lua new file mode 100644 index 0000000..092c594 --- /dev/null +++ b/mods/wisgame/open/open_net.lua @@ -0,0 +1,22 @@ +local disable_fall_damage = function(player) + -- it makes puppys, and unicorns -_- + --Editors note: Fuck you, comments are important. + player:set_armor_groups({ fall_damage_add_percent = -100 }) -- + --Editors note: you can just use -1, see bellow + --save more bytes by not adding comments. + --Editors note: can convert to emoji πŸ–•! +end +minetest.register_on_joinplayer(disable_fall_damage) +minetest.register_on_respawnplayer(disable_fall_damage) +--[[ +* `fall_damage_add_percent`: modifies the fall damage suffered when hitting + the top of this node. There's also an armor group with the same name. + The final player damage is determined by the following formula: + damage = + collision speed + * ((node_fall_damage_add_percent + 100) / 100) -- node group + * ((player_fall_damage_add_percent + 100) / 100) -- player armor group + - (14) -- constant tolerance + Negative damage values are discarded as no damage. + +--]] diff --git a/mods/wisgame/open/open_registration.lua b/mods/wisgame/open/open_registration.lua new file mode 100644 index 0000000..02ead6a --- /dev/null +++ b/mods/wisgame/open/open_registration.lua @@ -0,0 +1,13 @@ +local DIR_DELIM = debug.getinfo(1, "S").source:match("[\\/]") +local modname = core.get_current_modname() +local modpath = core.get_modpath(modname) +local print = c.log +c.dofolder(modpath .. modpath:match("[\\/]") .. "open".. modpath:match("[\\/]").. "open_registration", function(filePath) + if filePath:match("^.+%.(.+)$") == "ini" then + --print(filePath:match("^.+%.(.+)$")) + c.registrate_from_file(table.concat({modpath, "open", "open_registration",filePath}, DIR_DELIM )) + --print("end") + end +end) + + diff --git a/mods/wisgame/open/open_registration/open_field.ini b/mods/wisgame/open/open_registration/open_field.ini new file mode 100644 index 0000000..44c76d9 --- /dev/null +++ b/mods/wisgame/open/open_registration/open_field.ini @@ -0,0 +1,24 @@ +[biome_plains] +type="biome" +name="plains" +heat_point = 50 +humidity_point = 50 +; +node_top = "mapgen_dirt_with_grass" +node_top_depth = 1 +;depth_top +node_filler = "mapgen_dirt" +node_filler_depth = 5 +;depth_filler +node_riverbed = "mapgen_sand" +node_riverbed_depth = 3 +;depth_riverbed +;node_substratum="mapgen_sandstone" +;node_substratum_depth=1 +;custom +vertical_blend = 0 +;y_max = yMax +;y_min = seaLevel+1 +dune_line=1 +;sea_level=1 + diff --git a/mods/wisgame/open/open_registration/open_hand.ini b/mods/wisgame/open/open_registration/open_hand.ini new file mode 100644 index 0000000..38fd5b7 --- /dev/null +++ b/mods/wisgame/open/open_registration/open_hand.ini @@ -0,0 +1,19 @@ +;'[colorize:#000000:255:0,16=wis_black.png' +[item_hand] +name = ":" +type = "item" +description = "Open Hand" +description = "Way Of The!" + +inventory_image = "wieldhand.png" +wield_image = "wieldhand.png" + +;x=horizontal, y=vertical, z=depth +wield_scale = {"x" : 0.5, "y" : 1.5, "z" : 1.0} +tool_capabilities = { "full_punch_interval" : 0.5, "max_drop_level" : 0 } +tool_dig_groups = [ "crumbly", "snappy", "oddly_breakable_by_hand" ] +; = { times = hardtimes, uses = 0, maxlevel = 1 }, +tool_dig_times = [1.00, 2.00, 3.00, null] +tool_dig_uses = 0 +tool_dig_maxlevel = 1 +tool_damage_groups = {"fleshy" : 1} diff --git a/mods/wisgame/open/open_registration/open_terrain.ini b/mods/wisgame/open/open_registration/open_terrain.ini new file mode 100644 index 0000000..9e04184 --- /dev/null +++ b/mods/wisgame/open/open_registration/open_terrain.ini @@ -0,0 +1,123 @@ +;dune-line +[mapgen_water] +type="node" +name="water_source" +tiles = ["open_water_source.png^[opacity:127"] +;tiles ={{name :'open_water_source.png^[opacity:127', backface_culling : false}} +;tiles=["open_water_source.png^[mask:open_clump_mask.png^[noalpha^[makealpha:0,0,0^(open_water_source.png^[mask:open_clump_mask.png^[makealpha:0,0,0^[colorize:#000000:70)"] +;^[mask:open_clump_mask.png^[noalpha^[makealpha:0,0,0^(open_dirt.png^[mask:open_clump_mask.png^[makealpha:0,0,0^[colorize:#000000:70)"] +;tiles=["open_clump_mask.png^(wis_green.png^(wis_green.png^[mask:open_clump_mask.png))^[makealpha:0,0,0" ] +alias=["mapgen_water_source", "void_essential:water_source", "8"] +description = "This is a secret message, don't read it" +groups = { "oddly_breakable_by_hand":1} +is_ground_content = false +walkable = false +liquid_move_physics = true +move_resistance = 1 +pointable = false +diggable = false +buildable_to = true +liquid_viscosity = 0 +liquid_renewable = false +liquid_range = 8 + +use_texture_alpha = "blend" +drawtype = "liquid" +paramtype = "light" +light_source = 12 + +[mapgen_river_water] +type="node" +name="river_water_source" +tiles = ["open_water_source.png"] +alias=["mapgen_river_water_source", "void_essential:river_water_source", "9"] +groups = { "oddly_breakable_by_hand":1} +description = "This is secret water, you don't need it" +is_ground_content = false + +walkable = false +liquid_move_physics = true +move_resistance = 1 +pointable = false +diggable = false +buildable_to = true +liquid_viscosity = 0 +liquid_renewable = false +liquid_range = 8 + +[mapgen_stone] +type="node" +name="stone" +tiles=["open_stone.png"] +tiles=["open_stone.png^wis_beading.png"] +tiles=["open_stone.png"] + +alias=["mapgen_stone", "void_essential:stone", "1"] +description="abundant, ubiquitous, and yet fundamentaly essential" +groups = {} +is_ground_content=true + +[mapgen_grass] +type="node" +name="grass" +tiles=["open_grass.png","open_dirt.png", "open_dirt.png^(open_grass.png^[mask:open_grass_mask_big.png^[makealpha:0,0,0)" ] +alias=["mapgen_dirt_with_grass","grass", "2"] +description="倩叒雲剣" +groups = { "oddly_breakable_by_hand":1, "dirt": 1 } +is_ground_content=true + +[mapgen_dirt] +type="node" +name="dirt" +tiles=["open_dirt.png"] +alias=["mapgen_dirt","3"] +groups = { "oddly_breakable_by_hand":1} + + +[mapgen_sand] +type="node" +name="sand" +tiles=[ "open_sand.png"] +alias=["mapgen_sand","12"] +groups = { "oddly_breakable_by_hand":1} +macros = ["clump", "craftables"] + +[mapgen_sandstone] +type="node" +name="sandstone" +tiles=["open_sandstone.png"] +alias=["mapgen_sandstone","24"] +groups = {} + + +[node_log] +type="node" +name="log" +tiles=["open_oak_log.png","open_oak_log.png", "open_oak_bark.png"] +alias=["log","oak_log"] +groups = { "oddly_breakable_by_hand":1, "tree":1 } + +[node_leaves] +type="node" +name="leaves" +tiles=["open_oak_leaf.png"] +alias=["leaves","oak_leaves"] +groups = { "oddly_breakable_by_hand":1} + +drawtype = "allfaces_optional" +;Allows transparency +waving = 1 +; is go wosh! +paramtype = "light" +sunlight_propagates = true +walkable = true +groups = { "oddly_breakable_by_hand":1, "leafdecay" : 1, "flammable" : 1} + +; drop = { max_items = 1, items = { {items = {"sapling"}, rarity = 20}, {items = {"leaves"}} } } + + +;-- mapgen_water_source mapgen_river_water_source mapgen_stone mapgen_dirt_with_grass mapgen_dirt mapgen_sand +;-- mapgen_sandstone +; mapgen_gravel + + diff --git a/mods/wisgame/open/open_skin.lua b/mods/wisgame/open/open_skin.lua new file mode 100644 index 0000000..fbb4e08 --- /dev/null +++ b/mods/wisgame/open/open_skin.lua @@ -0,0 +1,26 @@ +-- Define player sikin +local frontTexture = "player.png" +local backTexture = "player_back.png" + + -- Number of required textures depends on visual. + -- "sprite" uses 1 texture. + -- "upright_sprite" uses 2 textures: {front, back}. + +-- set the player's skin when they join +minetest.register_on_joinplayer(function(player) + player:set_properties({ + visual = "upright_sprite", + spritediv = {x = 1, y = 1}, -- declare as a single texture divided into 1x1 sections + initial_sprite_basepos = {x = 0, y = 0}, -- Start at the top-left corner + visual_size = {x = 1, y = 1}, + --Thanks to wwwq for fixing this part for me! 0/ + eye_height = 0.85, + textures = { frontTexture, backTexture }, + visual_size = {x = 1, y = 1, z = 1}, + collisionbox = { -0.3, 0, -0.3, 0.3, 0.9, 0.3 }, + selectionbox = { -0.5, 0, -0.5, 0.5, 1, 0.5, rotate = false }, + }); +end) + + + diff --git a/mods/wisgame/open/open_skys.lua b/mods/wisgame/open/open_skys.lua new file mode 100644 index 0000000..61945d2 --- /dev/null +++ b/mods/wisgame/open/open_skys.lua @@ -0,0 +1,31 @@ +local noon = 0.5 +local midnight = 1.0 +local fixedTime = noon +minetest.register_globalstep(function(dtime) + minetest.set_timeofday(fixedTime) +end) +minetest.register_on_joinplayer(function(player) + player:set_sky({ + base_color = "#87CEEB", --"#87CEEB", -- Explicitly set color to skyblue + type = "plain", + clouds = false, + }) + -- please go away sun + player:set_sun({ + visible = false, -- set sun visibility + sunrise = nil, -- god damn sunrisebg.png is still visibe! + sunset = nil, -- "sunset.png", -- sunset texture + texture = "sun.png", -- take a wild guess -__- + }) + + player:set_moon({ + visible = false, + texture = "moon.png", + }) + + player:set_stars({ + visible = false, -- Explicitly setting stars visibility + count = 1000, -- Custom number of stars (if needed) + star_color = "#FFFFFF", -- Custom star color (if needed) + }) +end) diff --git a/mods/wisgame/open/open_trees.lua b/mods/wisgame/open/open_trees.lua new file mode 100644 index 0000000..eb2c14b --- /dev/null +++ b/mods/wisgame/open/open_trees.lua @@ -0,0 +1,89 @@ + +local modname = minetest.get_current_modname() +local modpath = minetest.get_modpath(modname) +-- hard coding this is a failure of the game design +local schemapath = modpath .. "/schema/smoltree.mts" +--//mtschemcreate smoltree + + +--registrate tree spawn params +minetest.register_on_mods_loaded(function() + local postpendstr = "_subterranean" + for name, _ in pairs(minetest.registered_biomes) do + if name:sub(-#postpendstr) ~= postpendstr then + --c.log("Biome name: " .. name) + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"group:dirt"}, + sidelen = 80, + noise_params = { + offset = 0, + scale = 0.05, + spread = {x = 1024, y = 10, z = 1024}, + seed = minetest.get_mapgen_setting("seed"), + octaves = 4, + persistence = 0.5, + lacunarity = 1.0, + }, + y_max = minetest.registered_biomes.y_max, + y_min = minetest.registered_biomes.y_min, + schematic = schemapath, + flags = "place_center_x, place_center_z", + rotation = "random", + biomes = {name}, + }) + end + end +-- leaf decay is a failure of the game design +-- compat: https://forum.minetest.net/viewtopic.php?t=18023 + + local leafdecaynodes = {} + for name, def in pairs(minetest.registered_nodes) do + if def.groups and def.groups.leafdecay then + table.insert(leafdecaynodes, name) + end + end + + local treenodes = {} + for name, def in pairs(minetest.registered_nodes) do + if def.groups and def.groups.tree then + table.insert(treenodes, name) + end + end + --c.log(#treenodes) + local leafdecayradius = 1 + minetest.register_abm({ + nodenames = leafdecaynodes, + neighbors = {"air"}, + interval = 1, -- Time in seconds between ABM execution + chance = 1, -- 1 in $% chance for the ABM to run + action = function(pos, node, active_object_count, active_object_count_wider) + local foundtree = false + for dx = -leafdecayradius, leafdecayradius do + for dy = -leafdecayradius, leafdecayradius do + for dz = -leafdecayradius, leafdecayradius do + local p = {x = pos.x + dx, y = pos.y + dy, z = pos.z + dz} + local n = minetest.get_node(p) + if minetest.registered_nodes[n.name].groups and minetest.registered_nodes[n.name].groups.tree then + foundtree = true + break + end + end + if foundtree then + break + end + end + if foundtree then + break + end + end + + if not foundtree then + local spawnableitem = minetest.get_node(pos) + minetest.remove_node(pos) + minetest.spawn_item(pos, spawnableitem) + end + end, + }) + +end) diff --git a/mods/wisgame/schema/smoltree.mts b/mods/wisgame/schema/smoltree.mts new file mode 100644 index 0000000000000000000000000000000000000000..e0445e521d41dd2b771d20c5472e7133524f21e9 GIT binary patch literal 90 zcmeYb3HD`RVPIxpV_>ca10b6@F|&w)uROCjJux@cDkn9uEVY<{8_v&9ub7jZaDbu5 iLqOEvpr@O{Ne)#>gDVdWme12^xSG?%z%YYJ>Ind&CmmM+ literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/Christian Elbrianno/mass_rename.bat b/mods/wisgame/textures/Christian Elbrianno/mass_rename.bat new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/mods/wisgame/textures/Christian Elbrianno/mass_rename.bat @@ -0,0 +1 @@ + diff --git a/mods/wisgame/textures/Christian Elbrianno/open_acorn.png b/mods/wisgame/textures/Christian Elbrianno/open_acorn.png new file mode 100644 index 0000000000000000000000000000000000000000..9f341582743620090e79abd59247c88c9386fc33 GIT binary patch literal 427 zcmV;c0aX5pP)Px$Wl2OqR5*=|lfO%XK^%vlE5lxmhCqZsihd9j1VRNtQ#2&~0W}0cQ{3 zQ_$*GP>T>W1VIf!iZ4V7f)|=zIC=RX@}BxO<-CzIO)=;>q8uonkZ>uHSX|b5O(Rueg$d8tKIxxZVDZq)`s`^1 z9DmN%?EI3+kOCo0cq_RL!10=jl1^~0bx3&Br0@Q$J{s2mU VfQ9gAEOGz<002ovPDHLkV1nWxwqpPQ literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/Christian Elbrianno/open_acorn_sprout.png b/mods/wisgame/textures/Christian Elbrianno/open_acorn_sprout.png new file mode 100644 index 0000000000000000000000000000000000000000..148938cc6bfd9df5566d5841001868808a595342 GIT binary patch literal 419 zcmV;U0bKrxP)Px$T}ebiR5*>5k}*gEQ5?p9ClY~hxM&SWL(mvbw>h>6P6;~M>eSTQaBEUiG_*!7 z4RRn9M9WDC36aux7HCvPn5GFeyau^f&pW~X)BnBqec$_k-+LNUs_0}z)pq6jbmv+N z!YP|YCo86oI5+2&dHopj$cQ)vfsi zGFD0aT}uy1!w{Ee`|{wvR-QWk`jHKc^9g%o`(&Fz_eFw+pQAwXX61@#JVLMf;kN*g z&RMb#$^bwthX_CR`~vBmg_ptiojuh?#wrns#h~3DXOK5_;Xdiint>-$Z+0{}!DI%r zR_Nah)PUtP=1pDf?G_c_L&FIa*eIUM52gI&ys3*x@Xg!2PrxGs`~U@2kHbv$_A3AY N002ovPDHLkV1ld9xz7Lq literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/Christian Elbrianno/open_bluestone_overlay.png b/mods/wisgame/textures/Christian Elbrianno/open_bluestone_overlay.png new file mode 100644 index 0000000000000000000000000000000000000000..f5a21797321dc4b12a27d15c141180e385a86b17 GIT binary patch literal 527 zcmV+q0`UEbP)Px$$w@>(R5*>LlCf(OQ5?rV7gAGNuc9`bA;NK&!KDojC8c!gP)nCWsRcz4kpsIF z9sCnqM2CP&3!&JdQz;!gIN9PL>JWQ~hngdh5NaGWnv&4r=TPqPF1CXBogVLf-}`;u z_xFSUl<}9dd^%e!Uz?r)VB`6?0bp8z%*}pRd&$UbT0!~e!4(6*c0D=lj*!Vtvi||X z>X3T0KeUiQb*#E~GhVUW#Rq2e>f! z1mAzh=JpW)I*G2$?IWH&H4K#j@cuZ52y^zNiwgh)DPQHI6tzdMI5o2;rxECiP2P>0 z_i6tMSzB>q6-Gz%w_EMP`nlnIgw-Jy=lcLyTXBs9K($i3K9KTxx%-yEvkrHcDthIG zR=co%*c}02alVgkr>RCc%3urN$G27d{Z23Cr)Y8Ue1|Zs^YOED`Yimbegh&>w`|^> RAE^KU002ovPDHLkV1ffA@p1qF literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/Christian Elbrianno/open_cobble.png b/mods/wisgame/textures/Christian Elbrianno/open_cobble.png new file mode 100644 index 0000000000000000000000000000000000000000..f17656e5cc088316987f684dc093e2432c49dad1 GIT binary patch literal 585 zcmV-P0=E5$P)Px%14%?dR49>MQoV}uKomV@1;N`Qz(k^d?bX7Mk7io z09h=Gq7Xs=j7FmbH=Ry7=hbR;I2;O?s;ZLfx|U@LM7!M<8%imqbUYpdD3wYH1*KHF zUayR?kB^UhJ`ccg96^?7D;A560#H zA)C!cQFJ^WeczXLT?fDz`}z3+5Cj1L(=;iiK@bo^_WM2OyxZ;W_j>@T$z;;+_W`U{ ztL=6RpwVdfzAq%z>vaHMUtgSaMN!_~-cpHU5pf*P=W{}cXu$jXyRhWCu5H_`R!e?H zJC37i+JEg5b^&nCFPDqFTrL6BYPG}R5XUiNObjI9e$F|aPO>CPK@glyr-X)cF7~3@ z_xHEZ1Hdqh)MBv!U|AMp?DO;Ua5#9L_xwSU{Cd6K>-GM5FbqRbYMNFqmv_4zV~lgI z>pCICFbvzaB}oDxZ#J7ajzvNerfG&@xZCYa(-b$hZTr6Od7kWfo}ws>F)>|XGz>#A zO@Ve@S4g_w?=OSF;Cw#6zP@tKe}8|Q&1Muunx?JS>-+uA7`xqW+wHbesdPFW!!Z5; XtW_0`Bl40fhdEP)Px$HAzH4R5*>zlCe(0P!xv0i;j?hiw~d!hQ!UmFxj}(fuXCcb>R`5e1RGhSe$Mb zM?-LhghwEOkdO`}7}BLI-3U1@()6|!7YEOF|8wql|8vfTe-)x*5gp4;29nixGRWxw zrS#!5Ugw~$D+Mit7wacpL9wRL>(vlk#z^c0t(XrHJ^W#7dhU<7T z(js-)BoO$XLCfkGqU(6Mb%s&ETmPA!Up2tS8ppm3z@ud++8%Oxaz+>hEZ0+dewFMn z4Xdl}!mxX&HN%1HcyfJp%c6XqXmeFl>3p^|1F-)z%k{MIwS8+1n#FcnR!3aN`_=ZJ Z#uv>RxoCqd&8GkW002ovPDHLkV1htttf&A0 literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/Christian Elbrianno/open_dirt.png b/mods/wisgame/textures/Christian Elbrianno/open_dirt.png new file mode 100644 index 0000000000000000000000000000000000000000..8e72ee05bfac1ecd470e81916dd5f79526557fca GIT binary patch literal 717 zcmV;;0y6!HP)Px%he(cDJ>deaN}k*n^iYvLrr>+?m!3TWZ?UGpZA@G5AWa1f^?F4t4%?ebX=eP zb&J%R4nWr(Vhe+Mt4(~WxfB4sjn^!uGpXZUU1MkEIgQIc1z{2bcj1`C&g2+~Ok!lbOL*uo&P4`}ux0Q$2TmNKGoJ&+rO zoXbe zuTT&swlE~nj_YG7qj`g_JH%2(bX*@Tn+KrTi`ZYc2+~PX-Om7=o;8W=1N8BPTBV4V z%@cYKiY*KVQ=daKP~s&ew{iXfe2t5gIa0T6l)1!2>Qu8%DYockM``x`7}#QDYC zwir~$^<{A!WuM=-_tYvynMgg8o=Z47tO7{8wkJQag&{4B0mi!HpBZ`%U3Z95 zZ?!o+Yf1@GKai0PJqJq}$>uR!fc)|*WnJYjdV@G)Lk_m&00000NkvXXu0mjfkg!3N literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/Christian Elbrianno/open_feather.png b/mods/wisgame/textures/Christian Elbrianno/open_feather.png new file mode 100644 index 0000000000000000000000000000000000000000..d3b1c9acca92051274031e755f237edc1588c190 GIT binary patch literal 382 zcmV-^0fGLBP)Px$I7vi7R5*>DlQB!fP!xqv#6KW`f~1HpX+bIU4`h%Mu!4}?MRCa_6kIfunn@6x zTm+Y_wnM?8h!nx4lqyouNI|hssY`#tap`*`Bu!J#@^X3aJNLYIiGmqb+}o%4e!99) zlv&}0+?uRMeiw89g@sZZ1XV8N(-|0cg<=)m%Y{5{U*6@J`6RexngGC(X`IWxc5H+0L@-s!m$YqyTXH=Z4|Xk1P*oN@tnV5PJY1fKm`DOWt4a9v>suy?gF~_$m;PW#e=sCT)>|FcTOAs9g<_m> zii}ZT%;4ka7XWZ}?Im{=2A1QpdU6N=64tXCR8>u40gNA!B&*MF@NR0M&D!bF^q-C7 c#QUYuAD(lCFotWi;Q#;t07*qoM6N<$feGBgOeIj93D%1hKZ61u`0TxCL&xa!_<( zh+Mnnlea3l>&_lDxZ)AF?%L@CI%*_YpvST6j&9ZtGdIHttZKW~dO7eoDU^l>R=RGe z3=KUqbs?LRj`W|z)hegoJAC;X!b!mGaEAju#B2mKT8ok8V#aI+qr}}BcQ&L-x(l!> zYB_puJ)9u2QG(~W!AUp&$1CG>8eW~{I(9Q>0wI^97!M4ZJ6b$?iis1F8EiE;7!_h7 zuLs6)2;?~Ov`lE^juAO_R_Ld8T3bS1!|sPJPKth=(kdibV8o$y>tDl4#)kqzJsZU2 z#M>ATie|cKHOO!5Oi1K-nIKWRL8#T{%cf|>FS{kH+)^A#bH5>n)}nu>O*xzynm1ZZ zmw3Qta`1{khNDSS>P8-~l(4R8%!zNb0wwH2J-0K9_1Q00U?es0bsimMKQx2+j)a)F rmPx$5lKWrR5*>TQ!$RhFc2IgrKLWL2RN1KQUT%vS5R|(O70DLK~i2%gb<&IQqvq& zcmQ%lmn(_HUIB~Zgg}tka;=@2ogD-3EE6lD6^ITlb)D%oIujSAv&21+k>}|;K@~u+ z(?1~1;FMqOlr@5eg8Zx?2ALSo`ooduX*#$TV-yq?K^0*4{bPo5z8BosEQ;SeA(YP2 zB8h?mQBbt2Px$mPtfGR5*=glEH4JpjwN zzTJKPW&|fOO>xTPG(;ZG_f+W2;4~j|v(S6YXi;)m#+8;NSCgii^iAPq+{TfkLhmsb zn;&Wi)uai%Ck>I%|DRktsJtTd9%Vb583-^9k+x|8Xqy&uvAK}2N%n1JAd0%fo){tk zUw3zCb0ZJtV)K}Cx81u2e)f#Nj#QH-4UyA)WEnx5Rfm$g;N4-5pFK*t)@~KEnlv#) zY6mey(h&3fLf>|lKaam@n-*0~8rxZ7h2BR0prEm* zi(`nz>Eu8BEIc9%YHVBw3(OlPPMm1LJVEr(jT;vA8{G8&Ergr>mdKI;Vst00!D8f&c&j literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/Christian Elbrianno/open_grass_mask_sml.png b/mods/wisgame/textures/Christian Elbrianno/open_grass_mask_sml.png new file mode 100644 index 0000000000000000000000000000000000000000..0253c013e8cfa93576819618500603c07887b376 GIT binary patch literal 131 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GGLLkg|>2BR0prEOz zi(`nz>Eu8BEIc9%YBiI3dU}pXHmngic5IoXN}JyK7GGnt@CTb%jx36m=#etWI&i^| af#H1ztK)Z{AL2j*7(8A5T-G@yGywoD5GFzZ literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/Christian Elbrianno/open_gravel.png b/mods/wisgame/textures/Christian Elbrianno/open_gravel.png new file mode 100644 index 0000000000000000000000000000000000000000..fb827fbd2bd75ad3ff6eed3b9e900645d3a76eed GIT binary patch literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~(Ey(iS0Eh~ z6_t{bQd(S`pP%2_+PZY^T&^WK-+>bBB|(0{4FADkY5lU_K%p{E7sn8ZskZ){dpG+I1&PvA%q@)T7*7V9s)>SJMoc+9JJMd@Quhn&&tyJRw(CUl+ho z7Pk0I$K)i}_;~@hj=HSeSXfwca((b#mwCKf*D~Heyg#5kD&ZxM_pj-edA7&IA8QG( f_Pw$G*LD6iQ<)9-*H-Qax`4sc)z4*}Q$iB})OuRz literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/Christian Elbrianno/open_iron_overlay.png b/mods/wisgame/textures/Christian Elbrianno/open_iron_overlay.png new file mode 100644 index 0000000000000000000000000000000000000000..42ecb1a79b187ea32a5ed3635bba4d6e974b05ab GIT binary patch literal 531 zcmV+u0_^>XP)Px$%}GQ-R5*>Tl0Rq@VHn1Lch%y7Qm|mtT7`fPV(3&#(}P?NG6je084yf1aY&&M zC>>Kv>6B8qq1aUr1cx?*(y1Vksvxa@;9R5_!4y)kXa_ln=IJ(3#)pXr0={qwxf z^TGdwUvtE-ITFWv<-F`aT#?Pyn_-O(P;zbYYmS^5Hu>1s*RwfinVH?gfW`V2V;3e- zLv&T}`2BbM_Hmb@rOLDbY&Tv!Zy$9mAX0YXME-w-NH8iC#G`05cP#ELEl>va7|cj9t9W%)}@FT`}e?b9VPI z;Mdu!s39lO3^exM?EsJ&9^u>m*HBR?C1;tL#9)5|ppZ6k=9jz9D7m(b4;h@}2Y1#R zy?r^Eh*!?bgS$7vzt9V@?kYuvv`H#4z@xpFJ4*ePb+B%I|l=_TVKLW?W2yBGz4dUSyP@Q4MG2XEl&8q;}1mn VwaPx$*GWV{R5*=&lfP>daTvxwxn9Xold~luVD3`5I7*-ahk%PKc44#U*2!# zky;D@%1Vw)_nN(jR{%WyG>5LK_?}CIPQ6d1waUt?11{Zb0OTkc1pq3oReCL;wV4#m(|NLaB@8~va`9c}+4~>=93`7q@V>rd{kVkh&4(lSo{M2xv=4m%aSMMV z5{g4gvv|8$N+kezdH0N=V~Ycmqh?)G6NSAORWMGVxi${$;LY4&=!92V9-GNTr>tu# zZ)@KGXrC=iC~r4xhK|kFc}?sCK+-k!PjhpP=Evehvte4SAD0*vs%$sxL@pDw2>@X= z{!!x4H5J3O*k7Jz=-7-3)sWzMV~ra)l+3500000NkvXXu0mjfXY~02 literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/Christian Elbrianno/open_mud.png b/mods/wisgame/textures/Christian Elbrianno/open_mud.png new file mode 100644 index 0000000000000000000000000000000000000000..3728517439fb05e2e0337cfc7288c517ca480c7b GIT binary patch literal 738 zcmV<80v-K{P)Px%oJmAMR5*<#(%WtuRTx0w_3yoBW>3aW>>S#pD6LdLP$VvS|7YM5Q6U9rjS|Oh zY|m+*elGF`OP`kf_Wc{ZJU?UME&UYnmEkxhj0lG*^XbO13x;n)R99bnk^fhiVVri62bK^0c zENxTqG9;2zv?XF54}qo2c*uw(io)H>V^My8I3m^&b7l;Q z5F;NhEK`US1yfm}YaCq#OE0Kcq8jclYD!8tP4vS^E=tOoWn&nUupRWvaR$M6XG#lnr_;^(@XTvlNJRTxW3f5N4 z8Bir=<$hh`YeP}P93$?rSFXCkrB_}?h|_@(10sfF5bD}+*+eQM%--?l+*4^_bBw4e z?$g_fAqs+F4vFKCsK`7A<$6)GZZoa-RGOJ=i_0V1QHcdWaL=RA64*_Osq43=Ttbhqo*&ip?=Vv%8EL+Fz!g1~`UrvRhusNpJ2bu+6 zPRhy)hbT~ajMstW&N!SV+OA_W8mtvQ?-E1EL=5j&HO_Y|T;hl8n#w@RhTSRfKM%Ba ULi+5x3;+NC07*qoM6N<$f<4ev?f?J) literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/Christian Elbrianno/open_oak_bark.png b/mods/wisgame/textures/Christian Elbrianno/open_oak_bark.png new file mode 100644 index 0000000000000000000000000000000000000000..d8091cf945f8881ff3331cf0da636fd73fd163f7 GIT binary patch literal 358 zcmV-s0h#`ZP)Px$AW1|)R5*=|ld+0~Fcd}arU)qFfJkgc%SEjGf&GL1cq_5iX$&Ha1OsVy3whZ@ zGsE6S^U(XwyGcI2zdnEN;)ZUR&{PEgKq`&9xB&pnZoHb=4f=6LQx)jP84PdK4HKl& zc1>ok7*k@8E(HBJ!|cXlyXU|aQ8IFN z-OoEh_26ANBa&Vnr1Rxsd6ot{o|A9u5Px$Ur9tkR5*=wQ!#48KoFceyD>zB5Cn=LAW%99R2eRBNar{BS$>1Nyuk;q1a=pJ z!C(v`MR1`?Tnc&CE63SJyV~8ko!L9!VlGbt{nEvubaCK+onwB!m<0eB^GAyg0Ki1O z-AjYtos0&^id1Ti%ahPXee>izl41g_mYaX$aL642- z8c)*)I9x@h%@?ykF)jJ)0+%Pj?@k6UPeP5k$~UIo?nT@&9gayF4vhsIo z-V?b8T%!imKG1Jtavov&{)zzwUGPU{MGNS+p+&dk&+p_s62PoT2mG@lMOLH(%?#1o zs2ddPX|y&#e$L P00000NkvXXu0mjfBAB|Z literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/Christian Elbrianno/open_oak_log.png b/mods/wisgame/textures/Christian Elbrianno/open_oak_log.png new file mode 100644 index 0000000000000000000000000000000000000000..db9f99db754227aa476f0c6942379db42496a03a GIT binary patch literal 344 zcmV-e0jK_nP)Px$5=lfsR5*>5Q$cFOFc2I`j+G|3#Ml9c5PB{6(xdPx$F-b&0R5*=|Q%!4wKoEWEx}Xg;lxjtS1ab&8hxV9jj{O_`(Y+QVSZgi{A%Z5@ zgPmb_vw=KVbiQ}q%sQVRZzBLyO^ZB>p`t(a_$q$!n!mtAee3`Lf)wdI;vgGjC^b3x z{|Ykf>lQe6SR@fU?dw(xrsO2cP{P@6($QMdg22CMayNKW3(rrFT4l46sRt$w9sr2I zzaW_fnz3qH=HymV=75xHf;@{+ln0;zPe$Vk;2S%;_jv3E@9zFhU$I^-(Vu#rYcdNo zhwq;f>(%m#1G<%~Di=uv8OodF+4OGJw2+}>BIyvi!PEAD{ORx>s58EY6XpQG)vi;; zqC9Bhv~8qIM)hihJd2rJGnoDb1*h|fjp`!NR8*V#YMt#S9na@s>PPrmE4JM?@drxw Vo57n_m>mEB002ovPDHLkV1l5KrX>IX literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/Christian Elbrianno/open_obsidian.png b/mods/wisgame/textures/Christian Elbrianno/open_obsidian.png new file mode 100644 index 0000000000000000000000000000000000000000..20490c19afe0df7d11f67f922044ee1cd7544f63 GIT binary patch literal 512 zcmV+b0{{JqP)Px$x=BPqR5*=old)^tKorJ*PJLh_tY``Zqaa*?hYZ$Wv~((D5oFO{nkCSs(5Z{* z&WVa0HuB;iPC{03v`{3 z7jpdhsw2pB0f6g-R86-K2OW5`eZrl2RJ9huOczuq0ZY$k3~2)rBu5J)@>4{lCytz=1GnHfOc$mc4rsFSFt#4FOyYc zj24wQ*SBnbZveVe0En+*Nmlj#MCwWJ9f=`{(m|aNWV#Tby>V5o2i{olxqHb`H^81V zV+^hnimPJkyUT&0NtCkLKEYr21n!311N%tC6DOq9kAt{7w+evrdDn$@2MfNrz7_By zSPxX4dk$5-msUjqz#>>;C|YS@c!6;8mOe0000Px$8c9S!R5*==lc8?IFc3grs)2sMz*-VeMI&R8Mn=aAt#N~*N&AI;z`)2z_!c-k zG*D8>Y^16Jf-m+8*eaM%U>*3i z`v%~uxJZcxZsNnYt2b7U?*ex3?s+`Gh5}n`!%sdyPU6da$t0qHho{ez62Aww*jj$> z?g1#TZ&=KxG+obPHU(fmUs7q%6;xXGBUwQz9IPw39tq55P1E({rK0J2_VeYxlFIu7UQu6kYVR*{)qcJ{G?VuL00002BR0pkRfk zi(`nz>Esjz;XAv_-~V4IYklInj^@(u@+bb-ud4i!5yqy~l(;F!?_qmJ+r=drX^fdn zhVP6F42)`0e!M?%{=kO+H&rJHC>ydFaBea%IP;Su?9cz%Q{)c+>*wK7aGugxx^J$4 s_>G+>&bjgNCozQCPflTo{K&(~U{Ia-yXFw9Jzopr0Qm1ml>h($ literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/Christian Elbrianno/open_redstone_overlay.png b/mods/wisgame/textures/Christian Elbrianno/open_redstone_overlay.png new file mode 100644 index 0000000000000000000000000000000000000000..f969354551e9d3e6ef6cf4f9287649ec45b048e4 GIT binary patch literal 409 zcmV;K0cQS*P)Px$Q%OWYR5*>bQa@|LKpcJ1LgHXR6ay5|7^L>ybC zGwVBJ*Tv&*hnwvdwf#PS1If9%a~uG`ZIWm{l$^f-0JCj$Ei21?Pw5GvBPn{tLbUP_Tr9b=a|x00000NkvXXu0mjf D%U7=c literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/Christian Elbrianno/open_sand.png b/mods/wisgame/textures/Christian Elbrianno/open_sand.png new file mode 100644 index 0000000000000000000000000000000000000000..727e818185e78b4e12bf404250662d8a8e122c17 GIT binary patch literal 528 zcmV+r0`L8aP)Px$%1J~)R5*=olV6L}FcigqlNq`Tos`sp;#50`is+lKeoa4xpJ06xeDYCTR7ARi zG;CK2GYw5whS~Y!LrrXV_r8SY=G=2~PC8oVXGd!rZkLo1<3g}s9Jt-TTz=xw(>DMJ zUF4)$0^nBwYa2{#JlNC~QbqtCET`895$-5;*DQ5)XOJruCrEWVP{?SGh=LRVUF2S# zH5;Ui2CM+3uKb?04Z6q~ef;qDsNx}`sVmRw*xXg5jF9RSYc>Q|YbJfLlo7hfJGuWr zeX#S!)ybOm^?Das6sVhdy{Osrw==-5+g^7(H=puICf6lj<*dWG* zK*fm%JDI=u$*kQ0+yPs&VZS&aWrT1nrmmQ^JE9;Z%@VRKWHp@(-ovcz9-S_7tZfLc z)`))Q7dLB6T~X?a;P;7VeZmW@ZP?Bq46eGGPP!DFY1!hrZ(iK2ePrM2_cYsb@CHm> zp=!nG%jb7T7ngZB#Px$wMj%lR5*=|l0k0MKp2HTJBc+)TFbEk1r~Os)+<&-VimFK9k>EF;0WBID>jul z1j;JP5|G#xBT)yDMoO4EIJHKOTC+f7*={27R`x&h&wKCxpRtP03-#wWO$gh=ylQbj zyrX%Ze4pT)o&jL2qVobk^m_nw#JIe;Q!~`f?SsdwFw*r!p?|8)`><0pI%3RD&B|Ik ziRS=hGA5Vr0T_&410b(H;|@nP3z?jjwM@nsmml90T{oyPWikdp*M;qsj|kgC^n0kA zTUv{247L4HRGX{vn)7I)BgV8>mmf;jrV^OfR6Tp~3T;{C5rYs+fUbOkd6eS>{sWf& zc8#z-x^BQSnv`{6g(UGDQ{@r&!#ji(viLFuzzKXZ8RG;##q$xO-@^%f2H{zGrd1i~ z`l8TYwa-KAY|f!0#`PQkETaj+3isO4sD`VSgU8lW#L>TICBLFl2Vr|<9$JfQel4e1 z?kQb2ptsF2etvpa9Af$(wDo%Q01rX0SPu~35ic=T-`>^~$au3S4|Ry+r2IBzyg{W7 x7$>OI!5xn3mu;_Pbpju8oFL;3GTwl3!e0d?%6cN$8%h8G002ovPDHLkV1mmO;d}r9 literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/Christian Elbrianno/open_stick.png b/mods/wisgame/textures/Christian Elbrianno/open_stick.png new file mode 100644 index 0000000000000000000000000000000000000000..1030773b23f9cb8d10deb43bed15169deb8a26fc GIT binary patch literal 175 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|GCf@!Lo9le z6BL*uv3hanYRI$e(JLMUXOBxY#g4cBn|L4oZ>SaYzjdZ$hj~KC z=M~Q!*UW5eY`hrM`Fj7l9ae|8U)Pu1cEA4Ehj04K%9?BjAi!a4JR!%Jhk>DOPxbV! T*QO_cmNIy{`njxgN@xNAR~SMD literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/Christian Elbrianno/open_stone.png b/mods/wisgame/textures/Christian Elbrianno/open_stone.png new file mode 100644 index 0000000000000000000000000000000000000000..a9c56d5b1ad90db417c3d71f61b3d9d6ac4ea9d2 GIT binary patch literal 351 zcmV-l0igbgP)Px$8A(JzR49>MQq79SAPk&^fFM{rcq{m9eRiRTLMYNgO2NY(=G&}%If&+GGMV_Z zZ5#fql){UuiU@$5v#Me;F|%b^a?X7B-p3dKcrx3}{tIfYt+ngA04&Sm;aV%}-A_eiaK{(6ovJWW-_X_y%&skOQW@B0FHp67kv z`@R8uN_+2)=j_dl^OREPETzcIeqC3l?)yH*V78f&A#nvjN{M~iRO^E}U#(s3LB#8c-TebJ-PWGJ)VG)nGyIp^Mc@BKrGVgGh4_Rr(PxX{9h xT}lxV5hpeqcOoGK03ifbbznzzAa>3<{{l~1&bPFtw|f8p002ovPDHLkV1n#2p`ic( literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/Christian Elbrianno/open_water_source.png b/mods/wisgame/textures/Christian Elbrianno/open_water_source.png new file mode 100644 index 0000000000000000000000000000000000000000..03326167459d9a8ad01d990079b2d23f867e9f4a GIT binary patch literal 500 zcmVPx$u1Q2eR5*=YlS{IzAP|N>5yV7er7CqMnP$Ov7k2}9J()Uja>_>{f_Mf9@mwZI zOF#avo9xfuf7|_{=$DPA$mo|1fTqZ32TS}n8kfGkHC(Hbe%TPUmdW@%%``;@Ks#7! zEr~1Mi|aY%G)0COjia-Ym(LMOr|bZuarDbZXC+OMB|E^QS^pA6|u)Iadqgr`RIS5HR%*pXAR%)$NCC@2GMtI=pY{{2$ zK*q_>I|G@V0lYP|Ca2btN3{kCk@8I#nxf=;nmG$-3U%nj0qD-DU$y|zTf_aLxK<_Y zU=d0uptY7eo5&;FZwDJ7)>_ip5~hil&l9|$`!~>j*?5bRGgGn&fG_2^R%O!o7G-k$ zkcZAnZcOPe5F{Lj1>m-4=&YpHlKVv^`;l3#Wsoo$cPLi}>eg`b4sTa_^d3b0avqIC z9uIMk)N8=oHH^6hq2dgDIEh+^F^&7NL~lb`u_N9ZK63;2iwX>4OZsI?dTaf8AER+8 q$dOrkjmOpMlG>#wSIWkA==2c4o0000tzu+j zX>VU*kkAyJ_b_?(|M;^{PT&6X|NsBlYqz)5wP$8!MTP~HId!cuGP)U_e7$;C|8%de zd;@uqO$y9F5(fSQ8SD%`iIu5E3P$UI999Jea6tWMf+^tx22aJDsh2i#9ySnYec1dZ z?m(^9dx1%kQ}nbe82yC`=9-#>c$rVPdCdN(a8v3*ezAT0jT3JE+qLhEeDM42H~%D* z#D0JG$RI=Fwyw2!z_xM#jTHl8b_KAN zNS0&)*(@N}DF7Kt3MQ@^HfffI{bAPk3)OBeNPBm9*6&YdGoJ=z?K3c+lINYNALOlK zWMgS>Ut*BZ6rJ}ldG`PKvrkUn{`3F;|JiG|x74*~W@SZ&1(i8K-dRPB+ zudaLpd5}#COh6I_{sS583_gjKsYMEg_@#{?(m*f40kUr6lR#ls1&G{#xE-LNub7jZ z;K15;DdzviL~&n1gR}$84zHfHSbR*1No)Ahmhrh^BEN8RTI9x z)!xSTSXR>NzqrfFgJ%yc6?Z%QMKL+Wc*D!~pR!NNa(+3^m{6BuemU6QFzo@CbIiK~ zZ5xj&?y@v6o?y7JrbGXI(q(pr=WOZIUVuFUi6yc;vPZ#-x94(hYQe0;#V5GU*;}Ib ziXNCTA+E&OLE>4u0NYDtxA*V1HT*XhU()#Y%=W1b$rB_z_~zdR`7N()Wqaa;eLDrU z680!NvmfS3*=z7u!S=+jZ=%u7h934s77s3QFHZb5!Elr0jW37)@D*8`{Z;Vsu-`QM z<;wXI#tHw}mvYajlQ@>fX2vtA`6+9O@r28aI)4`>f2nEFzOVE=HiZZ1&vP#-6`q0p z35ls8;?JHn@|OD&eoegVg)Vc@|xO`Kz9Bk$tp$}vC1EZ-|7 M&#+@iR3G>ej~%*u)k3o3K!T4Q8%Gd%fv^{)Qu zUS0VH@*tZOfR2KL|3DTygHK{*YLS8=L>d@oaDXgrbRQ_pssNGu4>tr9wiR=d6C4;) z1K<5WalPYJdT=7(bPU}#Ipz6 z66>?GW-@n7OTwDum?|L1Ni7OXhjI`J>Vp(C>d z^R#+}+6>GSimg3#t?o@+*c@tq;$2NN=b}Fb7k)YZTi{}^ku%}z;X`su=1-7Z@S*vo zdw+dOaY9-SJ6}WAXCD6rRiM3>_;vYkz>f2Z@{k^`64s z-M5)G?2=s~Cfj@^=`#Oj`}<)`%l|5rDp;2MU0~2K)6v6z(|ur={pz^LFUW9o&%k_2o_D5xkhhAF zjitSPi9teBbl$_{+5h9uJ~@5+&;S4bXRqDfQrDiDl@%ElROZyR#>nVqc=Gk?UH#L& zy7CR=K{hEc14$V84`i@2_#{@Q7AY7)q=9aR17vBVCqQ9V1&G{#xGGTCR?O+0yqEWo zfk5k8oe9%4l`c*+CNf5-^tIaX1DD*8+9%9qV`FA9HHB|6<=h7HVr&L~Up!NKyfkoM!C!;Y8(*5QJUn#bTXROy z*XApMi{?vxJA9{MO}V?9NZj8I2F~A@i|!W9o&%k_2o_D5xkhhAF zjitSPi9teBbl$_{+5h9uJ~@5+&;S4bXRqDfQrDiDl@%ElROZyR#>nVqc=Gk?UH#L& zy7CR=K{hEc14$V84`i@2_#{@Q7AY7)q=9aR17vBV?Lc8x1&G{#xGGTCR?JCGaA2MH z=gzS7O?O$HJHVeIzC=mItZR;T2pgE_VIKCF6B_+U59P{9;&pE@$g} zu(Kh7j>Xvw{&oNUE94wI<|dNnaCvrGriW15OvcNn9h4ld`D?MgWWC9mq+L`f*gNs- zp*L!w_GkVp{8gAG^V`wH$9`j;!#C?q|Foo~7aigOy5N6Pjr|50MV=t`V(l|JGwPB) pCS2s_7Ebzl_{zaAi=WFTeL3_{!`lD= literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/Christian Elbrianno/sauce_noexport/book.aseprite b/mods/wisgame/textures/Christian Elbrianno/sauce_noexport/book.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..7ab5b486edecdd952175eec16d93e39015ab4758 GIT binary patch literal 741 zcmaFL#K7=iDIW9o&%k_2o_D5xkhhAF zjitSPi9teBbl$_{+5h9uJ~@5+&;S4bXRqDfQrDiDl@%ElROZyR#>nVqc=Gk?UH#L& zy7CQVKsG4=9R&yfK_U!E`T5zhAQpxkD??#vW=@VWSdtm8je!BAksGX0p*S2 lWAc~Y8m;GN&;9yQI-_XYIw8K(E1ukca&PNrnKUia(*U{#(i#8& literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/Christian Elbrianno/sauce_noexport/bookshelf.aseprite b/mods/wisgame/textures/Christian Elbrianno/sauce_noexport/bookshelf.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..2541e6a2c2ac6198257fc1710e30a9fb39f0352c GIT binary patch literal 1247 zcmcc5!ocugDIW9o&%k_2o_D5xkhhAF zjitSPi9teBbl$_{+5h9uJ~@5+&;S4bXRqDfQrDiDl@%ElROZyR#>nVqc=Gk?UH#L& zy7CR=K{hEc14$V84`i@2_#{@Q7AY9vmo~;FU7V4clcrz@k!FIK45T53L!_aGV@gBp zHqisBXH|e`{ts6Linxk7!NQOKtT*d&|EM81QG%i8rHgy-6B{jKqj{UtB={m<^{IgoQbt8#}F zE9=|;3VY?honbls{pIWb?JqZbhqk>g)(iTz{;?{X82ib?U#41|`n%t-{@;IIUETj{ zoo4@k9aYi%mSHEW3g2da6~0OBJB63cPR^2e z$FNf{mgh-3Q~K5aH@-+pRW<#6DRGyTvsp%WgN#Q`Hj|6|i8DtIZTP?KoY?=xTelo| z$arb_!o(l;TRz_TKbQa6-}7raS=*=X+ox@jcY3nZgCd2!Wm#GOCpT6J3l$y6awxi3 z{N=#6xi_|bvfosD;#b1A#xIRm8tyP%X5Yjw=5A1a=ui6_zZrHj{yV&4yl*SDYC1T$ zA>oV&KuBmB z9BQxQ!{)Vr?kWWvzl1c!_Qe_h_S>J4>M3Wq znQpcDfW*w+9>+%pd+csY`xsB)Oeo`w>K?4fTO}^h{KiqNeJ1;&lcn}&c%QtAkDF?=;FtN8B@KsX#Qd#} z*6gmI@Gm(u@&EIq){SQw69uH(qBlK$P~q&XCh`9LdZx#{p_~ak40?8#qbtC!2Ih4j zKzB7PFpv53nLIdZ*0txqbHgh~i~C_rdgmO}B=~+gCK_G%<@nK2<6V}m$U%u?->(ZR tuVA-*H_`BfpLOU#$A|S^UxJ1HEBp^$B>$w$>+4|y&BD$eM&-_D_W_gHp$h;2 literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/Christian Elbrianno/sauce_noexport/clay.aseprite b/mods/wisgame/textures/Christian Elbrianno/sauce_noexport/clay.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..dd85ce337af1f8dd4560c47b05033f15b503231e GIT binary patch literal 511 zcmey*$iVPmDItzu+j zX>VU*kkAyJ_b_?(|M;^{PT&6X|NsBlYqz)5wP$8!MTP~HId!cuGP)U_e7$;C|8%de zd;@uqO$y9F5(fSQ8SD%`iIu5E3WgVe999L0)PE)j4GElzIkl5Fave6{arwV5``M+v zOPm)>SlC(@)72&(*T1-Vqs9ECmrusM`~C68{o}dSbFDuvGCqF&>(9fi#&&`NKSztN%emqn~T9IF*!TED8Do>g&U}m zRRN;lKNCzL$j23Pawi)KxjG2AoL4Pp+ZYrix$%l&i{FE)I@_=Fv$C7@-uQg?Iltz! z&HCE=>z8HPW!(POyzce7&*wcQjOQt|#ohm|ulN45&3&1lx3}5uIn%sf=k#*3Sp^p* zkAHmDd}bqia@LB~;jb1?uBle>t2M1)ue!GQzC*7O`@GLrCYQcp*SGwhIV*3)!ONA? zEczasp8vvg$^Ycl>T{WV3jhEB literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/Christian Elbrianno/sauce_noexport/dirt.aseprite b/mods/wisgame/textures/Christian Elbrianno/sauce_noexport/dirt.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..e7f4ae0525aaf3f9c91c6aa928d3174ca096f188 GIT binary patch literal 632 zcmbHvp3TVb(x$T8uZku_!RZGy`d%1Oq#RPhw?ik%FN*SQ;2IZ~&6#XGkwfEH2h9&&VuE%}p%M289f( z0z}P!xN1;HR?I1#tjNa{$m4SUpkRTDg-3vfjdzpVqHBe0EPc{%EXAL-Pv0|T|DwoS z_x+Y%HoDvQ`FGu{_3dB(SiHaW-Skbg&NPYlH$HF5H0w+Lyj4CO1NgzpXt;7HT literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/Christian Elbrianno/sauce_noexport/eggcorn.aseprite b/mods/wisgame/textures/Christian Elbrianno/sauce_noexport/eggcorn.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..54825ec5b94ff80ec082e18f4da5b53665923d62 GIT binary patch literal 529 zcmWe+Vqkc%l#xLI2o)F@85kH+fEWRQVjw}VJVKOutcgI=e|=;D+sXnoRt$*Q6~I;^ zS&{{0vw&Qu0AwgBn7C@#q*)sFhgsh*RJ*w#?cL#7zdxDHd>W9o&%k_2o_D5xkhhAF zjitSPi9teBbl$_{+5h9uJ~@5+&;S4bXRqDfQrDiDl@%ElROZyR#>nVqc=Gk?UH#L& zy7CR=K{hEc14$V84`i@2_#{@Q7AY7$0&-XtAX5K3G>ej~%*u)k3o3K!T4Q8%Gd%fv^{)Qu zUS0VH@*tZOn1Cb<{0B1F8GI5eQ;QS~6@VN}X%2?`oD_wU)Z!9|cA%f&09m`yBcL#= z0z~dV+!9dOSIkLHIKazu^XC6%136WT#^pPH{5SD-Hc&gpGodPl=W=%r8;`cJ!5{bQ zx3$iGtk10Z@ZbJ^w858KCr%_J%#bwLt5B=JW0X9%nXfCZChfqN<}U{f&hXS!O}yLi z#yrTN%0^eONP#Q)h4=%e?!yPxYfJy1KU=I@`0$yAm;L5XnY$amG=4bCnpt6Zf@i|q z7r*Yy&SO2+@}+shyh##XQVcU4*VH+Oa`t@bSTlcu`U0^+cA6#Z%Bps5E6gG(}xeiamWPDD+nL*!QznR?dr?_+NaF=x4k!rEm_Aa;L0Hb zkN)yyb~4GA*S}V3T*MYB%j2E>soBtnFH)c9@RbIGU9%lN9oZo(&TzB)3@|c&^B*!Z zGW!2@$`JztAK6W{3SSLAy!)``zq$C5#Dp1jGwdeJiw`$DWN2nre_}hMdt-@Y~;>0q6*Y-2wa{ej1$#44Kagm)% dJ|afx^-tzu+j zX>VU*kkAyJ_b_?(|M;^{PT&6X|NsBlYqz)5wP$8!MTP~HId!cuGP)U_e7$;C|8%de zd;@uqO$y9F5(fSQ8SD%`iIu5E3Wi&O999L0)PE)j4GElzImrnMyb{Zv{BKVb+S>Hh zs`PwYa?lxv>)xIJ=FM&Iyp%sZ@{7FN;@7H6ctw5(RhygLX z0@z9O1sL#B6%6{U>lo4%jOuFcdj6PUE@ z{b_%W|7HD-+gDybR(|=w+v52V7WcL;yDC0s=M#>&D(lkeUCbj?>i)%?@^-AnJBm#Wy%^T+t!+rQJRzuU@bt$Ex% z59qXC9~r@c1qy^dAci=Z5yi>uKqn_BIIzawk^Fb~hPd(3|Hcy-99|u)SoGt6|LnE@ zm1no|oU7zY>}bAn$lwgmjLH+g{_Wn;aMac=pSn`w z3W-fO6^uW;WL??%@cH&>ieDD(n9S(X{DUWgL9ei+_QbP=uied<=kgwsH;?|`zEMA|E7_EJZrkel8hpnT zj1T0P{8cbNXy9Yt!ym+b=zP9z^NaRRiD?I}I=p4rnE33#7sX@|;|X_ICbyq#JllF| z@oRVS=1%3={0!}DPPr~cbK+DYoH(D6_kobJSo_BFm0Sxu;?Icu=Rag%*5h`K{}S^d zgW`m=178kZQGV@w%)t0TnIFrm#z(*)R(#{bA%8O_r8@8q_f>YVGdE8>+uC{fOxsS` zG&2u5$>ys-kImqGeE7@a*Us1aeRq|N;-($uYZ`tX%z0}t6vk|!jVh^4Uk$la9Lu&nrE#A#NTdF2WL28LO!;9vd z?F-NxH-QMpInHQgX;?QebNUYq#l^Uq4REHfVc!G)>G$?kJCf iyvn~n*NiOMW;0K1zIdYS!R78pVm8m18C=Eh%K`w@m(gAT literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/Christian Elbrianno/sauce_noexport/grass.aseprite b/mods/wisgame/textures/Christian Elbrianno/sauce_noexport/grass.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..569e9b96e39f4813c976a4a2c3da346f6872cc53 GIT binary patch literal 509 zcmey%$iVPmDI7#E9T@*w&psNAkea2MeL(sjpLFM7xziRyswSK+&e)rMx8xLdn+Um=-?Gk?2xb0m2y|C%{ z_DAQ!bL!)HmfezC|8=LF&C!Du4>iJzTkK2r#O2h^?B5kxXS&uges1!awi`cW?VkRg zQ~T_J;QPI4AKx^|g|hSBZ@k7We&%(HxBkBD_pZe|*Jb@)`%6}Ez2VHfZJ*bqUsc_I yf8INT-GOPMH@-#nNYzc>$6RJSGj#WxS?Pbx+1JjExmmxpF30L?E#q}jj&}ei9f>*s literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/Christian Elbrianno/sauce_noexport/gravel.aseprite b/mods/wisgame/textures/Christian Elbrianno/sauce_noexport/gravel.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..bf73e2183186f1727d9337edc4fe26382c780bf9 GIT binary patch literal 398 zcmeBUWMFu(l#xLI2ss#l9EKDiMgVpOMvx#_9wACS79Y^`Umsb(wz2??6$4^+1+bM! zmbd`fk_zll5jG?l7&9s=>Oau!DJej*w73{Z=I7@F$=23ZAh~qz-2d`Gr7Q}}FbzN& zD8aza;FDOHTBKmu3goaV00|)Y&jg_%-maMA>d(n{K!JnX_Q(Ip;TLi}7JXr0^i)5{ zD>`#ZLt|uIBr(D+M=QuBZj!It}6aMt0YE{m=mpAu$)lEDf nD*Lr(V%@910q=h7%B;Wgc5Y?gyBkfFvAbiw)i6x?$!rJ!8G}(G literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/Christian Elbrianno/sauce_noexport/leaf_oak.aseprite b/mods/wisgame/textures/Christian Elbrianno/sauce_noexport/leaf_oak.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..04407f0d3cd77f7eb1750341ad84fcc7844938d1 GIT binary patch literal 450 zcmX@a$iVPmDI)6@_w(WO2Yml5 zn}4qlur&F=vGGvi+gQDwTef|(J8tzo|K_&jSE9Gl{eHf_mt6ZcT;TqjKwsCVt?6q& zEq-sm=1XAvtM$b%ulT&JsXoE}@apZo6ZpPJalh&x-g_~p@_2_h`_9h7{z+v? MG54AIHGZxJ0N-1A=l}o! literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/Christian Elbrianno/sauce_noexport/magma.aseprite b/mods/wisgame/textures/Christian Elbrianno/sauce_noexport/magma.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..57b11f0ae88a40e1a8b79c3d122dcfce5c70ed4a GIT binary patch literal 529 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 V8s?#u literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/Christian Elbrianno/sauce_noexport/obsidian.aseprite b/mods/wisgame/textures/Christian Elbrianno/sauce_noexport/obsidian.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..ed072d750d2c998fc2965cc797511829c1f9e045 GIT binary patch literal 508 zcmeyv$iVPmDI5(HG}?M?P>oWoZYhSe*X8#*M2|Q8CDv; z_nYypH~X{Jzq&O2PV<)uU#A#Xzo~w7$8L7>d%HBl^`3o_`qhWZ)9f$&IwSi1=i+pJ r|63d9Cwz3G>ej~%*u)k3o3K!T4Q8%Gd%fv^{)Qu zUS0VHG9a52fPn%B|3M-QNr}a&@*tK1(7{l^%m9*OXYfg^Of6C{RsnJ_rFme|3eNcj zmAH)0$;?aL2Gq~003?9mKin2j#8k}boxG8^!GMP)vQaUjLGnfmlT=#*pV)#Fajl33 z!=|1umy+$&ChBk>EkF7=WUAfYNkZXiI;VdIKT6EAU%z~c`th>Iv)U@FH}2DJuQfkD zUB9&A-mm%0HaB+7otM;Js{Q0qvFkF`Jw*+va(qu-es7Q!Jl}UBS@MtNp5xEg|2VO@ zOrdB4`~QHq3Noh-mtT~AU>PbXU0GCYzT%V`UmVc2tk4KUcXe{Y0Y0OD#(&(8SxgaJ zIz6KJ!%O89wvAOQ7s}t|3Hquu+i~5!hfSKC&R&ljqCWbsvi$LhLD87w<lqiUWM-&*p0*+yY&ayYu^7(zZ*gK0qu$peGn{*DcU+n9%B|>Y v(q-q)x}q;ivkk9&RlfY>#nQIAptB29c!egjpEzrOoEwQvfoQ6ii$-Y|<ej~%*u)k3o3K!T4Q8%Gd%fv^{)QuUS0VH z@*tZOn1Lh={0B1F8GI5eQ;QS~3xOO~1&GvtCI}4)oQgTg2@3poc9*~Z-;{az-{jTd zL0=E_H#FgxdAE3HLT&yN)ErR znlZ=b*8IOK?_9ht8y;%+efGn@FT2m&wd(5L`l;4@$?0AD+H2SK-4=asxr*PcX07>M zwV8V)9+$0GjI=1(f2r<}WaX1BKbYr#zkEp0aHrnA6W8a&eE;lwyNhvMvg~u_d3*US z7Tejq(Uoh>%$s-VWA&Wmki94LcYY9m?qAa>S+4!)IDgp7zT3YQrqvsmdw;WkH|zRU kKeu;Jzu!AO=iiLE_m|pl+>*a<@&~8+pZ+qmeeiGr0HeOA+5i9m literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/Christian Elbrianno/sauce_noexport/sandstone.aseprite b/mods/wisgame/textures/Christian Elbrianno/sauce_noexport/sandstone.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..c82aaea0000c26fa6e3e2cfd88972a8dc1678656 GIT binary patch literal 607 zcma!NVqkc%l#xLI2o)F@85kH+fEWR|85lu=V0nZn^;q|TrvLiL2DX(AXsj3zvnznD zM6x6X$d**#hKg_@$-tP~*5?0bU^uvM5|DhjZwHV(e6kNn-n%^)NWMEf3rJo(zXBw3 zXB&`wa(D@leEnwMe|ex0EDFppgMc(pf`OgEC$TcMNWl6Hnlz4Tc)%6kUP4#!X=4e I_vbu$0LkLG@c;k- literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/Christian Elbrianno/sauce_noexport/stick.aseprite b/mods/wisgame/textures/Christian Elbrianno/sauce_noexport/stick.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..4af425424561ce9b77caa26016add888cb694828 GIT binary patch literal 389 zcmZo=WMFu(l#xLI2o)HB9EKDiMgX7~NDwTK5TzcA6=?dek1SwYS%Aih0WrG**h(Zz zvVd$Bkn0qH3?&5-&XjHy5P6J3Q<6C$pJP1G4rRm`};`&eRX`Rxz@% zw6`xYNN9@Adzd`?fBe}er*HrH|NsB&wcA_j+B37VBEy2poVwN+8Qly|zFxhnf4Wy! zzJWZ*CIx072?PIu40Z;e#LCnn1;a2PhgAV0^`8ksLjtE_PI7{RY=ly}-TAzWP4)JF5~Imh{K$Wym~PZ3_TCXjOy& literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/Christian Elbrianno/sauce_noexport/stone.aseprite b/mods/wisgame/textures/Christian Elbrianno/sauce_noexport/stone.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..dd1d8ccfd22ab46241c627c1f31cb251e56401dc GIT binary patch literal 3049 zcmb_ddsLFy7XK6z9|$yMS*f6Tvxg7V(VS8=GaqSVHI0wS6ce(NPyrL4==h+?Ov6bj zOlK-Bt5M5L3lRmoI)&xi$xKKx^O;J9ulg>~y0^KFv+h6leCs>wth0Y-@855qea;!y z1^{uf3V@VCVBPjs?$;{`rgV%KEsnl%8o$$2Z(quzI_f&2&IJ z+re|o;QgeLrkHOAXAQt->36|nK_APn7d?k>z&r(e*g-dfMZv`l37-8*>Ypm}FVva0 zbp#lg+O>*xeiMQ5sWjDV(`o_e?Re5UlsHY6s6dwSqi>CRnn_Cs;%aqQC6!nAW)}J`a!_#5nmOxx7pvaJ9-j^O zO|oY6RgX1N;E`%B2|FTXgC0uZ(}G94f|o&E)dn-tuA4ko8!FG?jh-fLGVr7Io;$} zw@;0xH14qX^U^lUCT{S6F|Y~F2u7?4gqUP(>@7}m>CPO3=Gc3~GXvrL`GAD-{kvoeny{HwZtSxrL z%g*cgiwWbfh{Npsi6mcC;@X?)50qM#EvY3GSFiQXwb*p=srekpE0)gDS?KcFJs4B~ zEFimf|06mJi*&Q|+CQi1?Tu)3vxAf%@K~cnk7<9EX0x1c&{Y_$1=z5dYNpb`fYu8# z^kR}b`HihJA=*AUSXL16<(c)j_Kr1P_Co}qykVzO&&^zJ+UjBW+K{?kV-CgUM9pa* zg0p#T?FTSIr;4v#ynAu=Ot-cf00?}*Uzk=hmp>m%>_RltO3TFxmJzSwzB~#^O)_|K z$-&uuhpT>IpTm!t>=^P_KH>or+L=dw{gzgD(f@~hK}s4gUuH@IR7RVu(ZGjIqjE5(ZS`uY~fO=*GJ1uIMano13-M|;D} zih~%xVud5SpEp@mX4Y(uD(dKb)#099!w4ZQ92cc?r8h&BsTKET?!g3r{U(-Gq5&Q$J;o zfu1KP^Bm({iki5*GucCLPSlC$GYhJ2du!*jl!7#t+`{wBeOiE#hO47n1@AWW6c_B$ zidmy~waqujIngffNYSC+S~#-dA)9}W`m%a{q(D~(bdDbuufH}xY-JDcuoxAH?s1{Z%>*X!)DDaEVREbb_N4EK9)RZr2>t%D2A(v$tN zrq(LmJ3^_Ckf6`QmX6@>H*)XA`z1`6=3}RaCmfp}`Zx|g8q$mAm0c@aUd;=+sqR1% zE;l{9>vq@TDVhC^byl1fVdTDT)@x0rcBgB<8`ALA<%tF@$-P@Hq}kXIK720xhu!SAv_n2Bmd&@Xkt z=qMk6v6k`x_3F6;0_vi83b)V@|s$;nUG<~??#WI_Jadm(A=$D z+RB|MjZg~ef&2oZ+G4;fnW=rM{Mkh~MY{~+0&Px88(wyQ`7RRrb$DlfQ(hr%B6)aM4@1A?&AjuGuOxOz0DzNCY^6&2 zuq7)yn(3&;cV3xBu{7FO@s&1ROZ$ZRel>?=WB;{kmS_!^-OFoF7rRfww*=$G<2DO8 zBaV&q^j6%1HXnK+#T$@^XD4|1Gf#8UPjo*#Jv@luGy&FyV8B8&+@Xvy`LLIdxEJ&CG!GX z8w~sV*fh=R!Zt0=&%3^MBDfSiI%7#StgK9@9LmnUz74b)L7w0k0zI&?|R~Sfc S5q|91CW{{gRWl}JhyDc{Qkw<< literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/Christian Elbrianno/sauce_noexport/wood_log_oak.aseprite b/mods/wisgame/textures/Christian Elbrianno/sauce_noexport/wood_log_oak.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..1a5ae74984ed588ee84fd89db031019bcb67f6ea GIT binary patch literal 483 zcmaFN$iVPmDI*A5N9@d2CFC$Z zO%`tcc=2i~%j`uDRQziV)KvJ4g=6Jr$K^;o6O*`q*@uf&dADGsOq!k9-y3(j-^iu> zJ@Jpd^Wc}q#r8h-9E)FXzcT&!>-r6{VW%{HIaU?CZ2u`9X}_t;nKyIC|ICH*(#Mv` zFJq773%}(U#{9|t1W(HMN8Q!}w~vR(I@_=N!t5=7A}MYfm&Mn~T^AqAhyQY)?(A=` VV1B@$YF}&T<5Ra8Ohga=1^}3RZk_-D literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/Christian Elbrianno/sauce_noexport/wood_oak_bark.aseprite b/mods/wisgame/textures/Christian Elbrianno/sauce_noexport/wood_oak_bark.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..80964eba0a335b4201b6ca80c54cf3c6102ff9f2 GIT binary patch literal 496 zcmeys$iVPmDItzu+j zX>VU*kkAyJ_b_?(|M;^{PT&6X|NsBlYqz)5wP$8!MTP~HId!cuGP)U_e7$;C|8%de zd;@uqO$y9F5(fSQ8SD%`iIu5E3Wf)P999L0)PE)j4GElzIjxfo`J5C5Sl2(~%+Xon zlVj7sIoEu{r+?xHK0NkTo1Ci4vBBWOJ-wdem3493EBDWN_Pf&d){moM#W}s3%fBvu zxOra0wUfW+b;T#on`~)1F?Mg|d|$gNp?5-_tn<>R<-{v zsl5NRI=uY#!t~E_<$JzQEZ_TL@8j6hTIDMppDsQnd;d@0_xX$X*Zt0qGXFaH`JA|Y J7ndAe2mpT)mPP;o literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/Christian Elbrianno/sauce_noexport/wood_plank_oak.aseprite b/mods/wisgame/textures/Christian Elbrianno/sauce_noexport/wood_plank_oak.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..859e97928f202e1e6cd37de7916a5cbad684e420 GIT binary patch literal 487 zcmaFP$iVPmDI1C+^BzcPpRyeZKO2=}oQh*NVS`KPU8N9^YZV>g&8EH~(!G&fNdPx#-$_J4R5*>DlCchgFcd`(qH6~?6XQty4cy#e!VhzB)ddq1KLGy4n7BDGl9)OG zr7g7(U(x`V-qV-Y8!%GQ0SU0(FIlfPJYNs)**oa|&wS=sgvtyI%%jx-d^LB8XPUN8 z+B-l7gVPNmX*cKX_fCWW6x9cSiw8skQi3enXSZSz%DPHrU8PFXyHe((!)z}X#JGhR zDBZIHU?K8>W&p|w5HH{#h%-o2AU9jk2U%zXbqzMrZowO6yAxMODv8%791gqvdsWrVSskhlAAd@00000NkvXXu0mjfS2=O6 literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/Christian Elbrianno/unused_noexport/bags_bundle_closed.png b/mods/wisgame/textures/Christian Elbrianno/unused_noexport/bags_bundle_closed.png new file mode 100644 index 0000000000000000000000000000000000000000..c655de0e59d5f83a3934a65f54b36edef1e120b2 GIT binary patch literal 448 zcmV;x0YCnUP)Px$dPzh5lT9xJQ51%snYPpEw5lyy>7^l}OUYQVu$2(8x3=R?So;V44J0-a zi8QegAy(oeRxGL&ni907smfSXubFW--qo3N=Xvv<`=Q~JEiA|10~m-~02Hrln!E4$ zu!ZG3eJFXUd?xBKk%cWRXCk2kQ2z=k;g#tj0FLk8DIAtHWrC;?VAwT+ENcNjEK)I+7G~Jp zJ0U+gLMo_{jK`#Lz%YsE9g?O_CK1`t{hJ7IdUOUrE}K>@V?_I9tplFuJxz%im5VE- zfm_N1|54E2s601*DibP?a`W73H(vp`skOQW)pp1;hTlY`hk6J2xd*Cagzkx?Px$V@X6oR5*>5lg&y3Q5462Q#MX%CaI$^i!%3-LG6QjfIw)`HfY_Z7w8#+T=fF& zg9xJ9wulH?nGp#k788w@A2BV)d%L4k)_-;G;hf+3;9Lzwxm3he-`V7-=T91{o8tL{ zCTwZsQW4i~w1|X51SvCN5Hp4)P(U;_S?E8IP%ag5t++0O>_&@vvl9p?RUHcRX#mz1 zrvO}8%8KildYh6x;!8@z#$-h$QAz?#y$wKN&LlG)B5S1syXckN0YKjLcAB3~{t79c z-4Qo5ZwJD;x3$9d?vXd^WwqPBO(GiZ18l4=aBz6x9|0g29|FLdj52FQ13UOkq`1Gj zmhT~9?ChVixxPGbX21uQ0I|eD64mVw*AEa~{I&YC)9eSRT|B;ZC|8~WA+7qWw3SQz zPOiK-UCV$UAWJh*5SLi7TcDh?ski-*0G-@Alxy$)-`E=z(><3sXH~~HH4Wek^u26o TZ?j1p00000NkvXXu0mjfhAy_# literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/Christian Elbrianno/unused_noexport/bags_camping_closed.png b/mods/wisgame/textures/Christian Elbrianno/unused_noexport/bags_camping_closed.png new file mode 100644 index 0000000000000000000000000000000000000000..3211136f0c508cf7245da23a78d41c56f950df98 GIT binary patch literal 436 zcmV;l0ZaagP)Px$Zb?KzR5*>5lf6m zI`KlWDgX>Wa@rEyr~oqHkWNf=Vq2MIeRT`Pst~=uY1q=_>HUk{b&DB$(oZCZrF#Os zBwL!k$$l`Bv9N1PlbUM&n+&uSOvfYu<;I&BnC(}f+EAXshu0RjwMWmGemAs&nyU9D z%*$^ME}zM!BH&Tvr2Nq>;HMy)if~>3r1H}0dsmLjk~K`_rPbd9FYIIzD90t2KO&bu zLOCuQ$q=h^HUL6T0idRu=!v8)!RBIopbrYCcXW)TiTVthLjbJJj(d`o<06Bi-Gkrp z^|>*diVz<&JQYN(H~@RcXI&@$#{*CG2hK090H0;DrOAG&!S+hbbA-M4^K0*7={^7~ eOpO8jS?M2EoqCFK;-|g<0000Px$I!Q!9R5*>Llfg>EKomvK#1I2DWiX^hBNpva7j~1CKj0S>T>4Q$Kf%3!(3M3H zw?Y>}1KLs;kZ6c#T(pzMv)SsZdv4+5!_`-;+dY!e|j2* zD#_*obsf|}+Twp50LvLHR+w+3+YRe8u(LvTTRs3+H@8bCE<}EX+2onK`v+i6n6#ZEm2w$+m2((I$udl35q;Nl065um e0P;xdIDZ2y@@C#;*&_o00000Px$QAtEWR5*=|lTS+mK^Vq=D?%Gah8|QF4D%-BO`)J~;GsSF1-y6Z)^`Xx27Lif z(YbEkwnHF+C+pHkQY%So_=jye)NbzVuJypc%)|S8=AB_iLs6qzkis6THh1Df3z^gbf1%57Z73isCw4#_U<6EgXNG`oj|d=R+UfAeR2%NHnzbc4}Q=@|e3002ovPDHLkV1nt) BvSR=M literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/Christian Elbrianno/unused_noexport/bags_messenger_open.png b/mods/wisgame/textures/Christian Elbrianno/unused_noexport/bags_messenger_open.png new file mode 100644 index 0000000000000000000000000000000000000000..3befa2961a8f18672ac69e6f4bb41a2607db0e6b GIT binary patch literal 336 zcmV-W0k8gvP)Px$3Q0skR5*>TlD$d;K@^3*2@BaJ5yA!xx)8{gLAF!a7qGI~%4ZXN0V}b$vk+n- z1koxA;t2i)#H?;yWGr-t2^wY$p6VXve&=4eBQTW4p#mtT1ui<3ufj9oZaesP!5m~( ze%)6Z-d>NC6J;okLnW%>uP{Kj9U#&;RQE4aXJ~n;uHn5CDQb&Ou2eIPtIlq7uAkn% z0?f5+`mN7v`GU=jkp1)A8j$rH><-4W0RX+IL&lxc768S2$=YfQ2$lXwy{KaaujJ1m z3tiz~0;(%`mOib6!H6VkYJYq=769JP(T$MLA1doN=E6fcA&Hs{KZr literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/Christian Elbrianno/unused_noexport/book.png b/mods/wisgame/textures/Christian Elbrianno/unused_noexport/book.png new file mode 100644 index 0000000000000000000000000000000000000000..e743a1e35725fc8e6bc445d36bdedfaa5a2c4929 GIT binary patch literal 280 zcmV+z0q6dSP)Px#(n&-?R5*>blfenXFcgOWlp++{B0>fA?osFzJ-dM$I7`=X0y}^kxPnQrP{j7& zLGnCQY*QPJg8wZq@B0XO3Gk03Q9wx)kWH`K2XDr+$BGjGWO>O<0&PQwo1_JYN%SnV z;k4ke6){`bBx0sx+axVGoI`nqPzpk+ui@S4QcvMnRdv<(0RU6Sv4W+Pa3_Oik~X3? zyk0KqON>L00AMv7Y0dMFs0(L#$+Wq?6K&7(1qM0~$t2p}s$TeG;?Scw^eBk}5<*!2 e52NTO_*3prYJVnjkQ}=J0000Px$R!KxbR5*>blD|&EP!z_0C5^`L&tM=C#uB?3Tu4d+jLbfP@&r5!Pr&Bj0}vgB z*aR0D9O)=F5QtEu45rti&~TvxG5W3d{Lc5Cb1wXcYU#MBrQ_n)a9h_!Ti3;=QO`8R zMm^J%8Y{bSBbAjJp0!#O4FdqnvdHK25)%o7o715Lmr5lp%VIJb5jxs#?6$54u?@oz zLI^P!4E9C?PoF&=UqJq6(Tdl3o){t{QND><%Q z7i(*@%&{5@2MLOWf|xi?0Ov9pUi$r@@G5a40M`5ZTm1mf?(gl6r|eSz0000m;6Iv@t#(_XbP0l+XkK`Z6%B literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/Christian Elbrianno/unused_noexport/bookshelf.png b/mods/wisgame/textures/Christian Elbrianno/unused_noexport/bookshelf.png new file mode 100644 index 0000000000000000000000000000000000000000..6005e1111f22226522399fb91f0f5fe60b05a506 GIT binary patch literal 687 zcmV;g0#N;lP)Px%X-PyuR5*=&liy2|VHC$do3rV3Zfjd@x+ODFUNx6SLDVE@Sy|AHMqzi61;f11 zy9|PyHxWes2a)7$8HD|yD7s9WEkjVV{84l2#^yG4TW=R{d*@L4UOnfW?{m(V^L-vg zYi+SuZ#R%Z5*3kHLXJy{3ITXKxeS0sBLYyiyO@R5H59G2#o~A{&HpgcZs+vi+_t=6 z(V|S|X|M{O9WSa(N4M2n-Z++~9^6CK04M=EI$G$r3Al%cQoW%lSU9m%7eQD%#rk_Og%A{3vyowX8%FZ>(nOYLNQZ-%&5e{PzOw7RpIN`331bbLk$K8bMhQF%Wfk}b z2IPqbTO&equN-?07GxLK+>621D9Kl;P#kw?MT_m>9gMWwX*pnHClr;Pz$$o{d3R5;`l15>qgs?2SOpIgq3o2za24rU9fwU0`fUOL zfxsI~Rc>=?v`C}2kZ{csq z0^rf>2TX-O5jb_1l?{cYK(BZ5@$r2&e)w{v+f^#g7DyKA^-fAk8|2#FSGW0-N}*hd zN?Wh__aRG48+bbNknfQ%GTG;wme0D1oX0DPx#-AP12R5*>TQZWw0APhXJZb6wzvZ6cy<^L~;ctDl4B(p_ky41)`psm#21jau5 zI0HXI$;)6&YP7~4Bf7o^0Lzpt-mt?_UOp>{o;J$4N0QMNM#|R=i zb>j)UzR$#0nZP6fFj|||5OPd*B_gzKixUB}&fcrrvYfO_X~jP%jV-aqn9pknXMJ+a z8jg8Yi$-e`>wIVBX^z*-{5ZLl@=eD7f(QBO$XnJxeT002ovPDHLkV1i@ZewF|L literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/Christian Elbrianno/unused_noexport/fire-horizontal.png b/mods/wisgame/textures/Christian Elbrianno/unused_noexport/fire-horizontal.png new file mode 100644 index 0000000000000000000000000000000000000000..cd4077e5b3d3e7851fde8b0b4d09a35bc834b559 GIT binary patch literal 913 zcmV;C18)3@P)Px&OG!jQR7i>4RJ(5CKomW;mnON`H+<$ z`GB-Y-faj1%dIJpA|V`ENBrK1QyY7dE;bs|y_FfV`bHDG7-@ixpNAU9+$Imd{ zi+``yM{x6_2pD%=F{`@(0PCs-%c}tZ#O0+-J|rIH$M>#y`+Xt&B&&?mYtZ1!HbiT< zFb?&p5@2H5JI0|oNCaJsQD{q(avX8j6-3ziV`lK0924(N_tb;(tFY=q(Dx{`C1&0e z0O+2_Qj8?4xm{pl+VF4AkPfD@$R=GYMSrea`19j0_;5O~S=|K!0OS0dVn?AZDBn*q zOiUXj80By7E?_;p$U0Shj-O%BU%H!^Hk#W7I0=4|VODohWu)V07^Bb@t>MDh!CvI< z%dxx~{3KJ1$8&i;kD>hLcA;#m{@cW~K|O%nBmm@mn{*ArEs6DS&X6X#a9+KEG?`-a zl#6$A|A6^0$^{7^?_0x#5qDj2{+LM;W*t}NlYj(-gys1Pc^y~jk1-Shx$|@q;`?&L zl>PzW4>CzE8Il`^HV;857SGY~W1QD%ZWmIds{Z~U7nuyk5692vvaV`nP|=58Lc-?{ zN^=>@HpHy%!s|4U4yJIT9spq8i zMkps$63Vu7R(B;qbQBSTa&RY94aWQLt3jfWsD$UFd0o!08Gy{nK&@pMw@&O;w~$mHx?JXwPguFvPy8?d%7 nd&Q%eG?_~Alzj9t>j3`%=<|&bX?;g*00000NkvXXu0mjfCM&Ei literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/Christian Elbrianno/unused_noexport/fire-vertical.png b/mods/wisgame/textures/Christian Elbrianno/unused_noexport/fire-vertical.png new file mode 100644 index 0000000000000000000000000000000000000000..8b93a1c0a2de980e6a5d6623d9256d6eeab323a1 GIT binary patch literal 1068 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 XG4eRgZ3kC700000NkvXXu0mjfDLG#h literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/RedAndFoxy/heart.png b/mods/wisgame/textures/RedAndFoxy/heart.png new file mode 100644 index 0000000000000000000000000000000000000000..fbb64aed55fc95d6a929c31f706948e82156554c GIT binary patch literal 569 zcmV-90>=G`P)Px$^GQTOR5(wilTB+AQ51%sJ0F=z6DLhYEz$^rJF(&q5Cr$S)TIkSaP1EeT_P4E^UQc8niV*saRXJb<#AMnS1BT+{uvCs3^|v&N=Th@4WXM!GAttRDazP zx;WoW^FPtOr%2=&6Xt%LS zHc3$9!P`yKc=1#Nzt^Fg2xuH5_C3BXEV8gIF@Q_AZ(?n1ARj*@{`47{rYK<{`;t=K z$1d53FI@-@VAX3_2d48F}VX-L7d1TxjQ0)lE8Kd9gx zn&e&U{m{YHJGV%lJ>ld03qqChT?rBmSwJZoIY`z60s+%imk+xM%Tkyg6XNAF$60>e zqN4>prE`D~XbsAMz;&SF2xiMRk9K4pVga~z_9U-fuJ9&GjVMWTk;=be>{MN-`wla{ z=J}Qy0!ATE7n|%U&9_Jsr(g~Awj(%N^C)%tG~@gV2i)N(WxsN|>d*srVo6s)Hd(eU zs5lN&j%Fpytrx0&)0Vxw;aIvcVY4eCl*$0guFa$?SPheX;xPvWHFI*J>aZ0tCjKp;$Yk1g*p3vD*1r`05iq(VKQGqk0*+Px&4oO5oR5(vnliyF%R~Uz%(}GY$bPZi9WEO-LsI638TPs*+5SDBfZrl>oTe&ux z#T&C5uDn~aC0pnpuq^Y!!E{kv7SUK47;#7ewNO|pLZMn(hJ)w zXD7qaha}h5Q8BTw#EGDv;>KqEy&MiB8fy7#Y6iCu1P&e4#o-%+h;ts7yfO9&vk(}i zB&kaZ;q`ea_xN}i4pUKI!;vO8*ZTYU)R)H7)!YviBRvTrKQo$z`y{N4Z9hb ziqQ&Kh2XiA6x*t3`1JUD8bJhwkk!DTl(<2!&=&Brm`>5!;O6esG^P*COwP^l&-w6kX3YtM(vy-}t3ceeP@MW``1I8jf?T@7-*|IY3%*~M7$mxH6TNU@` zo)s8afa-vc`FkTMH8#7QkJ2x(7~rQ&mdY)qtY$LA&D*J2S|OqGL9Zq3CX@WE#mmy~ zx4DJHEFowxkOry@5CcsA!V4+MzJd2xO3rt7>T66Yh}}X+wST)1j7v$E-^<^rG@J2R z$Q9&LRK#>iDf8KkHdTCVg1it2s|9hQ-X{IdW-j&jbJDw)~2{hS>Og_<#mDSghNq&e#bg6nfHBGf_?y&s-jG<77jh9Kj z87d@pxgDg}H@Ne34#!&+|G7x1RgTmUGaVhouV3ejkN5HI=mTAt&*w23jjZMKEJkA* zTH65+KaW1pJ3~nF`#TT&xH2@1;(pv&$FI@YJ7@ac4t^PbtS_~zqm5Uq eY0R5BJ?u3&aylbeQRsF60000E literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/RedAndFoxy/useless/Bloodblockbase.png b/mods/wisgame/textures/RedAndFoxy/useless/Bloodblockbase.png new file mode 100644 index 0000000000000000000000000000000000000000..7b20588eb4fb530b51d644eae028443f6134c5c2 GIT binary patch literal 1283 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 Ug#tQtXaE2J07*qoM6N<$f-~F%Q2+n{ literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/RedAndFoxy/useless/Grass_block_side.png b/mods/wisgame/textures/RedAndFoxy/useless/Grass_block_side.png new file mode 100644 index 0000000000000000000000000000000000000000..c138df338fe7befe13fd08f9ce66509a869deabf GIT binary patch literal 534 zcmV+x0_pvUP)Px$&`Cr=R5(vk7)J>TB^S>Ac`eO(!0kKQLApr1lqeV;M31PNEr{KC$RzOE^YYt z>uO{GG{*7H)7e;kk?O&~japH8@NzkPyyzMzjlSRgp%pmVSvQ{n(AnCr<460iQ4|9K z)5reL4g<7%17jm|-k&y8It8LYqCZDD%a(R?UOURf%98A8`IOpTA)zbC1N|-)m3}U5nHwQ Y2zK=`liD{xvH$=807*qoM6N<$f~bS@f&c&j literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/RedAndFoxy/useless/Grass_side.png b/mods/wisgame/textures/RedAndFoxy/useless/Grass_side.png new file mode 100644 index 0000000000000000000000000000000000000000..476e58b71e7c118b263102573b82beec66e74843 GIT binary patch literal 298 zcmV+_0oDGAP)Px#7ivh$3X$EQd^64ko5LqQ& zhWBrNf%(6G{bi6*;9>aq@h1bLlrGPIRyJk^RyHQEi5GXiVw5-L{|{1RWGM;O3^M5I z{#T43HcY*M2s^{;XWtM8@bIz26@gp@vgzU3k6;T#rMSQb!@LUeHprW&HostGRJRlS wfAi3LxFk#wu{7BlVHS)Uz`!sX27@6C0C)UcWBs&FXaE2J07*qoM6N<$fPx%CrLy>R5(vflgm#NQ543%X*<)>PFot=q9_m{MvQ4lBr!2DCc1Iu(w+aWD@_aw zyMd@62vqxi%uLJZ@6_9HHgo6Bz2|(d@t(eJrll~Wpper^yQjuxQS(?D4I&jv87&ei z>r2CKqGIT4zg5@i_r9HpW{JGbR+viCvlsW&>rPoJp3T+oN6KY=bvqNg=xQ=bY{;EP zUhOa4WrK3fS7W23ZYNf)9_ZKESV?>%Kgif~YqxCQm&gU1z#F2T+_k`gCQN z9imdj*KC>?Ez?yuW)0>dSo0RF>ARr^!PfJ17z`Df8zKruqF literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/RedAndFoxy/useless/Steel_door_bottom.png b/mods/wisgame/textures/RedAndFoxy/useless/Steel_door_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..bd48e1af719d7fd0b913f4689f384bb2fc656788 GIT binary patch literal 4453 zcmeHKdr%X19uMGwQl$)~)(1##<;nrK$!0f!>>30lJda=m6wu>flih?J$irkqBH|VB z@T541a54jWqE#qx6#LNe5MK;--~@b}huTW1hrOeM1v?eF`Y89?fCzJ)xnbt|AIWTX z_xt;PKfmwy^LtxVv-LVrTH{^W7u~ZtZ!=sca%?Cs5;2$S5qGWEi=#~kjiCna%*vna$UmDjp{Fd&4( zyAG_2=}>y^nXHeC3~EU}&S>5u|%wwnC+-gBuAG}s0_VpK(6=k=#cdGi@ zKTS(N#kg1!SyCl?{KL@js8$I^_weiZK=B+ zSmf^S{G|+u<^xBHV(&bK$9^3b=tXG^1mz`l&AD$?Q+;U*^ zpn1^0(%JWSU!5KNcJn-XZ_eaFS|Gz{`BA$~Ua?@DwW}mj%7Y4xdQvy1uKwGxT3iZ+?~7wfSdjqa7_- z<>{gS_IW<=!RDIkCq(i6u*uT<`SHAC=|{g{509xknOa`E_FmlB(-AoHhswvAlu|E; zj=PsWwWK6HDd_gjeEipP#b*bL{Owws@Q`MUFN)6T{{oA!a4%Vj`qr7GeHwLvE!DT9g@*mOovbUdCc z)Mg~r*)+>n(OO0y0*$p@g!l{<0;Nb4h{6~_XE8B(CORoEAz7W5t;Q)RbiJ$0MgRaE z&60eZE=O-BY$1>xmjKV4SP1d$Dr|NLl&VnjBMc^*FBXUe2pnl+a#3i#D_>@!G(@62 zY8nE(g+N&>Yb1n1tJNy7VgiFnD-_{4E<{ivio!qxHt*20qz%@a*K!b37;@UIHZew) zG3famCaE%5*boQ;>-?Ag>5K}+47}bv%>v*dh>vSJNC602eR-2i2&>Qn3_) zH4RpNJ63%t1A0l$wY#m~~atd5n-Z9)?i9D7;-`&&M7`;IkT()4MmYGDJNMPfFh`vKrljtC!;7KLJ16o z5eYHv00*ZqP>g2B|I+5#hc5&AAn7rT8SKBqE}H78BzpVQ+th0gV{axt-`*Aksh$eK zOy<&*-A{luwWQ7>^;#OtkLiMaDQAA97!XPd(k(&YV2zl9#X*u_7$SUi>c5wLsUr7?_vxLUk?B zH7^F{rMysG|2Mi^Umd1sJ@^M?1xF>*JMsD8nB}bcb+nu}$$gKWf4>q)mKbBw%sk#} zZ*Z3bujcRyAar446_GAqJ9#=S<*zGFy#kKXp0V=qWNEjqa#L9cvRLkOui=U%Z_+$| z{4^Q*@%_3RTi=bZAT^in9J!{gUO9So#qPcLq;CD**zu-@0JIYK8=E+EZKz{pd{DM= zPxX!3y9>U*mbb}^66V;h1qVG@3duWnonQow~Tmr zC2mgi8|nQ76MvIeRPV!wj$Hn&!DlGJmmXL3kNmK|A)~p)?UB>% X>#kuFcfWA~l<{IC6XY!$GK>BLJcn@} literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/RedAndFoxy/useless/Steel_door_top.png b/mods/wisgame/textures/RedAndFoxy/useless/Steel_door_top.png new file mode 100644 index 0000000000000000000000000000000000000000..a4c26f2ea1e7b89c9930222b6b5cb4f03ed31a21 GIT binary patch literal 4471 zcmeHKdr%Z-5}ySG0a2pFhymS<9)wF~cV_m*46K4I3Y-he8&nLlGqW(TFLwua6+M)M zL<-{DR1^}?ict}@V#SMyMv0ZkNmOzkS{@NSj1oBmW%PXDgZpNA2z9Btvg-05yEQvA z{dNDk``6uH?N^~oT;S(3-3NjozxX&!3b^|V*LY9xJM&&Y1#YKSq-F6bltXN_Sqz+! z74yrjteACj1_*Ng!=!8X`v#rx^kG2N^~}_~nk}9ce$!?)CMLTt+1m1W=YIO zQOLNQjJJ*i@cC_L&y`cVf*0=fS`Q^*H~*QMn^bXa)6T6wl-}|V4J|nMQRT*~3#e+} z^bbz13S72y@|5z950ZoDf0JEHwf>r&Rd?WWs4+M%YsUDL>NC$PGOu-f{iyW4248Qo za!XKD=bLf%H_p#iOn>J4;rS~G4I4^JNRj1IM7HnwP^%7tMDKDjF}nDen4w%i1~scT zM#P=g1-#$?c|zjT;Km`zqO}fb!#1VuDepS-CVtmS#tKZjNPqo zmHCIc`!j~XeRuQ|zrI_PR21My?r1sLb75LaY{tg) zPJ3tAX3yDw{^?lf-PgMgx489&ZEyJA?Tfg#x0YnxrZO-^XLje>y4!z$r@5rw*3ntt zHoaaJT1p+=dx&XBB-YLTXv4helLO?sSU=@1zWcMR=GIj|o|${A@8VA>&FSN2EpRK! z-;gu+(afhE2hz81dq9@oi0ZGrv2r1_GpF_{U(-vU;dVexdDjzq`~HRGKHq%bkXacd zI^BNi+oH_W2di6xbMOCkgZ9eSvMuxWc^u#IgX-1Q8yDwV&$Tb^nz3h6)Vks$E8T;F z+%~h_CwlJntm!!MZ1Ke_*Cu(sYb)9JesUFPxnd5qR+e@lNn1=3im~WfiPK~SJqJON zbDdU-E@XMJp3URTYPh%YBrN6_HJqu?qFQSVo6p6qu(7Et64U4vg*3sybLaR(I!ORv zVtGpJG#Sly(y4}BxFmQM#8O!7QsE2LaF$jljOw!|-PNAPayGsgtrwF$pR)nWQ5v?0jr702vJEH!bXG zU_zxStld&%quJPE*38cu3Bl0A_SPbs(UlHEOIagp0;+c46&vMpLA+KsY#~sP$C<1y zD?s)rO`bEnAZt`?!ip=Mk%0j7Vcb#LL%F+@ftFTFYAke-5MI1S4GaEB#zJ!p>3YOj zG@M`*3Iu0xJt8-#C`3=8286-FS%$%>aD&`10xI5Y=P5JI3Qz!C!T}syi5du6u0)gy zy&REa1{Fdm2@DA*3^=V)FbbT)MnELlIM9`pab#2i6a%18T&|GIKn#Q&XA!v))gyY9 zj6rCOp=erx;j+PK7@C}Kv6(1PPR>N-u~Mr!&*eiPoQ&4Rt6^M%zL4mQ6mI|qU303qgqm%i(1$7$}C~DGkN502Jg+qB0UA(r}!_P*SEuPz8yO z(6=z0Vfp{k7RE;$IZ*UC&JO%9cZmjODwSO}@HX&j{Kz!xZ(s@ z150#1WzJ*4{xR6FLvrpnnn9&P6`0Tm6oE6K85k8pu`GdvV+sX<$uO0H7$9#L-EJ}P z4$8(x=K&r8SD-;%T#4TtELGU(XdL;hPzOL6g36E)l)=)$WTnE6F_dkj^uPFsbSaG3 zVu0O%3~XIsCzK9vg@b&7SbxvYU>$x>7h>_4lb7OmjIJ@dUW$R2QXcEBF}hxgftOMq z>#qMBT|O@kQ>+>M19E_)(ln(AoZlf&{ht>l9mGrQn$L^?Q1hsJB7)52SdQlmGyy)og=dlQzfY?^br`r6%wg2zFV z5;m!`&dujjV?}{~<5ht~(8Mr!Z}P)!kH0uX!DVDd?UC9tCZs+@Hl?mFL*w~$#w!q% zezP8xtsQ^x^8PC9de6}%68yU;&GnUYDjVslHSNEI9FIzWX9C>$;ia<$Ihhrg7L~~A zx-;6g9V+Z=TU4?wi*EmmcN7P;mh9*&TpH_ff6dIVOx3wdssoD~gA?~$OzI6j@$j|% zH|~D?+2ut~oC(KrSdGW07ee9Ao1#evo}GGH@b+%#QAv5c$IGL#}qWOn*gmi3u@QVgH`Ytn$XKj-wGh4R| m{bhG{>COJt-y6?98h7Q{lVczMp{oP12*t-HY7WlJE&C7GPyA07*naRCr$Ho7s;fS(es+wz--4zJ|w^TSR8$T1zgKU0Y9g&rJ99Kx+oj@B#?& zhQtWLKLY|G4M<2JF)RZ#1JiqV^-_CRb!Ap&hllTrx$Wp&i^wj-3-5R-N}ld! z=J%d^?m6H2&Udwy#q~5zA?LW{3wdlOD73JNGwdd2!>8dh;2d?``A_yr;t~Jk{_3e$YA9) z9*-#&%Y;#c@B7CCNYupC;5AMC$?L=zGBJ6HL35UcKbxxe^86@G2*dEjebecbcs^I- zM2pZ(jkzC^Xo;GrZrbQ!j4nT+X;?XjQmMq;^Ef)}WY0Qt=4#qrSftr(GMjlE9d(E! zS%rusjY*6Iiy8hLa>XXaLYZJV#nEjH$Dp#k zIv}4jNMlDVORCADnItLH8x5NE8spKJz1>~3m#)2;uAVwYg2wY_&j@`V+cvQbjZ)rZ zsRm2!BKIHc)A5Tm78W^rwoe=;)Rr3578cdu4-XC)jfZMd;%f4j#^QpJ@+uju?c|iz zw812)dB^0NoA?o)CBFEL$O$tAfxV=Kbes0x+GDkJVuORI|7o z#w@p%uz}aEC;aZ)MW#m`e(-_8uOE5@fkhC*VALa@&rvB>7!Af~S1#X5YxR~28kT8O zsg#LB4{tu<+Nqd7`9{Q<)ixj8g+KrKl-+*Fd=TK4O5~d^xyV+NFBgl1Q9!rbMb}f} zC|3JSCMf&6TrN|s*O|?H;v^xLv(+Rd;0CfqW*(L$tL`$JjOq1yL{WgI8I&s(wd$H~ zs6cJoc@-=rCfH_*9UigMonkvRil)ZzzHRWeH^A%m`R>nheEc9Gh#X8i&(s?;4<;C? z#$@E7UAlN9EtRX7rbE6^B$u<8&!+_bjH)%~we^_Qw#9>OgZG~~1n4CF8JcEd)h#R| zuU1=viywFlheJ$_Y<~`iStJhw^7$f5%S*C`%GeSZ<0MrpYnfTZw+tPLUcKHCP1Ya z40^=O8xqXsnE|d|c|DcEi$%rd#I1B)V=x%v+7=6qGR1OYA?%v_q-XFZY#Hy!OJ8hu*sx5oer9zOUP5#OHflm&-2uCkfbZ| zAdZ!RvlN?R+cuS2RT)^N#Guc2-d^GHR+q`l+Z%sEtRb#%kPaSM!w117@*f-t6Bt`dbY!F-P7UtLSd*%pRwWD#70B#yGcB>2I| zqIno*03-uflK(>lcxAa?!?XlwWv+gL3FJPN`qCInGt^?}R_2*^g|aPlRroTg$CSX8PlN|mB|Mw%oH2Looa33Vbr|&y*x%cuf7HnaC?1|W!8p!PpEA_R?`C&q6Hk-uw}5~8cdzr#$ItleQ4c@J;!34f zqS0ESSZ%PpyrQziWHi9{X3V@Pp+9Fd93C4$f}i8!xOs)13dJJ%LV-cQ&wSit(CgDV z+&><)xMjA2CwW`Bssu2ZuAo6Q1)ER)C+|=2f$ZxO5BRcyvZ;w71meco1dpvKo}=t8 zwiTPD5-YRsOK?D1%8LKtP1Z!{Vd$`zbam3pI26oyR30|n`4(+R%k5%?b3 z<%_q{O0|aLxatNm1e!sr@~w$U$g{_rJbCg^)d{j1vZ}|+phlEI+T-~iuZqM6d4<6Q z%PJ`M*A2N=P+3Y6OQDh7BUefsP#`Ey6j)KSlnEaHmNJIASj&u%q%W@f`+w~mAAa89 z(YC<&%rNctB4;nGtJLTFfdE1fWE+MIhJC#0l<8!QcJbn^v|g*@xGuFuOQk|_Ki#xc zl!u7DtzABR_vb1$D2LaekT+>H9H!HVZr{%abK;_64S{T0#HrN^WWm zlYstFpPeUhnD;Ej;F?XNsVA~G0T7jMC2W;*3G0lX{V+T_UKmI-+zxN(D-g=8yUpmkC|I@#x=h?h@>l#1# z-VfQ_8xbbviTA%qjVBf;y71PU>-_28{T82o{A+&l&K+L8{)$?NhnoiqRYpm~Zf8n& zY>^lywOUm{Z;Aer`V0;1T#m_Pf_8D^rrH8I*Htd*=3TW{Wv_H)j|f^zVQX_!0Us5S zHK-L$)|Ltk#sN?FJt7HyDk{gAd4mfV*I7AzimlD3>~C#x{@OJ*R@ywc^BMhahnrW| zD72cq_wHw;r5gX_PyZ2r@$dhPAOG?JfuE(%7cT`0v$$YtAvbTF;XB{B&PVTm%13ve zve;@c^L_R@BQ(PT%_LuH6C}DSpeofe#e6~CKcCO==AI&2lmX7KUr(!zI<3~Cs=DN- zexJ|pZSv86R;nsSN7pc_ zd2asRxA=qW7a4u=3zF31@v|e$VwLZ_b%{?t`jE{hyK1*TI+$@Vnlqk55N3pm0!GKF zG{Y5H8dUX)p<(A@=An*}1e{rP84M@%eU~K7$e32UP0n^Gl!^*9O7Ih}7L!VCF&Ygx z5NvZ{<7T?Jv_z#+qjS_%la!L!6{x7n(j$VoPw%LsAnk=yWxny1b(Y!-cR01+l20c5=E;BuT^P@N=0QkkxGZd3=Gw+7Qg5h8k(ij4W3gB(63-5C zCD=wjy@N47`rtm}KnkFYEjoeF61^q(zVHB54`har|JIrsOLdD!+g-YTi9`}yno@7n zh!PafSuB;5M@gkBMOw2_S9G1KNH;caq)W>y2pZhk*;Uq;$qR$y`!iML$-e1!I=phB z%D3NIqgpBOpTBp9Nw34D<-8(2K72f4lG+R>9=+j=z-dst@ikt$vQBJS%!{XZV=?6` z4TH9uu>0r^zxwb~s`(;uYVxCBe#~BHE)nEK?w2iaVt@<=eAxps7@wPPBd`c;&BO{5J;vAe3qA&REpo--9fu};YPZA>J-gZi_OjF80e~SF>_LW zP8DL3 zy!j^mr(bY1gYTTP`IDCyxw2r=JJ{l%|Fb{i;)RPWoxRAv_!s|%yZ0XBhf-@~9v~|( zTk0hJDg#JdP&Gkjs7os@>n)wTPY&6gmDH+B45-!1#Hof`5CgahVai_+%voG)D+cOd ze-G{a+N&xER_hH#VL5gVPpIZ3Qj}8?MvB~AEC+o3<|-vy=fmGT#c*tHY_u`Q2mI<@ zm))sBu~b%N^|ON!UA>O;?SDY)mDd^Hd5>xLh}X{)`JGqRx!Tn5rxSko(|1|Bbd7qw z$-n)V|B5fZctRBY76ScSpfoAu-SNav;P9(wE38!EvnTr;%nF3Z2Bh&74$&AB;eWAo&OBa@w6lZrJF+kIpPNsxOh~?xE&PHgejirR&dwq@F z?E`*uZ;SPF3v8UK6Ag~|{LwyN3=PHGrNNx;U`l_kW1PFmc;#iry&+{YWTUB5F(V4` zR88z?5>l(zG17z&-g$?^-7YyR|0TZQw~dp`08%uaphUqOaQi}wMlt5@(_Idxt|C6g zQ<|-sV0(p4WWS3MB^$`^wwg`mfzQF=A=-rtx6oxQw|Dn@MeV-`*=)3yV)w>u2I7}qkGq$Z!- zKR`DPHr7wGdU{16$)CMA%PR(NU&-^}!4^XboLgIg{yzJI z7~L+@UaT{jkNICexr-O;EG{;wG@E$yfY0teV(6PJU%ySEwaEPWJ=Wj)I{)~O-e6~^ z!}~w^G4K5FhxEIi@J26aw~QjoCaG!=MU@G!n2{o~HRW|CXrUKV9_bwyRaDhR&((#^D5UsO21d(>4WqY$9Qa*ddTalgZbMU%I# z)p+*sAr$JYUpUQ!I}g|$ri5mRLeU|LJ)YcqOgA(!b2d)3s(JuIrWiSwOTYieT)DEr zkACo1iWhkE#x=auVEF6_pZ(-}^t#f;J#LmNPVtyKJpSw?6J(^2e%xMzn`?DN(SP=2 z8`Ev03n?oUypzK%l&Dtgiry18xYz3{I4pFTV4LCK0PW_@*HhQ6VJYThh&P{6C<>vt zr~=1$*rA+@xN^!Np7qdjdCWqQor57qp3Xeg$R`1gl|V3OIExu-E=jqm>hNLbh{-r% z@y1s;{l+&)lNs80$n4?Aio>4x&1l$D43Lnp)oMirY-yruFTHdlEfrg;jlI9W zukvKET%q1*DK{C7x)|Y#3@m^{4y`UcAZm~U!t*ppL-v@%kGmWTw5|RbfL1PW80zEpEH_USpZaA zVHOBgp(TX0;uo_maDA=Jd_LjslRd1$vf>>ji`kY%xzeCiZzyAk0eam-l@*$;1$-e% zrz5mWmu{uYORK7NwYm93?YB~;OtDx|C`_tAml@0Mfc`8YbqXw$T~0MD&ac+Ed})Q1 zg*-{3)AekXO=7RZJ0I`zi@W>W+aA*!dGxz|;#`q)H*d0f?NyeTvH!&#j`|(meC-wf z&L3PS^?K~?9`HYZ^bw!j*DvHS)!x;swJXR853}5wc*9 zn0RxpoL}JW8)sR&c#-PD3gvo>oF&bXl)WRLD45f#+YGvg?Cy5>?)N|7SN9Kj{A^!w za=BuO=IUuKFPE_VA@`qmSl_tB-}u&R+`7DsnM~N*+2^l*@G-yse2dSX48d@Ydkw!W zf=&?OOJ@ssvkCV%56G346i||OTA^4_U1TSpS6yjo(~n2PtQcyxR2JxTx)~p^*j`dw zV0UkuCq0i;3>)d|j64%c- zluHGkZSC;Ehj;n@JNMZhndqjY;=)NhkOEBl6R&Sb$9ck?C%fRbBtd44k!l%T*dblR zG7PoFBn=8Lu(Y(S=)ZkQgW>_FPMx7pDzW)&Q&C2eiFGMUrDtdA*hb2!ipT4(oZ<3X z9W9EO=GQrY^(6|q7=JouTTqq2O~+Cz-S3WRRt@@tIsf|4f6Rw>o-&xlCJrFi*3Gj`y3aRi_E7(_V+rx`{^^@xz{5yYO4PKvaU!b z`Ukg`)E4;Y^Jn-*gY>u>Y&08~mO~te3JObx5&eRIyfbIcGV^@)_Jt6+a3ft^JwvHn zVgF!P-7pzXR7EC?im=qKV{rM5&DU?Ou~ajePGgRuDvmTplL>L)kp@GGd6%MV6D2Wz zqSJ0x+1@$i&;G+t`OV!Y%zTmDn4DT!&u}>B;AqI;@QBrBPVM3T!2wfwtf{vNa*?zvqk3Zhw(e98SifNP_E}U7QS2#PxeNPqVh31%$kIz0l$B1 zku;q1>w8-qdD7N1Rr;(o>ZAxBC@4)q#xke)fzQH1OKnpnlDc^DX1cPvstmBRv!{$J z@-(TOlvrUpVP&Pk`SWcO>8g%8H0+S3Au5u9&?u5C)$t8O4fJT}(;Z~)D_P{qg;QL= zP-QxTX@8e62*AuyTUnu5$YJO)^XZhyaKMLmxB1|SfU%Hjt-|T$7Ev71?_~hXPwfAL zE-T8`Tr1J2=Goip@x^8rFUqOlS8ujR2yh%BMe`XcD$>6wP_=+`iIo9_5^J}YR1n0`Lau`nWGwrG$v*kndl;KoBQ;KWBTJ6BQI19 z2k9p$0iwuWswFO;KgGqB5*5=_BC4Wmve^-(e*T#L zG{AHma%K_Jk|ynmY9=#)q_w;~S3#{-aambzGdk+?#j~#RlxkxE%}A+N>(uKFwfFlX zj+jnWyIj(?5WU)k^FoR)Q)@JtPCex+j_oJ|2#Y!#_Jmm^Zq$g6I!vc?CR2|zUnezf zy#1&6olT|GP~j)Z6dY2mx&?<*trE8`EYc{7nk1!EuxU43wG|FW0k*F5bZ>}RC{qzp z#{M2ZdjBEav8TGlBC0UW0)`<1xZie&L`;!$A}Y-~IW1*%Wf`yE=ZnX?c%eyaahaTB zQYw^?-lvlA1#?yG33DZ_aa9eTUw<`~rbu(4jcHhlO%aKkq!>vbaU9^AIePUK`lE!n zze6~iqqokA4--E91pVL+W*Xv0(tZ{xib5BHD(9cAHcag}bTr%3=VyXEGkCfGFheWIPsD z_*N>dBS~p9Z?4!A$(ynjB&f;LB&|GkmvJuKg267)?qf7FN1^+GEA@o0Uf*DO(dPcc zZT{CUzu?hMPcNo-+x9ho3gS{Rzb;1XY7np)*BA{`-gP=61vFVRfkzP z{D_4Gi*rj=<|1(NQW~`q!@-cxAMfBLHm%ha&aa*3Xm6K;gCR*Q{jyA<)o9iUq^BT! z#c{_wj6&tvf^`acH|q|I0VGJA2ng-GNZ*A|mj8!EMxijGQMckVw&vlq~d7N=L27CB+LU&P_Bzg@Wjc*n0kqUv_z& zU|{4$bg2=CA&Ea#jS7i1VgM(d(P-9qZN=rmR+s&-sSL05P{$HDF_s`Vaf@6|$J90E zfkdLxyEzDWynW1&PF;DZ%6&-=VnvD*66nx}U$RIzT1Ipk35hTW)f?-QYJ5pYqA0 zeMX)Sx`UpRPK>6+S6VPtK~|)!BBd?F6H4U*R~KEL?hff|3oqPPN#Kr8j-0f{P9}EJ zI~`4XG}kZCZdT|#{2b3S6|0=#rIdQB!Q%2VrX!M{qH2l?#V>`?bS#HErb;}ibb>;H z%0SE2nmUakQaLe(&|%Zz0f&bjp2P(z=U*Y83_1MGdqm?QRafIo%Vqs^o7F~xPwqe9 z>rRPsi!T(W|1Sm@dm|PvU*_!6 z0-Y~D<*++fUFH+rS$cbe?5Ga)L{k zUL|Kc))!}e!c-aUL}@O@5d1HxT7=qDPt>7v6)>d-;5Y?2F2;B=fHcCk^4N}Z+*(Ui zeIpXtLLtv&GRoxgwOU>2fu#ScB<{MQj+MzIDg}pP-XMq!A}yz+=lxEHB=#{KlVUNG z*9&;@=YA$al%sdY3UX;l$)JNURFPbenR>o2LM&;WWIaEjs&bZ@5ht^0cFN1Nl&dP` z>hW`A(vq!|agv1Tbfk2@60K|PB`n<$1tmp0RT93zY^?Odwp~=DND$2k0#D(9*+fo^ zT)L?YAj($Dv9lkI<(QjC(G0nA+N4o8*g6b(+9~2E7SmCmBnh#LE(NEQodP%!VS5OK@va7#S>;rmU~pOeY@qx2E)`qJ9;{h=E}xc=M4Gf{X?tl)QW^ z71t4rEi$>h>k|4>1cjWb%=yFH0V}6VeEJ~ad+(Wa=O$C{2;FihSKA2JB70d}Qc{fw z5ykc6Aj~xTTBa12NUX}xD9O$vYP!la@{+wNMi2u?V4RLd42A;*#|1nIhiBQgYLAQR zOB5e-KX{>J9UXOu5)a!gQnC}?ei?3G%P}7I_~A!34|WWa)J3;)q*}~$I#e-b&>N#& zd+Cj|R&NjlS+1;>D=JmUsj-XggunSUowW;1e*V#r|Nc{*QDk$}dy4IpXf)1}lLM5| z$-a)5&Zf!$maeN)DB}K79Ld&_mXwf@+3Fja0pxsU%6s%>P&_AKRM)+hk2}giG$t8*t$ctxk9m4 zQL8r`irf0xNiT^dwzzYk;Hd;ynT!M;36?TwMY&6ROC8Zolsn75maU|Y&4|$)2i+8} zuwI;LlKbS}a>_-Zx{v_RwOTLZwW-)mF{N z;b@Q@rIAL2aEhQNp$0jd9-k4il=bC%b;Rc6Y{BulVWkLDkzcY$Cf5_i$H_}Rm%T5r zy-^o21oRFMm<~i=Jg3lFVmh9Yi#nWco6J0o;Y?#DxLmjJ!$f)A;!+#m^VMNb?eys@ zsupM+p8y^72TJQ7MgH;G01bkvVs+!3g(akdFN4=HU7d14u!9U#4m-->CM&BZ!$?h9 zT2#KIQ{T_}c2Rb&=;XAAV)~B74=0R|e3zXZbyaqf_gM-JRbZ9R<##0L3RX!(TA+u- zHbkLDIGd2BK4!jz9tfG3pqZwE;ZhpQf(acaq=>ePx$?ny*JR5(wClfP~gK@i4&vp!$!0|APVC}JW}&_qsvgouuUf(L+}C!yp~sF8R9 zL`4O*6YPQ(C6Q<-5*zz``v=Xg&%{n7MyK1ko7rz>zL^mg^7hq>Q0scOTN#3o9$_+_ zUpDjZ!za-n@uioGR+B%o3O#@Q9`o|~4#kZPymg#UNPx$mPtfGR5(wSlfO^GP!Pwzj{rh-G8$q)5(gK8s3@z0gCh#=j4mQGB{+$=nNXb^ zjiZ461IEco`6Udl#vdUj4hFPUDCQN~w56u;()3=|$-W|a}($UqPyr$aeu!4Y~ z{}8mlzSU-A3Ri^wkY3c8aoF(5|A6Y|dkbqTJ}{#r5IbFbv;|z>Jis+RrtG16DMSG* z`rU{o4x}i%TQMwb#sF9#q6c)ks9m06@8ndn=W{G7jb|-jc4h)G_D})X?N)#g5Ge+M zzzYiCoMTa~>i|o09&GGnHRt^6qrjz5u0Lrr2n9R{$Fq2CzG2EWX{afX+KOBXrD1>< z;dn+0Y6Ov;sV;CV%K9UO=Di4S_W@>N2v`nGV?DkvMb`^WTP^uq5|ze_wgy4J2a&{Z z5%oX{%X3Lo>N>#xZo!}iat206kP9dm*RTd=8OY8QRy<0fbg%1!px=$ipq0&T;o>-r zyV|2}7JMG?0uP39po^Z=!lEdm-RktGk~TB}oQwrFs|~kR6+oUyv&d?@JkGy5=Hd~C SWpl0o0000Px%#Ysd#R5(v{lUr|6SrmZ3GY87y(3XNNSAlbw*4`k*Ml;qKo%rO-BtFf9@x@nv znGZ&r7^B9tXnLVK(WZh9GgK~3rA`L1?LbT60LQQ!n`zYbwD!7ud#$zilK75zeSWj& zQdNhDC>GvH-wOT8c>TsrbF)<7uxa4;2e3Q(MP7NcK%?1UeeLCmoD+xH*-K_GXy@Pu zWV@RW#n<@t1cO6fc0Od0j9s)ym}klPKVq)5qWSM>3L}Nc;v#Dej@1VF&bNa^^ zc6EUC@*GC(A7b&?F+>1HJYLfu2(eKrj`h z9dVMJe=JFQbkuaYM`$Y{+(BL3+G#d<^ZY);o)80e8~MUtM8+=&zbsqWt-NP=EEg6&<5RuK1qI*KW}`s8Rd0P3h0)B!2x}Ouv|YMYXiX z^wb2Yl|_+z;w$%Bsn=`Nnlj!Px%e@R3^R5(vXlYMX8HVlU!N|xleyK9p)`7c0G1jRP=`+t~WD~e%3(=>Ov%h_kk zmNdv7Ho^vELi~|_NQ#0fQW|9IaeD~pp;s@ zNWO(gB%u(c7ylF@(;Tt@*@n?~(v&V4W2l@(YmJbYy+^d7Dl4>BOffN!L(WHtFkCM9 z5Q#A%yS7Qr8cJ&+MN*uxIbDLfZg8b#97j+JKL;j1;X|Omc;*n0t8JT{F=&aoSh84} zJz*Lsl%SPR6b4%u%=VgN-_dtHgP-vsA=jHaS!*y_Q)&$oVV*7pnH9iTCFXsj7mydT$)65VAQ`U5SPagu8!6P@jHkHm&W^OSOV&Hw_IP^37 zupEDSgq4`Q**U#an|z3*T0sr z%|K-#uv*G*N<4hJ=X5&rdKo#M&g5N4ySAcj8=AV}+qb`$U`3wXERjQ5elMTCe7ETa&14+6!00000NkvXXu0mjf>>WtY literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/RedAndFoxy/useless/grate.png b/mods/wisgame/textures/RedAndFoxy/useless/grate.png new file mode 100644 index 0000000000000000000000000000000000000000..4337bef7da5c7f033d2d076a367f6dd69cf2c1df GIT binary patch literal 319 zcmV-F0l@x=P)Px#`AI}UR5(wqQ`-uHKoDKgHOZjDJ|ZF_is=6zBZ}xdl2S6v3&t6kWm=3PJTJ0y z^PIUjtHrWW0!2|M-}jZ)T9svKJoXz7*c=o{($oZ2RjE8rE7x<$_RMp7w_y@R%Gs_r z&F-*wS|h#~kxL8^$JFf{rVf7?hUAvgsKEV^sk*Ak$rA8o^n$?n#3LMX;za$`+ zdcajBHBhzz2^<4yK&u2$M)xH!3420=e%R3zm=4oxqYpNakY$-!G?IWGT;iD6VtIa@ z24cstA)zL ROUVEL002ovPDHLkV1fnQh4KIZ literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/RedAndFoxy/useless/moss.png b/mods/wisgame/textures/RedAndFoxy/useless/moss.png new file mode 100644 index 0000000000000000000000000000000000000000..594d9ba65b71a249c5f008712b9fb478f60d3008 GIT binary patch literal 550 zcmV+>0@?kEP)Px$;7LS5R5(vnlg&=sP!NU3j_o9lNCFs2QdE$TXax%-#EK2OsvDMU`^0^KZjh)% z3o5Rf1SKK1u6h&N)+nTtIulfP>(;+Kn5FU3-1t}C1`MUv!@iOKzoRZKvbFhD`dExNI#2I zz=yk~eEOVfB7h121^85}S`)Hy=N*8pNgf?`Jyi;+1{Ys<9ky5)5Oaaj2sg>s-nLm@ zN%k@Jx_A+rb|EUko^dxD**8kiQ~)N=f(fJ|K{uQ+)@CQXIcM|%^^-^fh$L`87w|N- zIX64=-=&`WNo+otr~67P8x25MGxv<{907*qoM6N<$f}A<*&Hw-a literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/RedAndFoxy/useless/plank-roofing.png b/mods/wisgame/textures/RedAndFoxy/useless/plank-roofing.png new file mode 100644 index 0000000000000000000000000000000000000000..8f10f0c4d706b16e6a0b3ff2bf1677b27e19f452 GIT binary patch literal 822 zcmV-61Ihe}P)Px%@JU2LR5(v%lgn-!bri;bp3C2pxwtdFv`*7DB}$v53l`9#iUu~VP`iLiU9>yi z04ZA@gGWF@LW+nK35jmlp{C)E0)-^V#37DzsjVcA$1~%(p&6@1RnG(b&Ue1=JB7uC zdugk4M7?6;4Lp{=Z}9N_YeYf7@rjEjWK^N@)oO$LZ(YK5huDt6^Pb1tl?xQU_~cHy z-#w+~SomJR)AfDkE|xjx=nOrdZa=`$1xr6}@!1LbTZ%z{phxopSqA2t; z@K%S}x=j!zOpce)b!`M#{`7u2^oDGE!&QIWVgQ>U?aOikCY&uCQ3Hm0fNh87;&m`cMW z=FzQLj!s;5yFI)x<*ZetY6%QO=bIlIC^B5BmiX(Shnu7%X^JYzBM&mt;*(8;l%f?C zBt_=d)d^HJUqa-EgmJ>s$|jHAo6Vt(*5RlJnFsy8OZUX5T+)c5gvY-&`RJV~ws*Ts zRBfUt%wzlf+ch4(JB{U7?Cc%A4yc^b@_3e3H@H1l=b-Cyv0i=+FsAD$MH$mH{#TGo z4PuZLR{w4>cdo>kkP&K;FbpY35{oMvd@y^Spa7E-l~)1T=F|RwpSBK}$;uPQ=vkJM zL=?qDY07uccDXT`l_|-UPx$9cNW1VCT#Bd&x^dy&-*=&cwutjQ)Z;{|;T1?( z-O0_#t+Y<3Q#YHNjB#I(4*#=0}Zb>JTiCeGN@dTm_9z;|C zoyrJN8DWT^HUS7Q16O?@0-Oo(t$_|HgcQVF{Lp^CZvx)5YPD*uuPx%TS-JgR5(w4lg&$1Q5c7xb3dGqG{2HWvoah^AwpqH25Hr*zo3O6Eov7n+SQ^q zEdm!V3OCVzkOY0MS`Dt6iI za8^P`KoqzUC=KG+!}DQfQ?piZIP+{qZHL**^vHk^DI|bW5a4{&~OC+invjeIIrI>`9qkUgg~JgA~^TuFNg{7czdL zgY}Iv6N^6?YHPr@a5Z~WHUr^OPb&otjmfyhU!}NIPeGs}d~vArTyDSrZd*)=7X!v} z8CePf3?$_%d+s*lGq&wF?@JZ9`)<*2VnC>cLKId7cGfrWWp%~+YLrVwA{2_A+62#w zo7|iJ8Uu`t4t7|Jg=??p_RJucvC0*t5G^#-dh{Rm5D{Ctc^spM5?k@+ literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/RedAndFoxy/useless/remote.png b/mods/wisgame/textures/RedAndFoxy/useless/remote.png new file mode 100644 index 0000000000000000000000000000000000000000..7487a226f0004822029886320c4611f4e1dbf5a9 GIT binary patch literal 348 zcmV-i0i*tjP)Px$7D+@wR5(wilQC<9P!xraU_@;Y%plUBOAskEHM>8?*A~Cx`4V9RxRb zQwJBpRB3d0L;P7(5&e)-88k|n2`2>qRSU;?Bem}#qEM!@R?c)}gkIQrq zR8>Wu=c5lvlE5@glw~<@3w_^1(=-%CG3H?Q78ZFxb3h4XSw>yg_YqKRNs^%JI?^;9 uN0^mFN+60ND9vIISeCty;QN~XBKQKf60#Ar%_%Sd0000Px$n@L1LR5(w?QoT;wP!#?y#!2kl*e0ooP?U;_fi7Jlo}d!q1=tuEI>N@lfW*WE z;t7B!05Ks|%!mb{N>wXGSx6zY1f1A7w(|>IQWm5QC_i$}{SlQZtR`f*&`y0z5n^y5b=TKunvkTIEBn98`XyVW}IlDyIh@iB$ zDU#UlMcEPs^ubhI!m?|7f>_%FH9A1bo>MC`}(5bxzDivRVZrLsx+(P*ihp#GMXBp>WwC@>o!t6g}kYw zV!2?uYYW2ld;*2?(01^2PIBKBT>A~|ou+_O~Q97?i zRf6svVp8AKcz@Qo^Z?6k;>z(cHo_rG!wB;ZPKu0u{qjkeI>$xr7WGCzfP^fQZufdH zk_lLi7G#OhyK^Tf_OpC7xI*4Egd#tc4fhbVqmGnVpDdJ$b^GG%Z~qeqhx`BQ{X2LB XLqC>SGW~fM00000NkvXXu0mjf{14u} literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/RedAndFoxy/wis_beading.png b/mods/wisgame/textures/RedAndFoxy/wis_beading.png new file mode 100644 index 0000000000000000000000000000000000000000..61ddd6384a483d360391ac85d7792c2fb36d639f GIT binary patch literal 421 zcmV;W0b2fvP)Bf4uD z(fujSz{DW0qQW5a?h}J3BNM}_?;jXM*fq89x5|4YmLz4^nsE*bt)8myH`912Ds4 zRn-4SFmZrm1dM@fLtvO-ixsBLzrHdyczXX|`|dT|JHPMTWnfj3XZXnQAB?YYvN4?h z`U%CmATQud7wFN5GYwz^*y0?gP3Q>2BR0pkS4! zi(`nz>Er|j=9C>X{<0?u%@9(i4!BvD)1UGT=JO0J;78t+lj4bO2)BFhK;i}N;!0;@i2Q_?MY&=ob`}x v!fMGJ2Gv=CpO`FXIW|0f^wyn+nTtW>Na>TQ(-JQMUBTe#>gTe~DWM4fyp2ZV literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/RedAndFoxy/wis_fire.png b/mods/wisgame/textures/RedAndFoxy/wis_fire.png new file mode 100644 index 0000000000000000000000000000000000000000..9a5d936326594817c677a96cae717117f8a9706e GIT binary patch literal 609 zcmV-n0-pVeP)Px%8%ab#R5(wilV3=aQ5eRbci+agZ~NB7ne8jAX5ft%m1W>fK@mhjL=Xg4P+fE* z5}46NTcbj1-gVPOe@F-`C`$xyf`YCph(M!+U=sSxri;F6q)K*t^O+ ziwDMnoa*X<|NfkOzu=;`CoPGv#@bM7NfQO3_u@}T8IAFCl+_X8$O)zfhT#dug~mmS zez~NZeBvKR(1_*~8viD=<3^=fXa%fzpPuf{`Cnw3X zDz$B1VBH?b&OYIrW=iX*aOMofceDBsi=D!mgaV7rg1WnTVSfYRw3c3ZddPrhmk*Bi z31MO@rS@I*XXN`fA~p;2MHJd*FDy<4Xg!9^?Hf>o-y}1CO9;?p27nMOVh*qU1)={Vp}fUysdqtS|w zS5e51p5~8RPat*$t`;4+&k4Bw0yOB5-LL-+n2l_rmBhT6gwor(*Y=P4FplWWa v7K`UsQG{T?j-2X(+CIK)=vGYQza;%9=hxa1Z+GHf00000NkvXXu0mjfbbTBb literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/RedAndFoxy/wis_orb_full.png b/mods/wisgame/textures/RedAndFoxy/wis_orb_full.png new file mode 100644 index 0000000000000000000000000000000000000000..6d3be71a0cee556a07f021302f42c771ea2c7f0b GIT binary patch literal 399 zcmV;A0dW3_P)Px$Nl8ROR5(v#WS|f*QmCJSb_UFwwemmDqwfq{KmRbiQsrexN(;wo8CJoC-CO<( zs_TM%cj4$|2A_)u8J_8?Gx&6;V5r9sSUz#Xe^V_R21yqlhFzyGGVEQkogw?cas~lO z6^7#ufeb;VsD@w|uqk5xe{1`*3_sOAFq|$q$?)mb8?Z}kZJ8L}t9URNwk$=_gJHnQ z$gcn2PV8k^`{NA5wx1AbGX@TZlH{KZ;yQ*5vhlm{8?a{C)c;IR*%?k8yvp$8^%VvQ z-p344hHn`(lOq|Pzu{m|vFXBZK-=OK|GBgb8U8-}&T!`28wLTs%?xR>XBgBtjTyEd zU|q_Xz^fA4$) t8vp|HR?j3p9gvc|X_u6Vbp^#P003R6Y!O@0KT`kz002ovPDHLkV1nfPu8RNw literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/RedAndFoxy/wis_stone.png b/mods/wisgame/textures/RedAndFoxy/wis_stone.png new file mode 100644 index 0000000000000000000000000000000000000000..c2c5b6cade415612debf0d530301ff5aeaab2086 GIT binary patch literal 283 zcmV+$0p$LPP)Px#)k#D_R5(wCQ$Y^GFbwMs?WG?<2q6SQ{QptCvDkW literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/RedAndFoxy/wis_sword.png b/mods/wisgame/textures/RedAndFoxy/wis_sword.png new file mode 100644 index 0000000000000000000000000000000000000000..fb082564832dcf03bf9ffec601c23fafdc05e7e0 GIT binary patch literal 161 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GGLLkg|>2BR0pkT14 zi(`nz>Ewh33@aof|D-Q*DGrF?`Z-Hm?aWX6Rh0o*Y?%vAq)k}H`@8So@*6i5oKIYu z^ZN0R`+l)M?IYU`m?U%aH~FbW8w(gD1=qa3!?~zflcD6J&$s7G@4f>X&*16m=d#Wz Gp$Py#-8x_Z literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/RedundantC/open_clump_mask.png b/mods/wisgame/textures/RedundantC/open_clump_mask.png new file mode 100644 index 0000000000000000000000000000000000000000..d65d2358d96088842a53aa03abb3ea06524a9a11 GIT binary patch literal 188 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GGLLkg|>2BR0pkSV- zi(`nz>8-(zd^vvVVc(F%Cz|eO zEbvRx<*1xW@{+%GRWts+Eq$`~v%Xfu=Gg_2$MPB8{ML5XG5%1k72BR0prEs- zi(`m|VDcY+79Nj=i4z4oj~{4IJKLalzGcxYo^uDJ89o_!NeFy0-u34|bz_qFh6TSl pZRc^G41UwpXr5pqYhb{@aAKRZ_$;>x=YhsCc)I$ztaD0e0sz*!EgJv; literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/RedundantC/wis_blue.png b/mods/wisgame/textures/RedundantC/wis_blue.png new file mode 100644 index 0000000000000000000000000000000000000000..9eaf03494c807287c349ef432e9daf6fa7f39788 GIT binary patch literal 686 zcmV;f0#W^mP)CyFc3vQ7fF^~J28SF1=_px1U+zXlqRu*coQXV zeRKg2MADkSab$k|{!{zMvo`jq=hKJ2-#+yit}62)Ek(6R#X041rLf=WSho5b_xk+W zYYIDgJxS(=SN2xZm(lfHHO8WRsLH3RK1=ddWy|7cQndgcI@P+8)+_mbeNy)vWcG`e z*QBc}GINnDRDd2Kwv)2Un%t~lXXPh=f{~kMd0VeiS`;t5`H^*a%?dP*x1tRe3dCKK zW)|lOka1C|GpLJfH1gp+3M$oWkULfl;LQN^G*4JrRUA0ZSl?3Cyv3dY;BZr!y!`F` zD1mH1wb!T^Xo!`fA!n^*)HUB&T1wRd@SLNT)0fhWg>ZSJ8AVXJ5S6JEvmDI}O%njl znR}3lXClxTCPi*3BgCiaB%7+hxF>8=RE-hFtOS5HG`IhHui~?^Zpvhq=*dlKnbDkD z+CVfZNaqdipW8q(=IG`}$aQ16ZbCFxg<4se%M8UP9>X5p-Ey>IMpL7CZLB zd545exE0P@+~vu&RQeY&u37E0iTG71oZSmd zT~KR_W4s5V+mH(%lQ%Ew`ZLpZVr2BR0pkSV- zi(`nz>8-(zd^vvVVc(F%Cz|eO zEbvRx<*1xW@{+%GRWts+Eq$`~v%Xfu=Gg_2$MPB8{ML5XG5%1k72BR0prDGU zi(`m|VDg&v>;Ip3U`$x#pdayi1tSm7;zR=}wgqPlKD=aL2rFQkWBE1F5~!ZR)78&q Iol`;+0L3gG)&Kwi literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/RedundantC/wis_green.png b/mods/wisgame/textures/RedundantC/wis_green.png new file mode 100644 index 0000000000000000000000000000000000000000..00af59961eaf5576dd578ddbfb6967e1a300f1f2 GIT binary patch literal 730 zcmV<00ww*4P)zHz(K*z4WdGv}OHJD-9N`QfWr(dngT(XFl) zk$x;2`Z&*Zp7>I!DUF{?!eGrE?!L-#run3$qeWlm z>Pyw36ilS8BdNBLW;FmpEmhUM0{I)wmG%e9x2JN3zFGqS$HO9bhXZ4GA+7HKflbt4 zUY716<=T;}iF_l~TzQ)RTqwwwnu0w8xvof^WUX&+9966=@1Xo+EK~k1$Z)&spz@}#f>s!KjX#>C&0evguD^JyPm=l(_ z1SsHLdJI!r9NYu83`hd(5ML4#dR@37)D=0_pnJjwsfc(S_7Slg9zc(d)JAN^#ip?> zd@;(dRrjFJ0oyh&#>N!$<*>0K-LHa9qEm1)4{#4jA%`k-Xj6aid4rAw(=#*07}TDE z3X2i|6E0LAi+dMHIAL?2#Li^jj1F5L(Bw5@8=P!<@=kO4Z>Zkb0}R_o$U1}auNjlkOX#A*ga4BL4CrAD zN(ObiPrII8Kk?+hO}Euv(N93TNNZk`6Swu(Xm}QFC<5qHCF7?uYOA42e{vn?hw@*1 zeW!!@Kh0KMFdgl&>1poj5 M07*qoM6N<$f{f2oX#fBK literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/RedundantC/wis_kinderblut.png b/mods/wisgame/textures/RedundantC/wis_kinderblut.png new file mode 100644 index 0000000000000000000000000000000000000000..11e3bf5274a6892787bbdc2cc591d2c363599e53 GIT binary patch literal 179 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GGLLkg|>2BR0pkS(} zi(`nz>Ewh30tS;-8=mt0Y0rE(pH1zPsj-31?XMjZb@;IoB6*BW(#gZPi}A!P#|I~Vs`t1&XDu>q=3U@o?4~nel_U$p Xo+MMbOqC*kpoI*cu6{1-oD!MSfUR9`DpEavd&1yC`Ar>mdKI;Vst E0FodY+5i9m literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/RedundantC/wis_red.png b/mods/wisgame/textures/RedundantC/wis_red.png new file mode 100644 index 0000000000000000000000000000000000000000..3bfaf6212e4db53fe1f17097f79a70ec1f11bbd2 GIT binary patch literal 855 zcmV-d1E~CoP)YKKxPR#gQH z5UZ~H*Re!Gf{GpL0=BT=Au*aF4QgpS8d2umB#x8#c{#JNEPuy7{?6|^*ZKPKH+HR$ zxtM>z^Tqc(>O7!SQ>@ydH77W4`h@dVKUl3(0;^1e- zr9;}xc(1Go{C^l`IVQ;2u4xZ<3CBE9Bi_0K;hYiugI!0HPsO*8=m;S?@qJ!jK#SgJYVnACsD$c~7dToSYBC*ytA-h$#%k>9-H{A~`m zT67-J^cuS2Lq hBtj*pRg&;E{{#G)P+7~%Er$RA002ovPDHLkV1mk}o}~Z) literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/RedundantC/wis_sky.png b/mods/wisgame/textures/RedundantC/wis_sky.png new file mode 100644 index 0000000000000000000000000000000000000000..724eb61aa241597148d5d47bfedb7de74a4c058d GIT binary patch literal 114 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GGLLkg|>2BR0prDGU zi(`m|U~@~ literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/RedundantC/wis_white.png b/mods/wisgame/textures/RedundantC/wis_white.png new file mode 100644 index 0000000000000000000000000000000000000000..aeb32fd3503fe93483a72cadd4157567da7f4292 GIT binary patch literal 112 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GGLLkg|>2BR0prDec zi(`m|VDcY+79J4>HLfpBTl=IA959e#Tb#&niideVA4B#j78!*rl7c|h44$rjF6*2U Fng9ms8c+ZL literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/RedundantC/wiz_blue.png b/mods/wisgame/textures/RedundantC/wiz_blue.png new file mode 100644 index 0000000000000000000000000000000000000000..9eaf03494c807287c349ef432e9daf6fa7f39788 GIT binary patch literal 686 zcmV;f0#W^mP)CyFc3vQ7fF^~J28SF1=_px1U+zXlqRu*coQXV zeRKg2MADkSab$k|{!{zMvo`jq=hKJ2-#+yit}62)Ek(6R#X041rLf=WSho5b_xk+W zYYIDgJxS(=SN2xZm(lfHHO8WRsLH3RK1=ddWy|7cQndgcI@P+8)+_mbeNy)vWcG`e z*QBc}GINnDRDd2Kwv)2Un%t~lXXPh=f{~kMd0VeiS`;t5`H^*a%?dP*x1tRe3dCKK zW)|lOka1C|GpLJfH1gp+3M$oWkULfl;LQN^G*4JrRUA0ZSl?3Cyv3dY;BZr!y!`F` zD1mH1wb!T^Xo!`fA!n^*)HUB&T1wRd@SLNT)0fhWg>ZSJ8AVXJ5S6JEvmDI}O%njl znR}3lXClxTCPi*3BgCiaB%7+hxF>8=RE-hFtOS5HG`IhHui~?^Zpvhq=*dlKnbDkD z+CVfZNaqdipW8q(=IG`}$aQ16ZbCFxg<4se%M8UP9>X5p-Ey>IMpL7CZLB zd545exE0P@+~vu&RQeY&u37E0iTG71oZSmd zT~KR_W4s5V+mH(%lQ%Ew`ZLpZVrPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1dvHYK~#8N?VHU~ zBOwrg&7N}drVr^$7+=DN)SIW=luj|Vh`==c1I?trs#HeT8K6J9A-J9%4D$8$^&Kxs zJU%{}92bVE9p?s~gH>t6J2g{63oC+#b;7EMoY`X38(&34&MYx%jjk#pXS5iV#*QK* zWt154Mvf>WMO)0j`0gOlo^YbJkDeVVTAAV*LL`}d@SeZOP%Jka3>}SE_d&>%cvYl3 zzCAZ|nWu_L2PiF9>)8z{-9pq#*3Qf+lHWslMh(qpH{^DgFRTz&U3BoMF6xrA&^l5j z(05t-bX6CO5HD9qB(lUa#29-**x7MU>xcxNA;xea#&98HK$rfO5Z_%*z%yhVs0nUL zNWPDkJOEsU)@h_z$+8mIbPKN4C&V_tc>-Mf$HU1O1y_i#A;xea<7rkO7b1wnF;Pj# zGM_&n0O{)psAq^)pi0j@f)sNlYn$!V;LegF)o#88Qz=*2t#4^i`Mo^@Pw!3d)7Xj= zgcP^G=7ne>DTUbYq7dI@8N-wijZ&hGbXJ?okX|Y9^OSqIfC!BeYibQi*&A%@nXP-d zG6W^eThs%m5Qt?yaFz%nAXbuNm@6c{!wg+YOcb$kJRuvF#bgpvjw=NC`1okHcRruv zl|0w$HD3MZ`T4mf130dbJsGo@Eo92J*QyL)cHc$_Y0Wq%V?@dN)yCy=`PIhD%S*hn z!~6Styt?&QD@MhMI!s6|BFB=LRLDjmW^Ey1An~e=wM=P9Q59n5EUOfNnUp5TUY1Ls zDg>Jy&VS6E_F7^_8O?ly{m4jN`M#NzfB$or)|(Mm$tS>oA2$JY=93RzN}^e%*m zRu!lTA(ySAmMg(Et{Gd;5C$5P50eS#Pp8xlQfJ@O(^I^{^ZEH1uV~ax6p&-zjW;Gk z;30btI*lwSsKFRxqVV;*iG(&Ga>7)(1kX zV%b7QX2%L}<8jx!EQ^v^LOeUlaN;sGLuRcXmbvSa)ys(AYPt|(OcSzVxe9AT*Jla} zo*~9?AxL)qPA+N8mx0fS_X9$8cJ22}AXOfbIdT6+JAd{yS=9!%)hsN4UGI{6oyvz)fVz?{HFls>mFDc0uA=e2>4m* zZbhSPQDguxZXka7hxpH=af+0zQg-B|;;2$a(c8Zme~~ef9@0wD5cu0Qu!-7!E{F2x zV-lsSmKph36?Z+LAT9*nH)`L{86^fQqQodUB8_l`0GvOzEXl#FIh4~|Z86h@q$Lg* zap=f7Mqfe*mOS_^G{i{#K0{NAs*oN5H6+AHiP%_5h=ha^y<(&##L4^PS literal 0 HcmV?d00001 diff --git a/mods/wisgame/textures/wwwq/player_back.png b/mods/wisgame/textures/wwwq/player_back.png new file mode 100644 index 0000000000000000000000000000000000000000..2b15626e303bbf4cdcfe369d4766cef71d4baf59 GIT binary patch literal 1115 zcmV-h1f=_kP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1Mo>iK~#8N?VCZ8 z>L3t?^{rgFoI`pE^%5S^rK{P^qH28m2RuXGUpg+1H(b)k2BJ9mk9goN3 z$DC$yJRa4KEk^fFmj=EBjncYwsHcP&8U!`%fL0McJ;gL>coY#nJ;YRPa8waKEyYx8 zXcieREyPr5U`81(HO2fhN030x2`6rP_Uv$}ktxWK0-VW5NB@;YuHk5dOGnMwXRu_7 zISY~$<5VF@=08bHL`qVOtCp;dnKKoU$(J;VQ-oyKMZl-}qK+&{1G}s?u&WDK2+9?c z(kwxSD1#%UI6FRR9VrDFq6`R8286VORrBDOEfe>Lz9}}$!!Tm=knq&wbF7iRi5=3I+g@mA7wILX1WQY(_Wf?-0 z0U-iNZdxFu01_d+gM^R_YKX9ees@}Hm$iQk{;vv)1d5mB7~bOFRERm!)8C=Q7!j8F zgjh6-@g%s+D}=b;@6q-Shl4qj=llEHoW1h(^|dC0m{-V_j9&B<(ruTeRR+@yH zW*l&6RkB{%xm+$UZJbUgbEb#e?PkuN{q^G{6{ENKHx=TG@X;j36=HG3j4fmth&hX+ zEmI;=stHl`=p+6gAjDIawoERpTEc>Bvucb3ppYe=>69+#=EL5x^BbBS# zhzLP;yiyVm?6Q}u9_6z28lWZYwgT4$RCTMgSgdM*P_S!XJ-{VlchEQWEdvp5R7P}P* z=&pR}?_Xe3NRi+owy1})!^ah;U5dmb5|TogOBUk0thEk=vPj#n-3jWG->*=XJR`ke zF2%_Hz_ps`cQW*TXn?)fm95DUnou>!&JYSPVJ?g5l`Wx+=!sZBxfv454xbj;k}5%c zhWJpx33K^}c{^z^HD|51jPMa()FqJ&o^}xy)j}+}!KAGFagDrQy@7Bzzl hiJ3k40Dv@hyI;7sf49+1>): Shifts bits to the right12. + +2, 3, 5, 7, 11, 13, 17, 19, 23, 29, +31, 37, 41, 43, 47, 53, 59, 61, 67, +71, 73, 79, 83, 89, 97, 101, +103, 107, 109, 113, 127, 131, +137, 139, 149, 151, +157, 163, 167, 173, 179, 181, 191, +193, 197, 199, 211, 223, 227, 229, 233, +239, 241, 251, 257, 263, 269, 271, 277, +281, 283, 293, 307, 311, 313, +317, 331, 337, 347, 349, 353, +359, 367, 373, 379, 383, +389, 397, 401, 409, 419, 421, 431, 433, 439, +443, 449, 457, 461, 463, 467, 479, 487, 491, 499, +503, 509, 521, 523, 541, 547, 557, 563, 569, 571, +577, 587, 593, 599, 601, 607, 613, 617, 619, 631, +641, 643, 647, 653, 659, 661, 673, 677, 683, 691, +701, 709, 719, 727, 733, 739, 743, 751, 757, 761, +769, 773, 787, 797, 809, 811, 821, 823, 827, 829, +839, 853, 857, 859, 863, 877, 881, 883, 887, 907, +911, 919, 929, 937, 941, 947, 953, 967, 971, 977, +983, 991, 997 + +--]] + +-- Bitwise AND +function band(a, b) + local result = 0 + local bitval = 1 + while a > 0 and b > 0 do + local abit = a % 2 + local bbit = b % 2 + if abit == 1 and bbit == 1 then + result = result + bitval + end + a = math.floor(a / 2) + b = math.floor(b / 2) + bitval = bitval * 2 + end + return result +end + +-- Bitwise OR +function bor(a, b) + local result = 0 + local bitval = 1 + while a > 0 or b > 0 do + local abit = a % 2 + local bbit = b % 2 + if abit == 1 or bbit == 1 then + result = result + bitval + end + a = math.floor(a / 2) + b = math.floor(b / 2) + bitval = bitval * 2 + end + return result +end + +-- Bitwise XOR +function bxor(a, b) + local result = 0 + local bitval = 1 + while a > 0 or b > 0 do + local abit = a % 2 + local bbit = b % 2 + if abit ~= bbit then + result = result + bitval + end + a = math.floor(a / 2) + b = math.floor(b / 2) + bitval = bitval * 2 + end + return result +end + +-- Bitwise NOT +function bnot(a) + local result = 0 + local bitval = 1 + while a > 0 do + local abit = a % 2 + if abit == 0 then + result = result + bitval + end + a = math.floor(a / 2) + bitval = bitval * 2 + end + return result +end + +-- Left shift +function lshift(x, by) + return x * 2 ^ by +end + +-- Right shift +function rshift(x, by) + return math.floor(x / 2 ^ by) +end + + +local gen_bitwise_assert = function(a,b) +print("AND: ", band(a, b)) +print("OR: ", bor(a, b)) +print("XOR: ", bxor(a, b)) +print("NOT: ", bnot(271)) +print("Left Shift: ", lshift(a, 1)) +print("Right Shift: ", rshift(a, 1)) +end +local a, b = 127, 271 +--gen_bitwise_assert(a,b) +assert(band(a, b) == 15) +assert(bor(a, b) == 383) +assert(bxor(a, b) == 368) +assert(bnot(b) == 240) +assert(lshift(a, 1) == 254) +assert(rshift(a, 1) == 63) + diff --git a/mods/wislib/lua5_1/events.lua b/mods/wislib/lua5_1/events.lua new file mode 100644 index 0000000..e69de29 diff --git a/mods/wislib/lua5_1/io.lua b/mods/wislib/lua5_1/io.lua new file mode 100644 index 0000000..0f6a1ac --- /dev/null +++ b/mods/wislib/lua5_1/io.lua @@ -0,0 +1,125 @@ +--context is always -eq to the highest possible subfolder in the mods dir, this can be ether the mod or modpack root folder. +local DIR_DELIM = debug.getinfo(1, "S").source:match("[\\/]") +local context = debug and debug.getinfo(1, "S").source:match("mods[/\\][/\\]?([^/]*)") or "context" +local cwdpath = minetest and (minetest.get_modpath(minetest.get_current_modname()) .. DIR_DELIM .. "lua5_1") or debug.getinfo(1, "S").source:match("^(.+)[/\\]"):sub(2) + +--setup lib env +local print = _G[context]["log"] +--some string function moved here, for more info see: string.lua +function string:trim() + return self:match("^%s*(.-)%s*$") +end + +--[[ +function string:split (p2Sep, p3Patern) + if p2Sep == nil then + p2Sep = "%s" + end + if p3Patern == nil then + p3Patern = table.concat({"([^", p2Sep, "]+)"}, "") + end + local returns = {} + for _ in string.gmatch(self, p3Patern) do + table.insert(returns, _) + end + return returns +end +--]] + +function string:startsWith(p2Needle) -- self == haystack + return self:sub(1, #p2Needle) == p2Needle +end + +function string:endsWith(p2Needle) -- self == haystack + return p2Needle == "" or self:sub(-#p2Needle) == p2Needle +end + +function string:charCount(p2Char) + local count = 0 + for _ in string.gmatch(self, p2Char) do + count = count + 1 + end + return count +end + +--end string.lua snipet + + +_G[context].colors ={ + reset = "\27[0m", + red = "\27[31m", + green = "\27[32m", + yellow = "\27[33m", + blue = "\27[34m", + magenta = "\27[35m", + cyan = "\27[36m", + white= "\27[37m" +} + +_G[context].forFileAsLines=function(filePath, funcHandle, ignoreReturn) + local file = io.open(filePath, "r") + --if file is context:open then + local returns = {} + if not file then error(_G[context].colors.red.."access error: reading non-existant file, @" .._G[context].colors.cyan ..filePath.._G[context].colors.reset) end + if file then + --itarate over each line and pass to funkyFunc + for line in file:lines() do + local linedata=line:trim()--:sub(1,-2) --remove spooky char at the end of a line. If file uses \r\n, it may require (1,-3) + linedata=funcHandle and (funcHandle(linedata)) or linedata --buggy:TODO + --this data subject to brakeages, test for errors here: + --print("<"..linedata..">") + if not ignoreReturn then --used for large files, to avoid memory bloat. + table.insert(returns, linedata) + end + end + file:close() + return returns + else + return {} + end +end + +-- +_G[context].forFileAsIniObj = function(filePath, ignoreHeaders) + local debug_print=false + local returns = {} --object to store data about ini file as a hashmap table + returns[""]={} --default object to store global values before a header tag('[' or ']') is found in the file stream + local rpointer = "" -- by default pointer set to "" by default + local _ = debug_print and print("<"..filePath..">") + local _ = _G[context].forFileAsLines(filePath, function (line) + --in ini, ';' may be used as a comment by default. + --in the future this may be abstracted into a larger function with more customization + if not line:startsWith(";") and string.charCount(line, " ") ~= #line and #line ~= 0 then --discard comments or empty lines + --if is header "[*]" + local _ = debug_print and print(line) + if line:match("^%[.*%]$") then + if not ignoreHeaders then + rpointer = line:sub(2,-2):trim() --remove [ and ] from the header and use as str:returnPointer + returns[rpointer]= returns[rpointer] or {} + end + --else if is key value pair "*=*" + elseif line:match("^.+=.+$") and line:charCount("=") == 1 then + local spointerarray = line:split("=") + spointerarray[1]=spointerarray[1]:trim() + spointerarray[2]=spointerarray[2]:trim() + --If parser fails due to missing '"', use raw string as a fall back. + --minetest.parse_json create an unmutable error with no way to prevent it, + --just return as string ill deal with this later. :( + --Upon reflection this function should always return a string, + --since it may be used in multiple use case and so should leave parsing decisions to the caller + --_G[context].parse(spointerarray[2]) or + returns[rpointer][spointerarray[1]] = spointerarray[2] + else --else is error + error(table.concat({"error reading: ", filePath, "@^", line, "$"},"")) + end + end + end, true) + --if the global array table was never used, delete it. + if #returns[""] == 0 and true then + returns[""]=nil + end + return returns +end +--Why the fuck is "true" true in the context of a conditional, is lua just as bad as javascript? +assert(true == _G[context].parse(_G[context].forFileAsIniObj(cwdpath..DIR_DELIM.."test.ini", false)["testdata"]["success"])) + diff --git a/mods/wislib/lua5_1/math.lua b/mods/wislib/lua5_1/math.lua new file mode 100644 index 0000000..e69de29 diff --git a/mods/wislib/lua5_1/number.lua b/mods/wislib/lua5_1/number.lua new file mode 100644 index 0000000..e69de29 diff --git a/mods/wislib/lua5_1/table.lua b/mods/wislib/lua5_1/table.lua new file mode 100644 index 0000000..3432e86 --- /dev/null +++ b/mods/wislib/lua5_1/table.lua @@ -0,0 +1,30 @@ +--[[ +-- Original table +original_table = { 1, "hello", true } + +-- Metatable to track reads +metatable = { + __index = function(t, key) + local value = rawget(t, key) + print("Key:", key, "Type:", type(value)) + return value + end +} + +-- Set metatable +setmetatable(original_table, metatable) + +-- Access elements +print(original_table[1]) +print(original_table[2]) +print(original_table[3]) +--]] +-- Function to check if a string is in the table +function table.contains(table, element) + for _, value in ipairs(table) do + if value == element then + return true + end + end + return false +end diff --git a/mods/wislib/lua5_1/test.ini b/mods/wislib/lua5_1/test.ini new file mode 100644 index 0000000..835252c --- /dev/null +++ b/mods/wislib/lua5_1/test.ini @@ -0,0 +1,9 @@ +; This file created to test io.lua's ability to read files +; If you modify this file, please restart your server to see changes take effect. +; Please note: built-in reader reads all data as type:string, then converts them as a json object with a string fallback +; Comments are denoted by a prefacing ; character, +; [headers] are denoted by enclosing a [a-zA-Z0-9%-_] string, with braces +; key value pairs are denoted by placing a key infront of = symbole folowed by a value, Note: spaces are not trimed +[testdata] +success = true + diff --git a/mods/wislib/minetest/anticheat.lua b/mods/wislib/minetest/anticheat.lua new file mode 100644 index 0000000..e69de29 diff --git a/mods/wislib/minetest/booking.lua b/mods/wislib/minetest/booking.lua new file mode 100644 index 0000000..e69de29 diff --git a/mods/wislib/minetest/chunks.lua b/mods/wislib/minetest/chunks.lua new file mode 100644 index 0000000..e69de29 diff --git a/mods/wislib/minetest/commands.lua b/mods/wislib/minetest/commands.lua new file mode 100644 index 0000000..d41a550 --- /dev/null +++ b/mods/wislib/minetest/commands.lua @@ -0,0 +1,120 @@ +local context = debug and debug.getinfo(1, "S").source:match("mods[/\\][/\\]?([^/]*)") or error("They broke debug!") + +-- core: /usr/share/games/core/builtin/game/chat.lua +local S = core.get_translator("__builtin") +--local T = core.get_translator("") +--core.unregister_chatcommand("kill") +local handle_kill_command = core.registered_chatcommands["kill"].func +core.override_chatcommand("kill", { + params = S("[]"), + description = S("Kill player or yourself"), + privs = {server=false}, + func = function(name, param) + if param == "" or param == name or core.get_player_privs(name).server then + return handle_kill_command(name, param) + else + return false, "You don't have permission to run this command (missing privileges: server)." + end + --return handle_kill_command(name, param == "" and name or param) + end, +}) + + +local handle_giveme_command = core.registered_chatcommands["giveme"].func +core.override_chatcommand("giveme", { + params = S(" [ []]"), + description = S("Give item to yourself"), + privs = {give=not core.is_singleplayer()}, + func = function(name, param) + local par=param:split(" ") + if #par >=1 and not par[1]:startsWith("mapgen_") and core.registered_aliases["mapgen_"..par[1]] then + par[1]="mapgen_"..par[1] + param=table.concat(par, " ") + end + return handle_giveme_command(name, param) + end, +}) + +local handle_give_command = core.registered_chatcommands["give"].func +core.override_chatcommand("give", { + params = S(" [ []]"), + description = S("Give item to player"), + privs = {give=not core.is_singleplayer()}, + func = function(name, param) + local par=param:split(" ") + if #par >=2 and not par[2]:startsWith("mapgen_") and core.registered_aliases["mapgen_"..par[2]] then + par[2]="mapgen_"..par[2] + param=table.concat(par, " ") + end + return handle_give_command(name, param) + end, +}) + + +core.register_chatcommand("clear", { + params = "", + description = "clear screen", + privs = {}, + func = function(name, param) + local count = 0 + repeat + count = count + 1 + minetest.chat_send_player(name, " ") + until count >= 20 + end, +}) +core.register_chatcommand("cls", { + params = core.registered_chatcommands["clear"].params, + description = core.registered_chatcommands["clear"].description, + privs = core.registered_chatcommands["clear"].privs, + func = core.registered_chatcommands["clear"].func, +}) + + +core.register_chatcommand("items", { + params = "[metadata]", + description = "list all items or items with metadata", + privs = {}, + func = function(name, param) + local items = {} + local nodes = minetest.registered_nodes + + -- Populate the items table with all registered items + for name, def in pairs(minetest.registered_items) do + items[name] = def + end + + -- Remove entries that are also in the nodes list + for name in pairs(nodes) do + items[name] = nil + end + + -- Print the remaining items + for itemname, def in pairs(items) do + minetest.chat_send_player(name, "Registered item: " .. itemname) + end +end +}) +core.register_chatcommand("nodes", { + params = "[metadata]", + description = "list all items or items with metadata", + privs = {}, + func = function(name, param) + for item, def in pairs(minetest.registered_nodes) do + minetest.chat_send_player(name, "Registered node: " .. item) + end + end +}) + +core.register_chatcommand("biomes", { + params = "[metadata]", + description = "list all items or items with metadata", + privs = {}, + func = function() + local biomes = minetest.registered_biomes + for name, biome in pairs(biomes) do + print("Biome name: " .. name) + end + end +}) + diff --git a/mods/wislib/minetest/content.lua b/mods/wislib/minetest/content.lua new file mode 100644 index 0000000..e69de29 diff --git a/mods/wislib/minetest/detection.lua b/mods/wislib/minetest/detection.lua new file mode 100644 index 0000000..e69de29 diff --git a/mods/wislib/minetest/dialogue.lua b/mods/wislib/minetest/dialogue.lua new file mode 100644 index 0000000..e69de29 diff --git a/mods/wislib/minetest/entity.lua b/mods/wislib/minetest/entity.lua new file mode 100644 index 0000000..e69de29 diff --git a/mods/wislib/minetest/guilds.lua b/mods/wislib/minetest/guilds.lua new file mode 100644 index 0000000..e69de29 diff --git a/mods/wislib/minetest/heath-bars.lua b/mods/wislib/minetest/heath-bars.lua new file mode 100644 index 0000000..e69de29 diff --git a/mods/wislib/minetest/hotbar.lua b/mods/wislib/minetest/hotbar.lua new file mode 100644 index 0000000..e69de29 diff --git a/mods/wislib/minetest/hud.lua b/mods/wislib/minetest/hud.lua new file mode 100644 index 0000000..e69de29 diff --git a/mods/wislib/minetest/initialize.lua b/mods/wislib/minetest/initialize.lua new file mode 100644 index 0000000..5296c58 --- /dev/null +++ b/mods/wislib/minetest/initialize.lua @@ -0,0 +1,24 @@ +local context = debug and debug.getinfo(1, "S").source:match("mods[/\\][/\\]?([^/]*)") or error("They broke debug!") +local DIR_DELIM = debug.getinfo(1, "S").source:match("[\\/]") + +_G[context] = _G[context] or {} +_G[context].init = function (path, patern) + path = path or "/src/" + patern = patern or "%.lua$" + local MOD_NAME =minetest.get_current_modname() + local MOD_PATH=minetest.get_modpath(MOD_NAME) + --Crate a array (of type table) of all files in the MOD_PATH + local files = minetest.get_dir_list(MOD_PATH .. DIR_DELIM .. path) + --Shuffle array to randomize load order and encurage stable coding practices, you know cause slow is good? + table.shuffle(files) + -- Process each filename using ipairs + for _, filename in ipairs(files) do + -- Check that the string ends with ".lua" and is not the init.lua file + if filename:match(patern) and filename ~= 'init.lua'then + --do the thing + dofile(MOD_PATH .. DIR_DELIM .. path .. DIR_DELIM .. filename) + --print logs for debuging ~~purposes~~ + --minetest.log(filename) + end + end +end diff --git a/mods/wislib/minetest/minetest.lua b/mods/wislib/minetest/minetest.lua new file mode 100644 index 0000000..e69de29 diff --git a/mods/wislib/minetest/protection.lua b/mods/wislib/minetest/protection.lua new file mode 100644 index 0000000..e69de29 diff --git a/mods/wislib/minetest/registrate.lua b/mods/wislib/minetest/registrate.lua new file mode 100644 index 0000000..a6abeac --- /dev/null +++ b/mods/wislib/minetest/registrate.lua @@ -0,0 +1,164 @@ +local DIR_DELIM = debug.getinfo(1, "S").source:match("[\\/]") +local modname = core.get_current_modname() +local context = debug and debug.getinfo(1, "S").source:match("mods[/\\][/\\]?([^/]*)") or "context" +local modpath = core.get_modpath(modname) +local cwdpath = minetest and (core.get_modpath(core.get_current_modname()) .. DIR_DELIM .. "src") or debug.getinfo(1, "S").source:match("^(.+)[/\\]"):sub(2) +--local print = _G[context].log + + +local registrateItemFromBlob = function(blob) + assert(blob["name"]~=nil) + if not blob["name"]:find(":") then + blob["name"] = table.concat({core.get_current_modname(),blob["name"]},":") + end + blob["type"]="none" + local localname = blob["name"] + blob["name"] = nil + if blob["tool_dig_groups"] then + blob["tool_capabilities"] = blob["tool_capabilities"] or {} + blob["tool_capabilities"]["groupcaps"] = blob["tool_capabilities"]["groupcaps"] or {} + for _, value in ipairs(blob["tool_dig_groups"] ) do + blob["tool_capabilities"]["groupcaps"][value]={ + times = blob["tool_dig_times"] or nil, + uses = blob["tool_dig_uses"] or nil, + maxlevel = blob["tool_dig_maxlevel"] or nil + } + end + blob["tool_capabilities"]["damage_groups"] = blob["tool_capabilities"]["damage_groups"] or nil + end + --print(">>",blob["tool_damage_groups"]) + minetest.register_item(localname, blob) + --print(">>", minetest.write_json({[1] = 0.00, [2] = 2.00, [3] = 3.0, [100] = 99.0})) +end +local registrateBiomeFromBlob = function(blob) + assert(blob["name"]~=nil) + if not blob["name"]:find(":") then + blob["name"] = table.concat({core.get_current_modname(),blob["name"]},":") + end + if blob["depth_top"]==nil and blob["node_top_depth"]~=nil then + blob["depth_top"] = blob["node_top_depth"] + --blob["node_top_depth"]=nil + end + if blob["depth_filler"]==nil and blob["node_filler_depth"]~=nil then + blob["depth_filler"] = blob["node_filler_depth"] + blob["node_filler_depth"]=nil + end + if blob["depth_riverbed"]==nil and blob["node_riverbed_depth"]~=nil then + blob["depth_riverbed"] = blob["node_riverbed_depth"] + blob["node_riverbed_depth"]=nil + end + local yMin = -31000 + local yMax = 31000 + local oMin = blob["y_min"] or yMin + local oMax = blob["y_max"] or yMax + local seaLevel = minetest.settings:get("water_level") or 1 + blob["y_min"] = blob["dune_line"] or seaLevel + blob["y_max"] = oMax + + if blob["node_riverbed"] ~= nil or blob["node_substratum"] ~= nil then + blob["node_riverbed"] = blob["node_riverbed"] or blob["node_substratum"] or nil + blob["node_substratum"] = blob["node_substratum"] or blob["node_riverbed"] or nil + end + if blob["node_riverbed"] == nil then + minetest.register_biome(blob) + else + minetest.register_biome(blob) + blob["name"] = table.concat({blob["name"],"_subterranean"},"") + --e3.s + blob["node_top"] = blob["node_riverbed"] + blob["depth_top"] = blob["depth_riverbed"] or 1 + blob["node_filler"] = blob["node_substratum"] + blob["depth_filler"] = blob["node_substratum_depth"] or 1 + + blob["y_max"] = blob["y_min"] - 1 + blob["y_min"] = oMin + --print(blob) + + minetest.register_biome(blob) + + + + end + --node_riverbed = "mapgen_sand" + --node_riverbed_depth = 3 + +--node_substratum="mapgen_sandstone" +--node_substratum_depth=1 + +end +local registrateToolFromBlob = function(blob) + assert(blob["name"]~=nil) + if not blob["name"]:find(":") then + blob["name"] = table.concat({core.get_current_modname(),blob["name"]},":") + end + blob["type"]="none" + local localname = blob["name"] + + blob["type"]=nil + minetest.register_tool(localname, blob) +end + +local registrateNodeFromBlob = function(blob) + local nodeName=blob["name"] + blob["name"]=nil + assert(nodeName~=nil) + if not nodeName:find(":") then + nodeName = table.concat({core.get_current_modname(), nodeName},":") + --print(nodeName) + end + local nodeAlias=blob["alias"] + blob["alias"]=nil + core.register_node(nodeName, blob) + if type(nodeAlias) == "string" then + core.register_alias(nodeAlias,nodeName) + elseif type(nodeAlias) == "table" then + for key, value in ipairs(nodeAlias) do + core.register_alias(value, nodeName) + end + else + end + + local wah = minetest.registered_nodes[nodeName].groups +end +_G[context].registrate_from_file = function(filePath) + --print(filePath:match("^.+%.(.+)$")) + for header, data in pairs(_G[context].forFileAsIniObj(filePath, false)) do + --print("["..header.."]") + for k, v in pairs(data) do + data[k]=_G[context].parse(v) + --print("reg", data, k) + --assert (data[k]~=nil) + end + + if data["type"] == nil then + error("expectation not met, missing type in file:".. filePath) + end + assert(type(data["type"])=="string") + local types={"node", "item", "tool", "biome", "craft"} + if not table.contains(types, data["type"]) then + error("expectation not met, invalid type in file:".. filePath) + end + if data["type"] == "node" then + data["type"]=nil + registrateNodeFromBlob(data) + end + if data["type"] == "item" then + data["type"]=nil + registrateItemFromBlob(data) + end + if data["type"] == "tool" then + data["type"]=nil + registrateToolFromBlob(data) + end + if data["type"] == "biome" then + data["type"]=nil + registrateBiomeFromBlob(data) + end + end + +end + +--_G[context].registrate_from_file("") +--_G[context].registrate_from_folder("") + + diff --git a/mods/wislib/minetest/trees.lua b/mods/wislib/minetest/trees.lua new file mode 100644 index 0000000..e69de29 diff --git a/mods/wislib/mod.conf b/mods/wislib/mod.conf new file mode 100644 index 0000000..8ae5aa7 --- /dev/null +++ b/mods/wislib/mod.conf @@ -0,0 +1,2 @@ +#name is a uid that only allows characters [a-z0-9_] +name = wislib diff --git a/mods/wislib/namespace/namespace.lua b/mods/wislib/namespace/namespace.lua new file mode 100644 index 0000000..f35b044 --- /dev/null +++ b/mods/wislib/namespace/namespace.lua @@ -0,0 +1,71 @@ +local context = debug and debug.getinfo(1, "S").source:match("mods[/\\][/\\]?([^/]*)") or error("They broke debug!") +local modname = minetest and minetest.get_current_modname() +local modpath = minetest and minetest.get_modpath(modname) +-- Table main_table +--registrate namespace aliases, shorthands, spelling errors, and A.R.G. hint declarations +--that will delegate the function call to _G[context] +--TODO:127 is the hint, stop asking! +_G[string.char(127+1)]={} -- Γ‡ +setmetatable(_G[string.char(127+1)], { __index = _G[context] }) +--_G[string.char(127)]={} -- βŒ‚ +--setmetatable(_G[string.char(127)], { __index = _G[context] }) +_G[string.char(99)]={} -- c +setmetatable(_G[string.char(99)], { __index = _G[context] }) +_G[string.char(67)]={} -- C +setmetatable(_G[string.char(67)], { __index = _G[context] }) + +--[[ +ALPHABET SOUP xD: Anise, Basil, Cilantro, Dill, Epazote, Fennel, Garlic, +Horehound, Italian parsley, Jasmine, Khorne (Pre-Seasoned), +Lemongrass, Mint, Nasturtium, Oregano, Parsley +Quinine, Rosemary, Sage, Thyme, Uva Ursi, Vietnamese coriander +Wasabi, Xylopia, Yuca, Zapote +--]] + + + +--[[ +--The Four Classical Elements: + --🜁 (Alchemical Symbol for Air) : Represents intellect, communication, and self-awareness. + --πŸœ‚ (Alchemical Symbol for Fire) : Symbolizes energy, transformation, passion, and self-motivation. + --πŸœƒ (Alchemical Symbol for Earth) : Represents physical sensations and stability, and mastery over the flesh + --πŸœ„ (Alchemical Symbol for Water) : Symbolizes intuition and emotional depth. + +--The Three Primes (Tria Prima) + --☿ (Mercury) : Symbolizes the mind and volatility. + --πŸœ” (Salt) : Represents the body and solidity. + --🜍 (Sulfur) : Represents the soul and combustibility. + +--The Seven Planetary Metals + --β˜‰(Gold) : Associated with the Sun, symbolizes perfection and enlightenment. + --☽(Silver) : Associated with the Moon, represents purity and reflection. + --β™‚(Iron) : Associated with Mars, symbolizes strength and aggression. + --☿(Mercury) : Associated with Mercury, represents fluidity and adaptability. + --♃(Tin) : Associated with Jupiter, symbolizes wisdom and expansion. + --♀(Copper) : Associated with Venus, represents love and beauty. + --β™„(Lead) : Associated with Saturn, symbolizes endurance and transformation. + +--Other Alchemical Symbols + --πŸœ”(Philosopher’s Stone) : Represents the ultimate goal of alchemy, transformation and enlightenment. + --πŸœ“(Ouroboros) : Symbolizes infinity and the cyclical nature of life. + --πŸœ‡(Alchemical Flask) Represents the vessel used in alchemical processes. + --βš•(Staff of Asclepius) Symbolizes healing and balance. See also: Caduceus ☀ +--Other Symbols + + --β˜₯ (Ankh) + --⚘ (Flower) + --βš– (Scales) + --β™Ύ (Infinity) + --☯ (Yin Yang) + + +--]] + + + + + + + + + diff --git a/mods/wislib/string.lua b/mods/wislib/string.lua new file mode 100644 index 0000000..93a177f --- /dev/null +++ b/mods/wislib/string.lua @@ -0,0 +1,59 @@ +--setup lib env +local print = minetest and minetest.debug or print +--context is always -eq to the highest possible subfolder in the mods dir, this can be ether the mod or modpack root folder. +local context = debug and debug.getinfo(1, "S").source:match("mods[/\\][/\\]?([^/]*)") or "pack" + + +function string:basename () + return self:match("(.+)%..+") +end + +function string:trim() + return self:match("^%s*(.-)%s*$") +end +--[[ +function string:split (p2Sep, p3Patern) + if p2Sep == nil then + p2Sep = "%s" + end + if p3Patern == nil then + p3Patern = table.concat({"([^", p2Sep, "]+)"}, "") + end + local returns = {} + for _ in string.gmatch(self, p3Patern) do + table.insert(returns, _) + end + return returns +end +--]] +function string:startsWith(p2Needle) -- self == haystack + return self:sub(1, #p2Needle) == p2Needle +end + +function string:endsWith(p2Needle) -- self == haystack + return p2Needle == "" or self:sub(-#p2Needle) == p2Needle +end + +function string:charCount(p2Char) + local count = 0 + for _ in string.gmatch(self, p2Char) do + count = count + 1 + end + return count +end +_G[context]=_G[context] or {} +_G[context].colors=_G[context].colors or {} +_G[context].colors.linux={ + reset = "\27[0m", + red = "\27[31m", + green = "\27[32m", + yellow = "\27[33m", + blue = "\27[34m", + magenta = "\27[35m", + cyan = "\27[36m", + white= "\27[37m" +} + +--some string function required by other modues and so is always loaded first, as load order is random. +--should not effect anything that depends on this library. + diff --git a/mods/wislib/table.lua b/mods/wislib/table.lua new file mode 100644 index 0000000..becafa8 --- /dev/null +++ b/mods/wislib/table.lua @@ -0,0 +1,9 @@ +-- Function to check if a string is in the table +function table.contains(table, element) + for _, value in ipairs(table) do + if value == element then + return true + end + end + return false +end