From 647605cc681ee98de2048af8fcd820447e69451c Mon Sep 17 00:00:00 2001 From: Vanessa Dannenberg Date: Wed, 10 Mar 2021 15:38:57 -0500 Subject: [PATCH] rewrite most of the theming handling fixes a number of bugs and glitches this also brings in a major update to Unified Inventory --- minetest.conf | 13 - mods/castle_storage/crate.lua | 7 +- mods/castle_storage/ironbound_chest.lua | 7 +- mods/caverealms_lite/nodes.lua | 6 - mods/default/init.lua | 30 +- mods/default/mod.conf | 2 +- mods/default/textures/gui_formbg.png | Bin 0 -> 886 bytes mods/default/textures/gui_hotbar_selected.png | Bin 0 -> 175 bytes .../customize-dreambuilder-game.sh | 451 +++++++++++------- mods/dreambuilder_extras/init.lua | 2 + mods/dreambuilder_extras/mod.conf | 2 +- mods/dreambuilder_gui_theming/mod.conf | 2 - .../textures/default_chest_upper_slots_bg.png | Bin 4697 -> 0 bytes .../default_furnace_upper_middle_slots_bg.png | Bin 1068 -> 0 bytes ...fault_furnace_upper_right_slots_bg_2x1.png | Bin 1088 -> 0 bytes ...fault_furnace_upper_right_slots_bg_2x2.png | Bin 1221 -> 0 bytes .../textures/default_single_slot.png | Bin 642 -> 0 bytes .../default_standard_inventory_bg.png | Bin 5438 -> 0 bytes .../default_standard_inventory_old_bg.png | Bin 6883 -> 0 bytes .../textures/jeija_close_window.png | Bin 274 -> 0 bytes .../textures/jeija_luac_background.png | Bin 12774 -> 0 bytes .../textures/jeija_luac_runbutton.png | Bin 2465 -> 0 bytes .../textures/signs_lib_sign_bg.png | Bin 650 -> 0 bytes .../technic_base_machine_upgrade_slots_bg.png | Bin 1123 -> 0 bytes .../technic_base_machine_upper_bg.png | Bin 2669 -> 0 bytes .../technic_battery_box_upper_slots.png | Bin 2657 -> 0 bytes .../textures/technic_chest_form_bg.png | Bin 1575 -> 0 bytes .../textures/technic_cnc_upper_slots.png | Bin 1869 -> 0 bytes ...technic_coal_alloy_furnace_upper_slots.png | Bin 3384 -> 0 bytes .../technic_copper_chest_inventory.png | Bin 9274 -> 0 bytes .../textures/technic_gold_chest_inventory.png | Bin 11890 -> 0 bytes .../textures/technic_injector_upper_slots.png | Bin 3407 -> 0 bytes .../textures/technic_iron_chest_inventory.png | Bin 8580 -> 0 bytes .../textures/technic_main_inventory.png | Bin 6883 -> 0 bytes .../technic_mithril_chest_inventory.png | Bin 11890 -> 0 bytes .../textures/technic_reactor_upper_slots.png | Bin 2506 -> 0 bytes .../technic_silver_chest_inventory.png | Bin 11121 -> 0 bytes .../technic_wooden_chest_inventory.png | Bin 6709 -> 0 bytes .../textures/ui_bags_header.png | Bin 1329 -> 0 bytes .../textures/ui_bags_inv_large.png | Bin 5058 -> 0 bytes .../textures/ui_bags_inv_medium.png | Bin 3407 -> 0 bytes .../textures/ui_bags_inv_small.png | Bin 1824 -> 0 bytes .../textures/ui_bags_trash.png | Bin 1836 -> 0 bytes .../textures/ui_crafting_form.png | Bin 4212 -> 0 bytes .../textures/ui_form_bg.png | Bin 1466 -> 0 bytes .../textures/ui_main_inventory.png | Bin 6883 -> 0 bytes .../textures/vessels_upper_slots_bg.png | Bin 3407 -> 0 bytes mods/dreambuilder_hotbar/init.lua | 6 +- mods/dreambuilder_hotbar/mod.conf | 2 +- mods/dreambuilder_theme_functions/init.lua | 20 + mods/dreambuilder_theme_light/init.lua | 18 + mods/dreambuilder_theme_light/mod.conf | 3 + .../textures/dbtheme_light_gui_formbg.png | Bin 0 -> 964 bytes .../textures/dbtheme_light_gui_hb_bg_1.png} | Bin .../textures/dbtheme_light_gui_hb_bg_10.png} | Bin .../textures/dbtheme_light_gui_hb_bg_16.png} | Bin .../textures/dbtheme_light_gui_hb_bg_23.png} | Bin .../textures/dbtheme_light_gui_hb_bg_24.png} | Bin .../textures/dbtheme_light_gui_hb_bg_32.png} | Bin .../textures/dbtheme_light_gui_hb_bg_8.png} | Bin .../dbtheme_light_gui_hotbar_selected.png} | Bin .../dbtheme_light_jeija_close_window.png | Bin 0 -> 211 bytes .../dbtheme_light_jeija_luac_background.png | Bin 0 -> 8246 bytes .../dbtheme_light_jeija_luac_runbutton.png | Bin 0 -> 1639 bytes .../dbtheme_light_signs_lib_sign_bg.png | Bin 0 -> 414 bytes ...me_light_signs_lib_sign_color_palette.png} | Bin .../dbtheme_light_technic_chest_form_bg.png} | Bin .../dbtheme_light_ui_crafting_arrow.png | Bin 0 -> 869 bytes .../dbtheme_light_ui_formbg_9_sliced.png | Bin 0 -> 201 bytes .../textures/dbtheme_light_ui_single_slot.png | Bin 0 -> 671 bytes .../dbtheme_light_ui_single_slot_bright.png | Bin 0 -> 1054 bytes .../dbtheme_light_ui_trash_slot_icon.png | Bin 0 -> 1052 bytes .../dbtheme_light_vessels_shelf_slot.png} | Bin .../init.lua | 11 +- mods/dreambuilder_theme_settings/mod.conf | 3 + mods/homedecor_common/furnaces.lua | 12 +- mods/homedecor_common/mod.conf | 2 +- mods/locks/depends.txt | 1 + mods/locks/shared_locked_chest.lua | 11 +- mods/locks/shared_locked_furnace.lua | 24 +- mods/mesecons/mod.conf | 2 +- mods/mesecons/textures/jeija_close_window.png | Bin 0 -> 191 bytes mods/mesecons_luacontroller/init.lua | 6 +- .../textures/jeija_luac_background.png | Bin 0 -> 655 bytes .../textures/jeija_luac_runbutton.png | Bin 0 -> 2150 bytes mods/pipeworks/compat-chests.lua | 11 +- mods/pipeworks/compat-furnaces.lua | 26 +- mods/pipeworks/mod.conf | 2 +- mods/streetspoles/depends.txt | 2 +- mods/technic/machines/HV/nuclear_reactor.lua | 9 +- mods/technic/machines/MV/tool_workshop.lua | 11 +- .../machines/other/coal_alloy_furnace.lua | 22 +- mods/technic/machines/other/constructor.lua | 9 +- mods/technic/machines/other/injector.lua | 9 +- .../technic/machines/register/battery_box.lua | 11 +- mods/technic/machines/register/generator.lua | 9 +- .../machines/register/machine_base.lua | 12 +- mods/technic/mod.conf | 2 +- mods/technic_chests/mod.conf | 2 +- mods/technic_chests/register.lua | 11 +- .../textures/technic_chest_form_bg.png | Bin 0 -> 1656 bytes .../technic_copper_chest_inventory.png | Bin 0 -> 3394 bytes .../textures/technic_gold_chest_inventory.png | Bin 0 -> 4118 bytes .../textures/technic_iron_chest_inventory.png | Bin 0 -> 3139 bytes .../textures/technic_main_inventory.png | Bin 0 -> 4628 bytes .../technic_mithril_chest_inventory.png | Bin 0 -> 4118 bytes .../technic_silver_chest_inventory.png | Bin 0 -> 3908 bytes .../technic_wooden_chest_inventory.png | Bin 0 -> 1769 bytes mods/technic_cnc/cnc.lua | 10 +- mods/ufos/furnace.lua | 23 +- mods/ufos/init.lua | 14 +- mods/ufos/mod.conf | 1 + mods/unified_inventory/README.md | 4 +- mods/unified_inventory/api.lua | 116 +++-- mods/unified_inventory/bags.lua | 84 ++-- mods/unified_inventory/doc/mod_api.txt | 8 + mods/unified_inventory/init.lua | 101 +++- mods/unified_inventory/internal.lua | 273 +++++------ mods/unified_inventory/mod.conf | 3 +- mods/unified_inventory/register.lua | 261 +++++----- .../textures/ui_craftguide_form.png | Bin 962 -> 0 bytes .../textures/ui_crafting_arrow.png | Bin 0 -> 788 bytes .../textures/ui_formbg_9_sliced.png | Bin 0 -> 240 bytes .../textures/ui_misc_form.png | Bin 5789 -> 0 bytes .../textures/ui_single_slot.png | Bin 0 -> 648 bytes .../textures/ui_single_slot_bright.png | Bin 0 -> 1032 bytes .../textures/ui_trash_slot_icon.png | Bin 0 -> 1052 bytes .../textures/ui_xyz_off_icon.png | Bin 8606 -> 0 bytes .../textures/ui_xyz_on_icon.png | Bin 2182 -> 0 bytes mods/unified_inventory/waypoints.lua | 127 +++-- mods/vessels/init.lua | 13 +- mods/vessels/mod.conf | 2 +- mods/vessels/textures/vessels_shelf_slot.png | Bin 0 -> 130 bytes 133 files changed, 1027 insertions(+), 804 deletions(-) create mode 100644 mods/default/textures/gui_formbg.png create mode 100644 mods/default/textures/gui_hotbar_selected.png delete mode 100644 mods/dreambuilder_gui_theming/mod.conf delete mode 100644 mods/dreambuilder_gui_theming/textures/default_chest_upper_slots_bg.png delete mode 100644 mods/dreambuilder_gui_theming/textures/default_furnace_upper_middle_slots_bg.png delete mode 100644 mods/dreambuilder_gui_theming/textures/default_furnace_upper_right_slots_bg_2x1.png delete mode 100644 mods/dreambuilder_gui_theming/textures/default_furnace_upper_right_slots_bg_2x2.png delete mode 100644 mods/dreambuilder_gui_theming/textures/default_single_slot.png delete mode 100644 mods/dreambuilder_gui_theming/textures/default_standard_inventory_bg.png delete mode 100644 mods/dreambuilder_gui_theming/textures/default_standard_inventory_old_bg.png delete mode 100644 mods/dreambuilder_gui_theming/textures/jeija_close_window.png delete mode 100644 mods/dreambuilder_gui_theming/textures/jeija_luac_background.png delete mode 100644 mods/dreambuilder_gui_theming/textures/jeija_luac_runbutton.png delete mode 100644 mods/dreambuilder_gui_theming/textures/signs_lib_sign_bg.png delete mode 100644 mods/dreambuilder_gui_theming/textures/technic_base_machine_upgrade_slots_bg.png delete mode 100644 mods/dreambuilder_gui_theming/textures/technic_base_machine_upper_bg.png delete mode 100644 mods/dreambuilder_gui_theming/textures/technic_battery_box_upper_slots.png delete mode 100644 mods/dreambuilder_gui_theming/textures/technic_chest_form_bg.png delete mode 100644 mods/dreambuilder_gui_theming/textures/technic_cnc_upper_slots.png delete mode 100644 mods/dreambuilder_gui_theming/textures/technic_coal_alloy_furnace_upper_slots.png delete mode 100644 mods/dreambuilder_gui_theming/textures/technic_copper_chest_inventory.png delete mode 100644 mods/dreambuilder_gui_theming/textures/technic_gold_chest_inventory.png delete mode 100644 mods/dreambuilder_gui_theming/textures/technic_injector_upper_slots.png delete mode 100644 mods/dreambuilder_gui_theming/textures/technic_iron_chest_inventory.png delete mode 100644 mods/dreambuilder_gui_theming/textures/technic_main_inventory.png delete mode 100644 mods/dreambuilder_gui_theming/textures/technic_mithril_chest_inventory.png delete mode 100644 mods/dreambuilder_gui_theming/textures/technic_reactor_upper_slots.png delete mode 100644 mods/dreambuilder_gui_theming/textures/technic_silver_chest_inventory.png delete mode 100644 mods/dreambuilder_gui_theming/textures/technic_wooden_chest_inventory.png delete mode 100644 mods/dreambuilder_gui_theming/textures/ui_bags_header.png delete mode 100644 mods/dreambuilder_gui_theming/textures/ui_bags_inv_large.png delete mode 100644 mods/dreambuilder_gui_theming/textures/ui_bags_inv_medium.png delete mode 100644 mods/dreambuilder_gui_theming/textures/ui_bags_inv_small.png delete mode 100644 mods/dreambuilder_gui_theming/textures/ui_bags_trash.png delete mode 100644 mods/dreambuilder_gui_theming/textures/ui_crafting_form.png delete mode 100644 mods/dreambuilder_gui_theming/textures/ui_form_bg.png delete mode 100644 mods/dreambuilder_gui_theming/textures/ui_main_inventory.png delete mode 100644 mods/dreambuilder_gui_theming/textures/vessels_upper_slots_bg.png create mode 100644 mods/dreambuilder_theme_functions/init.lua create mode 100644 mods/dreambuilder_theme_light/init.lua create mode 100644 mods/dreambuilder_theme_light/mod.conf create mode 100644 mods/dreambuilder_theme_light/textures/dbtheme_light_gui_formbg.png rename mods/{dreambuilder_gui_theming/textures/gui_hb_bg_1.png => dreambuilder_theme_light/textures/dbtheme_light_gui_hb_bg_1.png} (100%) rename mods/{dreambuilder_gui_theming/textures/gui_hb_bg_10.png => dreambuilder_theme_light/textures/dbtheme_light_gui_hb_bg_10.png} (100%) rename mods/{dreambuilder_gui_theming/textures/gui_hb_bg_16.png => dreambuilder_theme_light/textures/dbtheme_light_gui_hb_bg_16.png} (100%) rename mods/{dreambuilder_gui_theming/textures/gui_hb_bg_23.png => dreambuilder_theme_light/textures/dbtheme_light_gui_hb_bg_23.png} (100%) rename mods/{dreambuilder_gui_theming/textures/gui_hb_bg_24.png => dreambuilder_theme_light/textures/dbtheme_light_gui_hb_bg_24.png} (100%) rename mods/{dreambuilder_gui_theming/textures/gui_hb_bg_32.png => dreambuilder_theme_light/textures/dbtheme_light_gui_hb_bg_32.png} (100%) rename mods/{dreambuilder_gui_theming/textures/gui_hb_bg_8.png => dreambuilder_theme_light/textures/dbtheme_light_gui_hb_bg_8.png} (100%) rename mods/{dreambuilder_gui_theming/textures/gui_hotbar_selected.png => dreambuilder_theme_light/textures/dbtheme_light_gui_hotbar_selected.png} (100%) create mode 100644 mods/dreambuilder_theme_light/textures/dbtheme_light_jeija_close_window.png create mode 100644 mods/dreambuilder_theme_light/textures/dbtheme_light_jeija_luac_background.png create mode 100644 mods/dreambuilder_theme_light/textures/dbtheme_light_jeija_luac_runbutton.png create mode 100644 mods/dreambuilder_theme_light/textures/dbtheme_light_signs_lib_sign_bg.png rename mods/{dreambuilder_gui_theming/textures/signs_lib_sign_color_palette.png => dreambuilder_theme_light/textures/dbtheme_light_signs_lib_sign_color_palette.png} (100%) rename mods/{dreambuilder_gui_theming/textures/gui_formbg.png => dreambuilder_theme_light/textures/dbtheme_light_technic_chest_form_bg.png} (100%) create mode 100644 mods/dreambuilder_theme_light/textures/dbtheme_light_ui_crafting_arrow.png create mode 100644 mods/dreambuilder_theme_light/textures/dbtheme_light_ui_formbg_9_sliced.png create mode 100644 mods/dreambuilder_theme_light/textures/dbtheme_light_ui_single_slot.png create mode 100644 mods/dreambuilder_theme_light/textures/dbtheme_light_ui_single_slot_bright.png create mode 100644 mods/dreambuilder_theme_light/textures/dbtheme_light_ui_trash_slot_icon.png rename mods/{dreambuilder_gui_theming/textures/vessels_shelf_slot.png => dreambuilder_theme_light/textures/dbtheme_light_vessels_shelf_slot.png} (100%) rename mods/{dreambuilder_gui_theming => dreambuilder_theme_settings}/init.lua (86%) create mode 100644 mods/dreambuilder_theme_settings/mod.conf create mode 100644 mods/mesecons/textures/jeija_close_window.png create mode 100644 mods/mesecons_luacontroller/textures/jeija_luac_background.png create mode 100644 mods/mesecons_luacontroller/textures/jeija_luac_runbutton.png create mode 100644 mods/technic_chests/textures/technic_chest_form_bg.png create mode 100644 mods/technic_chests/textures/technic_copper_chest_inventory.png create mode 100644 mods/technic_chests/textures/technic_gold_chest_inventory.png create mode 100644 mods/technic_chests/textures/technic_iron_chest_inventory.png create mode 100644 mods/technic_chests/textures/technic_main_inventory.png create mode 100644 mods/technic_chests/textures/technic_mithril_chest_inventory.png create mode 100644 mods/technic_chests/textures/technic_silver_chest_inventory.png create mode 100644 mods/technic_chests/textures/technic_wooden_chest_inventory.png create mode 100644 mods/ufos/mod.conf delete mode 100644 mods/unified_inventory/textures/ui_craftguide_form.png create mode 100644 mods/unified_inventory/textures/ui_crafting_arrow.png create mode 100644 mods/unified_inventory/textures/ui_formbg_9_sliced.png delete mode 100644 mods/unified_inventory/textures/ui_misc_form.png create mode 100644 mods/unified_inventory/textures/ui_single_slot.png create mode 100644 mods/unified_inventory/textures/ui_single_slot_bright.png create mode 100644 mods/unified_inventory/textures/ui_trash_slot_icon.png delete mode 100644 mods/unified_inventory/textures/ui_xyz_off_icon.png delete mode 100644 mods/unified_inventory/textures/ui_xyz_on_icon.png create mode 100644 mods/vessels/textures/vessels_shelf_slot.png diff --git a/minetest.conf b/minetest.conf index b2ea0fca..9e9273c3 100644 --- a/minetest.conf +++ b/minetest.conf @@ -4,16 +4,3 @@ remove_items = -1 disable_fire = true enable_mesh_cache = false moreblocks.stairsplus_in_creative_inventory = false - -dreambuilder_theme_form_bgcolor = #F0F0F0FF -dreambuilder_theme_btn_color = #B0B0B0FF -dreambuilder_theme_editor_text_color = #000000FF -dreambuilder_theme_editor_bg_color = #F0F0F0FF -dreambuilder_theme_listcolor_slot_bg_normal = #FFFFFF30 -dreambuilder_theme_listcolor_slot_bg_hover = #E0E0E0 -dreambuilder_theme_listcolor_slot_border = #606060 -dreambuilder_theme_tooltip_bgcolor = #A0A0A0 -dreambuilder_theme_tooltip_fontcolor = #FFF -dreambuilder_theme_window_darken = false -dreambuilder_theme_editor_border = false -dreambuilder_theme_image_button_borders = false diff --git a/mods/castle_storage/crate.lua b/mods/castle_storage/crate.lua index a374228c..238150d9 100644 --- a/mods/castle_storage/crate.lua +++ b/mods/castle_storage/crate.lua @@ -14,9 +14,10 @@ minetest.register_node("castle_storage:crate", { local meta = minetest.get_meta(pos) meta:set_string("formspec", "size[8,9]".. - default.gui_bg .. - default.gui_bg_img .. - default.gui_slots .. + "listcolors[#00000000;"..dreambuilder_theme.listcolor_slot_bg_hover..";#00000000]".. + dreambuilder_theme.make_inv_img_grid_v1(0, -0.05, 8, 4, false).. + dreambuilder_theme.make_inv_img_grid_v1(0, 4.95, 8, 1, true).. + dreambuilder_theme.make_inv_img_grid_v1(0, 5.95, 8, 3, false).. "list[current_name;main;0,0;8,5;]".. "list[current_player;main;0,5;8,4;]".. "listring[]") diff --git a/mods/castle_storage/ironbound_chest.lua b/mods/castle_storage/ironbound_chest.lua index d6afd555..88b563f2 100644 --- a/mods/castle_storage/ironbound_chest.lua +++ b/mods/castle_storage/ironbound_chest.lua @@ -6,9 +6,10 @@ local get_ironbound_chest_formspec = function(pos) local spos = pos.x .. "," .. pos.y .. "," ..pos.z local formspec = "size[8,9]".. - default.gui_bg .. - default.gui_bg_img .. - default.gui_slots .. + "listcolors[#00000000;"..dreambuilder_theme.listcolor_slot_bg_hover..";#00000000]".. + dreambuilder_theme.make_inv_img_grid_v1(0, -0.05, 8, 4, false).. + dreambuilder_theme.make_inv_img_grid_v1(0, 4.95, 8, 1, true).. + dreambuilder_theme.make_inv_img_grid_v1(0, 5.95, 8, 3, false).. "list[nodemeta:".. spos .. ";main;,0;8,4;]".. "list[current_player;main;,5;8,4;]".. "listring[]" diff --git a/mods/caverealms_lite/nodes.lua b/mods/caverealms_lite/nodes.lua index 1a82de33..9198a946 100644 --- a/mods/caverealms_lite/nodes.lua +++ b/mods/caverealms_lite/nodes.lua @@ -520,9 +520,3 @@ minetest.register_alias("caverealms:glow_gem_2", "caverealms:glow_gem") minetest.register_alias("caverealms:glow_gem_3", "caverealms:glow_gem") minetest.register_alias("caverealms:glow_gem_4", "caverealms:glow_gem") minetest.register_alias("caverealms:glow_gem_5", "caverealms:glow_gem") - -minetest.register_alias("caverealms:obsidian", "default:obsidian") -minetest.register_alias("caverealms:obsidian_1", "default:obsidian") -minetest.register_alias("caverealms:obsidian_2", "default:obsidian") -minetest.register_alias("caverealms:obsidian_3", "default:obsidian") -minetest.register_alias("caverealms:obsidian_4", "default:obsidian") diff --git a/mods/default/init.lua b/mods/default/init.lua index 3bd0ac49..2a9de7a4 100644 --- a/mods/default/init.lua +++ b/mods/default/init.lua @@ -16,25 +16,25 @@ default.get_translator = S minetest.register_on_joinplayer(function(player) -- Set formspec prepend local formspec = - "listcolors["..dreambuilder_theme.listcolor_slot_bg_normal.. - ";"..dreambuilder_theme.listcolor_slot_bg_hover.. - ";"..dreambuilder_theme.listcolor_slot_border.. - ";"..dreambuilder_theme.tooltip_bgcolor.. - ";"..dreambuilder_theme.tooltip_fontcolor.."]".. - "style_type[button;bgcolor="..dreambuilder_theme.btn_color.."]".. - "style_type[button_exit;bgcolor="..dreambuilder_theme.btn_color.."]".. - "style_type[image_button;bgcolor="..dreambuilder_theme.btn_color.. - ";border="..dreambuilder_theme.image_button_borders.."]".. - "style_type[image_button_exit;bgcolor="..dreambuilder_theme.btn_color.. - ";border="..dreambuilder_theme.image_button_borders.."]".. - "style_type[item_image_button;bgcolor="..dreambuilder_theme.btn_color.. - ";border="..dreambuilder_theme.image_button_borders.."]" + "listcolors["..dreambuilder_theme.listcolor_slot_bg_normal.. + ";"..dreambuilder_theme.listcolor_slot_bg_hover.. + ";"..dreambuilder_theme.listcolor_slot_border.. + ";"..dreambuilder_theme.tooltip_bgcolor.. + ";"..dreambuilder_theme.tooltip_fontcolor.."]".. + "style_type[button;bgcolor="..dreambuilder_theme.btn_color.."]".. + "style_type[button_exit;bgcolor="..dreambuilder_theme.btn_color.."]".. + "style_type[image_button;bgcolor="..dreambuilder_theme.btn_color.. + ";border="..dreambuilder_theme.image_button_borders.."]".. + "style_type[image_button_exit;bgcolor="..dreambuilder_theme.btn_color.. + ";border="..dreambuilder_theme.image_button_borders.."]".. + "style_type[item_image_button;bgcolor="..dreambuilder_theme.btn_color.. + ";border="..dreambuilder_theme.image_button_borders.."]" local name = player:get_player_name() local info = minetest.get_player_information(name) if info.formspec_version > 1 then - formspec = formspec .. "background9[5,5;1,1;gui_formbg.png;true;10]" + formspec = formspec .. "background9[5,5;1,1;"..dreambuilder_theme.name.."_gui_formbg.png;true;10]" else - formspec = formspec .. "background[5,5;1,1;gui_formbg.png;true]" + formspec = formspec .. "background[5,5;1,1;"..dreambuilder_theme.name.."_gui_formbg.png;true]" end player:set_formspec_prepend(formspec) diff --git a/mods/default/mod.conf b/mods/default/mod.conf index 79cf7dcd..0c8c73a9 100644 --- a/mods/default/mod.conf +++ b/mods/default/mod.conf @@ -1,4 +1,4 @@ name = default description = Minetest Game mod: default optional_depends = player_api -depends = dreambuilder_gui_theming +depends = dreambuilder_theme_settings diff --git a/mods/default/textures/gui_formbg.png b/mods/default/textures/gui_formbg.png new file mode 100644 index 0000000000000000000000000000000000000000..e259fec2e21e7c837f5cc0ebd8b61002936a9932 GIT binary patch literal 886 zcmeAS@N?(olHy`uVBq!ia0y~yVEh2YzgU=oB3zQpn}L*8fKP}kkj4aBT3RM1CQM9B zyu7@kqM{xi9=5i&Kf3So0+n)<1o;IEGB9$e*}84IR^wj8z`*p`)5S5Q;?~>ChJLpb zB#uAy?>hQ#Cbz(Irmz}D{zkqv1|nf9dI1Z)WEj{a7CvI~NXfIF!d=2)?OY^o_noD) z<%-7p&y&l4U%a1x%F_Ixlz6e<(YvnM3zoY^pKrZ5`ngm`Jag9NC4Y;g*RI~D{o$2`%%5jTCI`+RKA2zc z*82Zd^P&3h$pw^y4{saiH#WboI{$!1z?%I(m)tUU%3Vr|2_HH>RChNw?=I|a{(be} z!Mi(-LWzTDpq!_UjgLGax564~1<;;?{kw2kaj=}ZjyxOCbp4Zm`1@_4%@60s>u>LU zulNx1VDhV??tL%+?z4Hn`qP@rMPIkY=uXS;ewsA-U!C;RDX+i1D4qLE`s=4HNB_?F z+bkc_zI>zA%jK-|X0P+z_-a>L!}ZB}QD-X}j_c_BVU}9^BIn6evs_T_@pScbS?83{ F1OOs(kO}|* literal 0 HcmV?d00001 diff --git a/mods/default/textures/gui_hotbar_selected.png b/mods/default/textures/gui_hotbar_selected.png new file mode 100644 index 0000000000000000000000000000000000000000..7203e9a7e3a6ea213f3f004bf395b1fd5789ff26 GIT binary patch literal 175 zcmeAS@N?(olHy`uVBq!ia0vp^At21e3?vg-e}Dvd0(?STfwY~ST~kxj@#Dt}LwF;A z{5Ve+#}JFtZ?A6TY%maTdwBc6)f~Qq$80ZI^m4qL9C(T2VN1!e^u*+^`#(iLhzxLx z2;|P%W-;&Q?7VyCi`A}7F3GaGwbxN=s@Kx}FD~^jeAy+n#QN3r?G`DbTNk8V;=Xp` W?S*3v6XJk2F?hQAxvX /tmp/listcolors << 'EOF' - "listcolors["..dreambuilder_theme.listcolor_slot_bg_normal.. - ";"..dreambuilder_theme.listcolor_slot_bg_hover.. - ";"..dreambuilder_theme.listcolor_slot_border.. - ";"..dreambuilder_theme.tooltip_bgcolor.. - ";"..dreambuilder_theme.tooltip_fontcolor.."]".. -EOF - -cat > /tmp/herefileA << 'EOF' - "style_type[button;bgcolor="..dreambuilder_theme.btn_color.."]".. - "style_type[button_exit;bgcolor="..dreambuilder_theme.btn_color.."]".. - "style_type[image_button;bgcolor="..dreambuilder_theme.btn_color.. - ";border="..dreambuilder_theme.image_button_borders.."]".. - "style_type[image_button_exit;bgcolor="..dreambuilder_theme.btn_color.. - ";border="..dreambuilder_theme.image_button_borders.."]".. - "style_type[item_image_button;bgcolor="..dreambuilder_theme.btn_color.. - ";border="..dreambuilder_theme.image_button_borders.."]" -EOF - -echo ' "listcolors[#00000000;"..dreambuilder_theme.listcolor_slot_bg_hover..";#00000000;".. - dreambuilder_theme.tooltip_bgcolor..";".. - dreambuilder_theme.tooltip_fontcolor.."]"..' > /tmp/LISTCOLORS_HIDE_SLOTS +LISTCOLORS_HIDE_SLOTS='"listcolors[#00000000;"..dreambuilder_theme.listcolor_slot_bg_hover..";#00000000]"..' mv $workdir"/mods/dreambuilder_extras/minetest.conf" $workdir +########## +sed -i 's/"gui_hotbar_selected.png"/dreambuilder_theme.name.."_gui_hotbar_selected.png"/' \ + $workdir"/mods/dreambuilder_hotbar/init.lua" + +sed -i 's/"gui_hb_bg_"/dreambuilder_theme.name.."_gui_hb_bg_"/' \ + $workdir"/mods/dreambuilder_hotbar/init.lua" + +########## + sed -i "s/bgcolor\[.*\]//" \ $workdir"/mods/beds/init.lua" +########## + sed -i '/local formspec = \[\[/ , /\]\]/ {d}' \ $workdir"/mods/default/init.lua" sed -i '/Set formspec prepend/ { a \\t\tlocal formspec = - r /tmp/listcolors - r /tmp/herefileA + a \\t\t"listcolors["..dreambuilder_theme.listcolor_slot_bg_normal.. + a \\t\t\t";"..dreambuilder_theme.listcolor_slot_bg_hover.. + a \\t\t\t";"..dreambuilder_theme.listcolor_slot_border.. + a \\t\t\t";"..dreambuilder_theme.tooltip_bgcolor.. + a \\t\t\t";"..dreambuilder_theme.tooltip_fontcolor.."]".. + a \\t\t"style_type[button;bgcolor="..dreambuilder_theme.btn_color.."]".. + a \\t\t"style_type[button_exit;bgcolor="..dreambuilder_theme.btn_color.."]".. + a \\t\t"style_type[image_button;bgcolor="..dreambuilder_theme.btn_color.. + a \\t\t\t";border="..dreambuilder_theme.image_button_borders.."]".. + a \\t\t"style_type[image_button_exit;bgcolor="..dreambuilder_theme.btn_color.. + a \\t\t\t";border="..dreambuilder_theme.image_button_borders.."]".. + a \\t\t"style_type[item_image_button;bgcolor="..dreambuilder_theme.btn_color.. + a \\t\t\t";border="..dreambuilder_theme.image_button_borders.."]" }' $workdir"/mods/default/init.lua" sed -i '/default.gui_survival_form/ { @@ -250,39 +255,74 @@ sed -i '/default.gui_survival_form/ { a \\t\t\tdefault.gui_bg.. }' $workdir"/mods/default/init.lua" +sed -i 's/gui_formbg.png/"..dreambuilder_theme.name.."_gui_formbg.png/' \ + $workdir"/mods/default/init.lua" + sed -i '/tableoptions/d' $workdir"/mods/default/craftitems.lua" -echo "depends = dreambuilder_gui_theming" >> $workdir"/mods/default/mod.conf" +echo "depends = dreambuilder_theme_settings" >> $workdir"/mods/default/mod.conf" + +########## sed -i 's/"style_type\[.*\]"/"style_type[label,textarea;font=mono]" \ \t\t.."style_type[textarea;textcolor="..dreambuilder_theme.editor_text_color..";border="..dreambuilder_theme.editor_border.."]"/' \ - $workdir"/mods/mesecons_luacontroller/init.lua" + $workdir"/mods/mesecons_luacontroller/init.lua" -sed -i "0,/depends =/s//depends = dreambuilder_gui_theming, /" $workdir"/mods/mesecons/mod.conf" +sed -i 's/jeija_luac_background.png/"..dreambuilder_theme.name.."_jeija_luac_background.png/' \ + $workdir"/mods/mesecons_luacontroller/init.lua" -sed -i '/size\[8,9\]/ { - a \\t\t"image[-0.12,4.73;10.03,4.95;default_standard_inventory_bg.png]".. - a \\t\t"image[-0.12,0.15;10.03,4.79;default_chest_upper_slots_bg.png]".. - r /tmp/LISTCOLORS_HIDE_SLOTS - }' $workdir"/mods/pipeworks/compat-chests.lua" +sed -i 's/jeija_luac_runbutton.png/"..dreambuilder_theme.name.."_jeija_luac_runbutton.png/' \ + $workdir"/mods/mesecons_luacontroller/init.lua" -sed -i '/size\[8,8.5\]/ { - a \\t\t"image[-0.1,4.15;10.03,4.95;default_standard_inventory_bg.png]".. - a \\t\t"image[2.65,0.37;1.254,3.59;default_furnace_upper_middle_slots_bg.png]".. - a \\t\t"image[4.64,0.83;2.52,2.44;default_furnace_upper_right_slots_bg_2x2.png]".. - r /tmp/LISTCOLORS_HIDE_SLOTS - }' $workdir"/mods/pipeworks/compat-furnaces.lua" +sed -i 's/jeija_close_window.png/"..dreambuilder_theme.name.."_jeija_close_window.png/' \ + $workdir"/mods/mesecons_luacontroller/init.lua" -sed -i "0, /depends = /s//depends = dreambuilder_gui_theming, /" $workdir"/mods/pipeworks/mod.conf" +sed -i "0,/depends =/s//depends = dreambuilder_theme_settings, /" $workdir"/mods/mesecons/mod.conf" +########## -sed -i '/size\[8,7;\]/ { - r /tmp/LISTCOLORS_HIDE_SLOTS - a \\t\t"image[-0.1,2.75;10.03,4.95;default_standard_inventory_bg.png]".. - a \\t\t"image[-0.1,0.23;10.03,2.37;vessels_upper_slots_bg.png]".. - }' $workdir"/mods/vessels/init.lua" +sed -i "/size\[8,9\]/ { + a \\\t\tdreambuilder_theme.make_inv_img_grid_v1(0, 0.26, 8, 4, false).. + a \\\t\tdreambuilder_theme.make_inv_img_grid_v1(0, 4.82, 8, 1, true).. + a \\\t\tdreambuilder_theme.make_inv_img_grid_v1(0, 6.03, 8, 3, false).. + a \\\t\t$LISTCOLORS_HIDE_SLOTS + }" $workdir"/mods/pipeworks/compat-chests.lua" -sed -i "0, /depends = /s//depends = dreambuilder_gui_theming, /" $workdir"/mods/vessels/mod.conf" +sed -i 's/default.get_hotbar_bg(0,4.85)/""/' \ + $workdir"/mods/pipeworks/compat-chests.lua" + +sed -i "/size\[8,8.5\]/ { + a \\\t\tdreambuilder_theme.single_slot_v1(2.75, 0.45, false).. + a \\\t\tdreambuilder_theme.single_slot_v1(2.75, 2.45, false).. + a \\\t\tdreambuilder_theme.make_inv_img_grid_v1(4.75, 0.92, 2, 2, false).. + a \\\t\tdreambuilder_theme.make_inv_img_grid_v1(0, 4.22, 8, 1, true).. + a \\\t\tdreambuilder_theme.make_inv_img_grid_v1(0, 5.45, 8, 3, false).. + a \\\t\t$LISTCOLORS_HIDE_SLOTS + }" $workdir"/mods/pipeworks/compat-furnaces.lua" + +sed -i '/default.get_hotbar_bg(0, 4.25) ../ {d}' \ + $workdir"/mods/pipeworks/compat-furnaces.lua" + +sed -i "0, /depends = /s//depends = dreambuilder_theme_settings, /" $workdir"/mods/pipeworks/mod.conf" + +########## + +sed -i "/size\[8,7;\]/ { + a \\\t$LISTCOLORS_HIDE_SLOTS + a \\\tdreambuilder_theme.make_inv_img_grid_v1(0, 0.25, 8, 2, false).. + a \\\tdreambuilder_theme.make_inv_img_grid_v1(0, 2.8, 8, 1, true).. + a \\\tdreambuilder_theme.make_inv_img_grid_v1(0, 4.05, 8, 3, false).. + }" $workdir"/mods/vessels/init.lua" + +sed -i 's/vessels_shelf_slot.png/"..dreambuilder_theme.name.."_vessels_shelf_slot.png/' \ + $workdir"/mods/vessels/init.lua" + +sed -i 's/default.get_hotbar_bg(0, 2.85)/""/' \ + $workdir"/mods/vessels/init.lua" + +sed -i "0, /depends = /s//depends = dreambuilder_theme_settings, /" $workdir"/mods/vessels/mod.conf" + +########## sed -i 's/"field\[.*\]"/ \ \t\t\t"formspec_version[4]".. \ @@ -292,19 +332,14 @@ sed -i 's/"field\[.*\]"/ \ \t\t/' \ $workdir"/mods/technic/machines/switching_station.lua" -# the inv and slots images below are exactly 192x192 and 512x256 pixels -# and meant to cover inv areas of 3x3 and 8x4 inv slots -# but with an 8x9 formspec size, it takes a declared size of [10.03, 4.65] -# to make the 8x4 grid image fit right -# [10.03, 4.65] / [8, 4] = [1.254, 1.163] -# -# so a 3x3 inv grid should be about 3.762x3.488 real size - -sed -i '/size\[8,9\]/ { - r /tmp/LISTCOLORS_HIDE_SLOTS - a \\t\t"image[-0.1,4.93;10.03,4.65;technic_main_inventory.png]".. - a \\t\t"image[2.9,0.93;3.762,3.488;technic_battery_box_upper_slots.png]".. - }' $workdir"/mods/technic/machines/register/battery_box.lua" +sed -i "/size\[8,9\]/ { + a \\\t\t$LISTCOLORS_HIDE_SLOTS + a \\\t\tdreambuilder_theme.single_slot_v1(3, 0.95, false).. + a \\\t\tdreambuilder_theme.single_slot_v1(5, 0.95, false).. + a \\\t\tdreambuilder_theme.make_inv_img_grid_v1(3.5, 2.95, 2, 1, false).. + a \\\t\tdreambuilder_theme.make_inv_img_grid_v1(0, 4.97, 8, 1, true).. + a \\\t\tdreambuilder_theme.make_inv_img_grid_v1(0, 5.97, 8, 3, false).. + }" $workdir"/mods/technic/machines/register/battery_box.lua" sed -i 's/"field\[.*")/ \ @@ -315,141 +350,211 @@ sed -i 's/"field\[.*")/ \ \t\t\t\t\t)/' \ $workdir"/mods/technic/machines/register/battery_box.lua" -sed -i '/size\[8,9;\]/ { - r /tmp/LISTCOLORS_HIDE_SLOTS - a \\t\t"image[-0.1,4.93;10.03,4.65;technic_main_inventory.png]".. - a \\t\t"image[2.9,0.93;5.016,2.326;technic_base_machine_upper_bg.png]".. - }' $workdir"/mods/technic/machines/register/machine_base.lua" +sed -i "/size\[8,9;\]/ { + a \\\t\t$LISTCOLORS_HIDE_SLOTS + a \\\t\tdreambuilder_theme.single_slot_v1(3, 0.95, false).. + a \\\t\tdreambuilder_theme.make_inv_img_grid_v1(5, 0.95, 2, 2, false).. + a \\\t\tdreambuilder_theme.make_inv_img_grid_v1(0, 4.97, 8, 1, true).. + a \\\t\tdreambuilder_theme.make_inv_img_grid_v1(0, 5.97, 8, 3, false).. + }" $workdir"/mods/technic/machines/register/machine_base.lua" -sed -i '/formspec = formspec/ { - a \\t\t\t"image[0.91,2.93;2.508,1.163;technic_base_machine_upgrade_slots_bg.png]".. - }' $workdir"/mods/technic/machines/register/machine_base.lua" +sed -i "/formspec = formspec/ { + a \\\t\tdreambuilder_theme.make_inv_img_grid_v1(1, 2.95, 2, 1, false).. + }" $workdir"/mods/technic/machines/register/machine_base.lua" -sed -i '/size\[8,9;\]/ { - r /tmp/LISTCOLORS_HIDE_SLOTS - a \\t\t"image[-0.1,4.93;10.03,4.65;technic_main_inventory.png]".. - a \\t\t"image[2.9,0.93;1.254,1.163;default_single_slot.png]".. - }' $workdir"/mods/technic/machines/register/generator.lua" +sed -i "/size\[8,9;\]/ { + a \\\t\t$LISTCOLORS_HIDE_SLOTS + a \\\t\tdreambuilder_theme.make_inv_img_grid_v1(0, 4.97, 8, 1, true).. + a \\\t\tdreambuilder_theme.make_inv_img_grid_v1(0, 5.97, 8, 3, false).. + a \\\t\tdreambuilder_theme.single_slot_v1(3, 0.95, false).. + }" $workdir"/mods/technic/machines/register/generator.lua" # this alloy furnace change will match in two places, on purpose. -sed -i '/size\[8,9\]/ { - r /tmp/LISTCOLORS_HIDE_SLOTS - a \\t\t"image[-0.1,4.93;10.03,4.65;technic_main_inventory.png]".. - a \\t\t"image[1.9,0.93;6.27,3.49;technic_coal_alloy_furnace_upper_slots.png]".. - }' $workdir"/mods/technic/machines/other/coal_alloy_furnace.lua" +sed -i "/size\[8,9\]/ { + a \\\t\t$LISTCOLORS_HIDE_SLOTS + a \\\t\tdreambuilder_theme.make_inv_img_grid_v1(2, 0.95, 2, 1, false).. + a \\\t\tdreambuilder_theme.single_slot_v1(2, 2.95, false).. + a \\\t\tdreambuilder_theme.make_inv_img_grid_v1(5, 0.95, 2, 2, false).. + a \\\t\tdreambuilder_theme.make_inv_img_grid_v1(0, 4.97, 8, 1, true).. + a \\\t\tdreambuilder_theme.make_inv_img_grid_v1(0, 5.97, 8, 3, false).. + }" $workdir"/mods/technic/machines/other/coal_alloy_furnace.lua" -sed -i '/size\[8,9;\]/ { - r /tmp/LISTCOLORS_HIDE_SLOTS - a \\t\t"image[-0.1,4.93;10.03,4.65;technic_main_inventory.png]".. - a \\t\t"image[-0.1,1.92;10.03,2.375;technic_injector_upper_slots.png]".. - }' $workdir"/mods/technic/machines/other/injector.lua" +sed -i "/size\[8,9;\]/ { + a \\\t\t$LISTCOLORS_HIDE_SLOTS + a \\\t\tdreambuilder_theme.make_inv_img_grid_v1(0, 1.95, 8, 2, false).. + a \\\t\tdreambuilder_theme.make_inv_img_grid_v1(0, 4.97, 8, 1, true).. + a \\\t\tdreambuilder_theme.make_inv_img_grid_v1(0, 5.97, 8, 3, false).. + }" $workdir"/mods/technic/machines/other/injector.lua" -sed -i '/size\[8,9;\]/ { - r /tmp/LISTCOLORS_HIDE_SLOTS - a \\t\t"image[-0.1,4.93;10.03,4.65;technic_main_inventory.png]".. - a \\t\t"image[2.9,0.93;1.254,1.163;default_single_slot.png]".. - a \\t\t"image[0.91,2.93;2.508,1.163;technic_base_machine_upgrade_slots_bg.png]".. - }' $workdir"/mods/technic/machines/MV/tool_workshop.lua" +sed -i "/size\[8,9;\]/ { + a \\\t\t$LISTCOLORS_HIDE_SLOTS + a \\\tdreambuilder_theme.make_inv_img_grid_v1(1, 2.95, 2, 1, false).. + a \\\tdreambuilder_theme.make_inv_img_grid_v1(0, 4.97, 8, 1, true).. + a \\\tdreambuilder_theme.make_inv_img_grid_v1(0, 5.97, 8, 3, false).. + a \\\tdreambuilder_theme.single_slot_v1(3, 0.95, false).. + }" $workdir"/mods/technic/machines/MV/tool_workshop.lua" -sed -i '/size\[8,9\]/ { - r /tmp/LISTCOLORS_HIDE_SLOTS - a \\t\t"image[-0.1,4.93;10.03,4.65;technic_main_inventory.png]".. - a \\t\t"image[1.9,0.93;3.76,2.325;technic_reactor_upper_slots.png]".. - }' $workdir"/mods/technic/machines/HV/nuclear_reactor.lua" +sed -i "/size\[8,9\]/ { + a \\\t\t$LISTCOLORS_HIDE_SLOTS + a \\\t\tdreambuilder_theme.make_inv_img_grid_v1(0, 4.97, 8, 1, true).. + a \\\t\tdreambuilder_theme.make_inv_img_grid_v1(0, 5.97, 8, 3, false).. + a \\\t\tdreambuilder_theme.make_inv_img_grid_v1(2, 0.95, 3, 2, false).. + }" $workdir"/mods/technic/machines/HV/nuclear_reactor.lua" -sed -i '/size\[8,9;\]/ { - r /tmp/LISTCOLORS_HIDE_SLOTS - a \\t\t\t\t"image[-0.1,4.93;10.03,4.65;technic_main_inventory.png]".. - }' $workdir"/mods/technic/machines/other/constructor.lua" +sed -i "/size\[8,9;\]/ { + a \\\t\t$LISTCOLORS_HIDE_SLOTS + a \\\t\tdreambuilder_theme.make_inv_img_grid_v1(0, 4.97, 8, 1, true).. + a \\\t\tdreambuilder_theme.make_inv_img_grid_v1(0, 5.97, 8, 3, false).. + }" $workdir"/mods/technic/machines/other/constructor.lua" -sed -i '/list\[current_name/ { - i \\t\t\t\t\t.."image[5.89,"..(i*0.998-1.07)..";1.254,1.163;default_single_slot.png]" - }' $workdir"/mods/technic/machines/other/constructor.lua" +sed -i "/list\[current_name/ { + i \\\t\t\t\t\t..dreambuilder_theme.single_slot_v1(6, i-1.05, false) + }" $workdir"/mods/technic/machines/other/constructor.lua" -sed -i '/size\[9,11;\]/ { - r /tmp/LISTCOLORS_HIDE_SLOTS - a \\t\t"image[-0.1,6.92;10.03,4.65;technic_main_inventory.png]".. - a \\t\t"image[-0.1,5.42;11.28,1.163;technic_cnc_upper_slots.png]".. - }' $workdir"/mods/technic_cnc/cnc.lua" +sed -i "/size\[9,11;\]/ { + a \\\t\t$LISTCOLORS_HIDE_SLOTS + a \\\t\tdreambuilder_theme.single_slot_v1(0.5, 5.45, false).. + a \\\t\tdreambuilder_theme.make_inv_img_grid_v1(5, 5.45, 4, 1, false).. + a \\\t\tdreambuilder_theme.make_inv_img_grid_v1(0, 6.95, 8, 1, true).. + a \\\t\tdreambuilder_theme.make_inv_img_grid_v1(0, 7.95, 8, 3, false).. + }" $workdir"/mods/technic_cnc/cnc.lua" -sed -i "0, /depends = /s//depends = dreambuilder_gui_theming, /" $workdir"/mods/technic/mod.conf" +sed -i "0, /depends = /s//depends = dreambuilder_theme_settings, /" $workdir"/mods/technic/mod.conf" + +########## + +sed -i "/\"label\[0,0;\"/ { + a \\\t\t$LISTCOLORS_HIDE_SLOTS +}" $workdir"/mods/technic_chests/register.lua" + +sed -i '/"background\["..data.hileft/ {d}' \ + $workdir"/mods/technic_chests/register.lua" + +sed -i '/"background\["..data.loleft/ { + a \\t\t\tdreambuilder_theme.make_inv_img_grid_v1(data.hileft, 0.95, data.width, data.height, false).. + a \\t\t\tdreambuilder_theme.make_inv_img_grid_v1(data.loleft, data.lotop-0.05, 8, 1, true).. + a \\t\t\tdreambuilder_theme.make_inv_img_grid_v1(data.loleft, data.lotop+0.95, 8, 3, false).. + d + }' $workdir"/mods/technic_chests/register.lua" + +sed -i '/"background\[-0.19,-0.25;"/ { + a \\t\t\t"background[0,0;1,1;"..dreambuilder_theme.name.."_technic_chest_form_bg.png;true]".. + d + }' $workdir"/mods/technic_chests/register.lua" + +#sed -i 's/technic_chest_form_bg.png/"..dreambuilder_theme.name.."_technic_chest_form_bg.png;true/' \ +# $workdir"/mods/technic_chests/register.lua" + +sed -i "0, /depends = /s//depends = dreambuilder_theme_settings, /" $workdir"/mods/technic_chests/mod.conf" + +########## + +sed -i "/image\[2.75,1.5;1,1;/ { + a \\\t\t$LISTCOLORS_HIDE_SLOTS + a \\\t\tdreambuilder_theme.single_slot_v1(2.75, 0.45, false).. + a \\\t\tdreambuilder_theme.single_slot_v1(2.75, 2.45, false).. + a \\\t\tdreambuilder_theme.make_inv_img_grid_v1(4.75, 0.92, w, h, false).. + a \\\t\tdreambuilder_theme.make_inv_img_grid_v1(0, 4.22, 8, 1, true).. + a \\\t\tdreambuilder_theme.make_inv_img_grid_v1(0, 5.45, 8, 3, false).. + }" $workdir"/mods/homedecor_common/furnaces.lua" + +sed -i "0, /depends = /s//depends = dreambuilder_theme_settings, /" $workdir"/mods/homedecor_common/mod.conf" + +########## + +sed -i "/size\[8,10\]/ { + a \\\t\t$LISTCOLORS_HIDE_SLOTS + a \\\t\tdreambuilder_theme.make_inv_img_grid_v1(0, 0.95, 8, 4, false).. + a \\\t\tdreambuilder_theme.make_inv_img_grid_v1(0, 5.82, 8, 1, true).. + a \\\t\tdreambuilder_theme.make_inv_img_grid_v1(0, 7.03, 8, 3, false).. + }" $workdir"/mods/locks/shared_locked_chest.lua" + +sed -i 's/default.get_hotbar_bg(0,5.85)/""/' \ + $workdir"/mods/locks/shared_locked_chest.lua" + +# This one will match in two places, deliberately. +sed -i "/size\[8,9\]/ { + a \\\t\t$LISTCOLORS_HIDE_SLOTS + a \\\t\tdreambuilder_theme.single_slot_v1(2, 0.45, false).. + a \\\t\tdreambuilder_theme.single_slot_v1(2, 2.45, false).. + a \\\t\tdreambuilder_theme.make_inv_img_grid_v1(5, 0.95, 2, 2, false).. + a \\\t\tdreambuilder_theme.make_inv_img_grid_v1(0, 4.95, 8, 1, true).. + a \\\t\tdreambuilder_theme.make_inv_img_grid_v1(0, 5.95, 8, 3, false).. + }" $workdir"/mods/locks/shared_locked_furnace.lua" + +echo "dreambuilder_theme_settings" >> $workdir"/mods/locks/depends.txt" + +########## + +sed -i '/default.gui_bgimg/ {d}' $workdir"/mods/castle_storage/ironbound_chest.lua" +sed -i '/default.gui_bg/ {d}' $workdir"/mods/castle_storage/ironbound_chest.lua" + +sed -i "/default.gui_slots/ { + a \\\t\t$LISTCOLORS_HIDE_SLOTS + a \\\t\tdreambuilder_theme.make_inv_img_grid_v1(0, -0.05, 8, 4, false).. + a \\\t\tdreambuilder_theme.make_inv_img_grid_v1(0, 4.95, 8, 1, true).. + a \\\t\tdreambuilder_theme.make_inv_img_grid_v1(0, 5.95, 8, 3, false).. + d +}" $workdir"/mods/castle_storage/ironbound_chest.lua" + +sed -i '/default.gui_bgimg/ {d}' $workdir"/mods/castle_storage/crate.lua" +sed -i '/default.gui_bg/ {d}' $workdir"/mods/castle_storage/crate.lua" + +sed -i "/default.gui_slots/ { + a \\\t\t$LISTCOLORS_HIDE_SLOTS + a \\\t\t\t\tdreambuilder_theme.make_inv_img_grid_v1(0, -0.05, 8, 4, false).. + a \\\t\t\t\tdreambuilder_theme.make_inv_img_grid_v1(0, 4.95, 8, 1, true).. + a \\\t\t\t\tdreambuilder_theme.make_inv_img_grid_v1(0, 5.95, 8, 3, false).. + d +}" $workdir"/mods/castle_storage/crate.lua" + +########## + +sed -i "/size\[8,5.5\]/ { + a \\\t\t$LISTCOLORS_HIDE_SLOTS + a \\\t\tdreambuilder_theme.make_inv_img_grid_v1(0, 1.42, 8, 1, true).. + a \\\t\tdreambuilder_theme.make_inv_img_grid_v1(0, 2.58, 8, 3, false).. + a \\\t\tdreambuilder_theme.single_slot_v1(3.4, 0, false).. + }" $workdir"/mods/ufos/furnace.lua" + +echo "dreambuilder_theme_settings" >> $workdir"/mods/ufos/mod.conf" + +########## sed -i 's/"listcolors\[#00000000;#00000000\]"/""/' $workdir"/mods/unified_inventory/internal.lua" sed -i 's/"listcolors\[#00000000;#00000000\]"/""/' $workdir"/mods/unified_inventory/bags.lua" sed -i 's/"listcolors\[#00000000;#00000000\]"/""/' $workdir"/mods/unified_inventory/register.lua" -sed -i '/local n = 4/ { - i \\tformspec[4]="style_type[image_button;bgcolor="..dreambuilder_theme.btn_color.."]" - i \\tformspec[5]= - r /tmp/LISTCOLORS_HIDE_SLOTS - a \\t\t\t"" - a \\tlocal n = 6 - d -}' $workdir"/mods/unified_inventory/internal.lua" +sed -i "/formspec\[n\] = fsdata.formspec/ { + a \\\tformspec[n+1]=\"style_type[image_button;bgcolor=\"..dreambuilder_theme.btn_color..\"]\" + a \\\tformspec[n+2]= + a \\\t\t$LISTCOLORS_HIDE_SLOTS + a \\\t\t\t\"\" + a \\\tn = n + 2 +}" $workdir"/mods/unified_inventory/internal.lua" -sed -i "s/ui_single_slot.png/default_single_slot.png/" $workdir"/mods/unified_inventory/internal.lua" -sed -i "s/ui_single_slot.png/default_single_slot.png/" $workdir"/mods/unified_inventory/register.lua" - -sed -i '/1.175;ui_bags_header.png/ { +sed -i '/ui.single_slot(8.425, 1.5)/ { a \\t\t\t"style_type[button;bgcolor="..dreambuilder_theme.btn_color.."]", }' $workdir"/mods/unified_inventory/bags.lua" -sed -i "0, /depends = /s//depends = dreambuilder_gui_theming, /" $workdir"/mods/unified_inventory/mod.conf" +sed -i 's/ui_formbg_9_sliced.png/"..dreambuilder_theme.name.."_ui_formbg_9_sliced.png/' \ + $workdir"/mods/unified_inventory/init.lua" -sed -i '/"label\[0,0;"/ { - r /tmp/LISTCOLORS_HIDE_SLOTS -}' $workdir"/mods/technic_chests/register.lua" +sed -i 's/ui_single_slot/"..dreambuilder_theme.name.."_ui_single_slot/' \ + $workdir"/mods/unified_inventory/api.lua" -sed -i "0, /depends = /s//depends = dreambuilder_gui_theming, /" $workdir"/mods/technic_chests/mod.conf" +sed -i 's/ui_trash_slot_icon.png/"..dreambuilder_theme.name.."_ui_trash_slot_icon.png/' \ + $workdir"/mods/unified_inventory/api.lua" -sed -i '/image\[2.75,1.5;1,1;/ { - r /tmp/LISTCOLORS_HIDE_SLOTS - a \\t\t"image[-0.1,4.15;10.03,4.95;default_standard_inventory_bg.png]".. - a \\t\t"image[2.65,0.37;1.254,3.59;default_furnace_upper_middle_slots_bg.png]".. - a \\t\t"image[4.64,0.83;2.52,2.44;default_furnace_upper_right_slots_bg_"..w.."x"..h..".png]".. - }' $workdir"/mods/homedecor_common/furnaces.lua" +sed -i "0, /depends = /s//depends = dreambuilder_theme_settings, /" $workdir"/mods/unified_inventory/mod.conf" -sed -i '/size\[8,10\]/ { - r /tmp/LISTCOLORS_HIDE_SLOTS - a \\t\t"image[-0.12,5.73;10.03,4.95;default_standard_inventory_bg.png]".. - a \\t\t"image[-0.12,0.85;10.03,4.79;default_chest_upper_slots_bg.png]".. - }' $workdir"/mods/locks/shared_locked_chest.lua" +########## -# This one will match in two places, deliberately. -sed -i '/size\[8,9\]/ { - r /tmp/LISTCOLORS_HIDE_SLOTS - a \\t\t"image[-0.1,4.90;10.03,4.65;default_standard_inventory_old_bg.png]".. - a \\t\t"image[1.88,0.37;1.254,3.59;default_furnace_upper_middle_slots_bg.png]".. - a \\t\t"image[4.9,0.87;2.5,2.46;default_furnace_upper_right_slots_bg_2x2.png]".. - }' $workdir"/mods/locks/shared_locked_furnace.lua" - -sed -i '/size\[8,5.5\]/ { - r /tmp/LISTCOLORS_HIDE_SLOTS a \\t\t"image[-0.1,1.42;10.03,4.65;default_standard_inventory_old_bg.png]".. - a \\t\t"image[3.4,-0.1;1.254,1.163;default_single_slot.png]".. - }' $workdir"/mods/ufos/furnace.lua" - - -mv $workdir"/mods/dreambuilder_extras/dreambuilder_gui_theming" \ +mv $workdir"/mods/dreambuilder_extras/dreambuilder_theme_settings" \ + $workdir"/mods/dreambuilder_extras/dreambuilder_theme_functions" \ + $workdir"/mods/dreambuilder_extras/dreambuilder_theme_light" \ $workdir"/mods/" -rm $workdir"/mods/default/textures/gui_formbg.png" \ - $workdir"/mods/mesecons/textures/jeija_close_window.png" \ - $workdir"/mods/mesecons_luacontroller/textures/jeija_luac_background.png" \ - $workdir"/mods/mesecons_luacontroller/textures/jeija_luac_runbutton.png" \ - $workdir"/mods/unified_inventory/textures/ui_bags_header.png" \ - $workdir"/mods/unified_inventory/textures/ui_bags_inv"* \ - $workdir"/mods/unified_inventory/textures/ui_bags_trash.png" \ - $workdir"/mods/unified_inventory/textures/ui_crafting_form.png" \ - $workdir"/mods/unified_inventory/textures/ui_form_bg.png" \ - $workdir"/mods/unified_inventory/textures/ui_main_inventory.png" \ - $workdir"/mods/unified_inventory/textures/ui_single_slot.png" \ - $workdir"/mods/vessels/textures/vessels_shelf_slot.png" \ - $workdir"/mods/default/textures/gui_hotbar_selected.png" \ - $workdir"/mods/technic_chests/textures/technic_chest_form_bg.png" \ - $workdir"/mods/technic_chests/textures/"*"inventory.png" - -rm /tmp/herefile* /tmp/LISTCOLORS_HIDE_SLOTS - # Add in all of the regular player skins for the player_textures mod rm -f $workdir/mods/player_textures/textures/* diff --git a/mods/dreambuilder_extras/init.lua b/mods/dreambuilder_extras/init.lua index f80e1a09..1e228942 100644 --- a/mods/dreambuilder_extras/init.lua +++ b/mods/dreambuilder_extras/init.lua @@ -6,6 +6,8 @@ -- by Vanessa Dannenberg +dreambuilder = {} + default.cool_lava = function (pos, node) end minetest.register_abm({ diff --git a/mods/dreambuilder_extras/mod.conf b/mods/dreambuilder_extras/mod.conf index 123226fe..2e34e07b 100644 --- a/mods/dreambuilder_extras/mod.conf +++ b/mods/dreambuilder_extras/mod.conf @@ -1,3 +1,3 @@ min_minetest_version = 5.4.0 -depends = dreambuilder_gui_theming, default +depends = dreambuilder_theme_settings, default optional_depends = farming, youngtrees, ferns, dryplants diff --git a/mods/dreambuilder_gui_theming/mod.conf b/mods/dreambuilder_gui_theming/mod.conf deleted file mode 100644 index 9ce086c5..00000000 --- a/mods/dreambuilder_gui_theming/mod.conf +++ /dev/null @@ -1,2 +0,0 @@ -name = dreambuilder_gui_theming -description = formspec/window theming mod diff --git a/mods/dreambuilder_gui_theming/textures/default_chest_upper_slots_bg.png b/mods/dreambuilder_gui_theming/textures/default_chest_upper_slots_bg.png deleted file mode 100644 index 1be2691a146887bbfd9b8a325b22e68493d4260f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4697 zcmeHKYfuwu7Hw7q1eL%r0*a4d6b7RpAc7!KhKDGisBz_uGK$$OpvD10fUqL+R0IZ* zh(uAs*nxmy5HW-Z7{ePiE2$ApMAXPb0wfS23E2jTTDw(SwN?IGzN+r}s;m0+ckey- z+|z0Mz1^2;tS`Yv^481IS0jdCjz&8#^lu>UL@sRbhAqzNG&yp+ves>}7Dey;AGUXpkMwOR zKD5faV{5(WjT=bUC*v|i5q1%{nzV}y>n@G+NzLu=?0I!pPn(*|e0*-*SSs;V_Ku9~ z-{QK~l4-F5y35CK6>Od(P&Gbd*QNdOhpFi&JJu#+(i;v%wpPz4Kylk-d)R8PsUu2)% zbR3bW%myzo3NvOfAfO&T${LuMn2-z&4J{SEly2O(k^T7b1que_vTkEY$xMKo0du}g z!8D$<(Q4|oOl|J+$cd}0suK6qiJ$C4DJ0x|M1!dguHgRt`ycFuQGY#rxV59htB=WR zSzJQHE`}rD@+3m);FR*{1WW)L8l=$nFSq zQW@OqAco}TtV#DIQEDe^`|P?KLPBDhe0RPqUo^5LdG7T70#Sth^mWIsKp*{WgU5W6 zVTd-X0!K!_FE;qc?BMstZnFnODau9U+66Gqs4N$i?-Yb)+naji>^9~cD}PlKZT#f~ z#1jCNy$xeZ<(-fMi-%l;2E%nG^z9mRDndt_b)jUom~Rh5sK z0Fc;u6sqvUnJO>&KAS`}2*(h*zQ<+(gkuR^JM+~O!Fwh{f+$rm22)|`iCf$Kz@O=b0?rxP}eIipF@oMSCmmRy<_B_uwI(1U=ao?zfeB9HyX6ccUeQ|Md@?x+)AJLNH z>Z1=aohyWA#ONMEmsLaUR&2I{In!00sApnYQJWVp*6M2+V!QSrFT;6V6IQ^ zflm9MyP=a__KJT~F2aVV7B@dSEw8~1mlm5PNcgBCdAn4_|G*&)0N6C%z8)77^Si03 z>7OTUV!hC)7Wz=QNYO|{6w|P^4<3LO6%{PqYzy_I29eGhC%Ld*cym^4$kVn`fnODa zvGO{Z%%Xwh!|3r7XfzEpw~pV{=)Ae01=T)2UL6n=)OyOUET!q_j@4PLi+!KO3WdTw zn)##iTpNaq$VLExK!}Zsnz(=)mgVK;9SaTpnQQaBKbYRUCh2O>`4-{Urhk(fYbox= zH+9>l78DR5Da0`#t$O$VJ!OKUmz<#8fjI|Xusrnyc zbTshBE`c~Ee8$-)$SOpnJvxo-e(@2{Q4wIK%XaF!Vom7(WNA;{%dnhG)})FrsWQD; za!t7ErL7ddPVYS(IA5I|q>sX&h*7v_w4zk#-(Nb9qYz!PQ+3I$v_7>?W*q zcXzi)hSg8-BMG8|*m6(S^6{wVT!R~CS}o#$LR<%8`XNE-d*!$=+TK9L7^bpdD~H3e z00#)rxIUuqnoYsj#IL5O8tg)|{T!H@@bu!lpwofpNpvKus(boZvRFmWYcjI`nb=rT zdb75VemHet0XqE9*5*}C`zC`cyDylfdm3|y4#EWU^f&GzMPEx-T%@Wu*$Dvf5iJ@H4h}e!#-6Wr!~gJ_&35gwuVK*X2O=UOR*0D1!HJgfMvW#3J0=^|b#+5C zCt`P0)z?R~(&Jt;iPDjgN|ea?*;hxjsS6g=B9@mYu+~7sjDoo`Y+z#Jg%jgAr^}KW z9!g@FS#?qiL9daPs%Z6sS7+o7_##HJSwuIRt_9zH<+v3-id)rPZ*IbBx6k~_Xq?8{ zOMOyP;^ug{MA7_Tyo||S1>VYpos=~q5nH0Gh<+9SEb{$hHuYuk{u!E^~?hgS8o@ZbI7@W0s1EExc~qF diff --git a/mods/dreambuilder_gui_theming/textures/default_furnace_upper_middle_slots_bg.png b/mods/dreambuilder_gui_theming/textures/default_furnace_upper_middle_slots_bg.png deleted file mode 100644 index c8c229887867990bc99623c0041f50750b9bdce8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1068 zcmeAS@N?(olHy`uVBq!ia0vp^4nVw%gAGW^C3r7nU||02>EaktaqI2fz1cdU630J2 zx70U&ZfR`2do!nJSA%{;)QwohrnL|36~vkn)H_%_(*<>cZY&9GYKrD`ikclFmc%7} zxngH)?^N+iDd9I<%FkPhy=$p9&o(RDeDXcFcfzEbZ)(cYHyxd4OK6 zi?28Syu37af8_P8D_=)NX5aqpb8g;@lPONqr%yML>OGWU!gcxOm)kn0?d&ZqDh{2= z)I9L-pWXcV^Yi{{q)(hXTO>A_}TO$64Bfj6qZcUI5y+h<3g!kx6Y2bbD#e- z-@SYH_~+j%fASuFxFNac=IigjuU@-0O-OLwUBy-bjipykMSuR`#PMHlM$ny?C0C9e zYg@JI)x?fH))G9sycwN1){D4)4BLL&_nc*yVUSnmQoS6*W3P|TO_ls!Wqb8yiJj2I z>Cfx0>D>4~caerq<5^|$Y1+N4um|E=^X|Gb$eC7dhg z1y4&|vh`kM6<0*|_1WF0w3yE*Yb@>PxHgT+X7}g4)t5IvIKQBZgS{^L)x!Ovpa>-i zG_SN3d`!T2 z^7nbW?&_^wyEZUT0YiH&+lFgF^PY!< zie4@C-5b~c$!7VKOQM3cq1V4&mj11~YxCpBkEaKD#dn|R>#$gBYPx;fJihZxQ&K%$ z11A`&o#XrG;bQmsUi=--hK?6co;-0)tJ6RKng8@Aow>!^cFJuLY@F$teOEyx`|XsO z^9?=+hKAnHT>C#}$Nk*$sF1c`OdgC>#$n4N*sr8b{by}xC zxeHeA%2>$a#G%+CK!{lQTjUv^{;iIkhi6##AQRu;`|>~IyU+7KNSLH(1u2#jVR*)u l{LTP_5Prs|-14seKSS!NPuf!hFd%F6$taD0e0sv;?+nN9X diff --git a/mods/dreambuilder_gui_theming/textures/default_furnace_upper_right_slots_bg_2x1.png b/mods/dreambuilder_gui_theming/textures/default_furnace_upper_right_slots_bg_2x1.png deleted file mode 100644 index 34bd33030b6779e4dae01b6241ffd08a0aa0a72a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1088 zcmeAS@N?(olHy`uVBq!ia0vp^jX+$>!3HE-KQI_EFtD(Dx;TbZ+#N0W*xH*p zCHh80rJ`?Ht8Yp9vxptSd&-OTC*OEub)R3Sk+*o$^OKvO=LDS*WMp6v2=xDb?BmCc zR@TXT1ud#&uhWKw&%THkBs(s==)p+&W|vA)YMuXlN}`C!6_*AE{)jQ=jVT3hmt z)$F}{ZObbwf36C8^>~v`y#DD+(^6N?Ek1qw*-!m6tGTDHUY*)={Bf3zT=?djZ(eJ3 z+1XlHRIHf7m3#bk5F5AZjr;e*#l^+fM`rJr?AbD}NiL@LOV+(!%DaG5u|=UY zw*6#^(6Psb0u$vQTh!&3mw%sbmRzdK{P&6Q;)^TN*WQ)pYd?DJ+O%)?R{v}W3Z2>_ zFzwUDJ^NOz`ZsgNwN=+&zwGVhjTJe{{QmFl}dt~|Qrm%3qtkW1i~cYj`=@{iM0y%yE^IAW28Q1ThS+1b0N9dzQHQ~dgD zdrv6egOdVVt|=*H=dODl#r7*w{QvuZnnmsQg1e_QzB_c}{pWWtg>+xocrj23HvFEN zaP$4s``7Acx?eYn&}h82Yv<>ur#4^f+8WklXufj`*V1H3ojVV1S%zn>^(}t?Cv@+| zWDdt3!$*6kt9Z_O9wi%cVJlBwG-q9&-}i{8sTZTP?^S=i=RIrLq-85rJU>OBp1L4d zQfJD7b+46^d(Na8UyQOZn{`af#J)u#D%*3COV^?ai!@YxgEdbVZQHl+U+nC{UDFO8 zDtoZkUUZ^o?Ddu3|82Z%GV8MGw6D$+wuVg!0vh|}cWq>J^kkjWv;O|IIlU?D`27;y z=2oGc{QUoRQoVNO$7&>8CvLrVk0l`VY7qN_Ig>5=mTGWmo(^JbZah+`qu7!y_;ZoY zY4_Y?ucFwtuPannSJ!V5*!Sh$`-=C%$vr0hsj*`JWgX@{pOiW?BK!5vC;fZA&tH;R zb+c@bUh0P{H|NZoXSaSzm3rUf@1JeXPgW^Bdv8aNqQ=rA5|>*9<`f$*z2dy|N?@SK zeTn3MJ6_L-J^5g!v8BDezsnQL=Xd&oUNr`-nkPSN!<2m1WS@d_FEzUUZMpVu!tbTer>mdKI;Vst09B9k&Hw-a diff --git a/mods/dreambuilder_gui_theming/textures/default_furnace_upper_right_slots_bg_2x2.png b/mods/dreambuilder_gui_theming/textures/default_furnace_upper_right_slots_bg_2x2.png deleted file mode 100644 index 430b36a6124dc62b3451b66ebe47954b6082cbdc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1221 zcmeAS@N?(olHy`uVBq!ia0vp^jX+$>!3HE-KQI_EFtGG^x;TbZ+rqYtDPwqWV$op7(dHbDfsvm9mTO1DAp8Wabq-AFNXF*1wr2>KHs~)|0 z;W2mKytK(DpNKBK;vP9|@5?#DORog^uUMD8bJwm_%P+qSSNe1_!QjW&4*Nz<(p_*R{Lqpexho-JxbtzCpcm3JV{ApHmPd$CQwCDKaDjT`$n{U2( zZP90MYhh8bWXh-5qzYc3dF@V7UR>aDtVYwyE?h`ij~%;$4v@oSXE zc7Lza%zyiP_3K~rJ2Tf-?VWe;#*GW9k#+^=_STk^TzM~)mLd5<`rG8`pKR(E-+%wx z#20AA$9t!>E}ESE`n&IO1TP!&-Pd11>TeYK^J+0yAO4#Ev@)-I(GIhm(2w`Lr==R* zKVE%o#&p*w%lW3WO+9$XOW^p&-JgF?oxdl@Yt7b4DxF6Pb&k!Lt9QL^+QBB4K#{fE z?Tx}L8G zds2_!^Epd0Z`oa2xk6zJPhJ#fUEXcmu*%3S*Sd=R<`hp#otYA;mO1O+wL(=6Enxi3 zT2`6SGx27QTGVUxTP9%#Yu@k8SgYzAta&=<)TSvqrRBr^NJg z&z?MaQn~bswdbTg@glAhmt|gg*Lzx`DafnGFqgxwYthW0R}+I?B}PuWFOmFj$Lkpj zQwm=DoI7_eNU&0`Ymw~IE6htnjP-pZPOWb;Jmwy_1ONa4fwmRy0006>Nklt_tAP8b3h=r{nC|F3uMhOb(1i@Ad zL9`Gp1i{9TB8?y#ut`qL&)pe|=g54fSrs0&;PHyUVFVG zA8ND53&<)OB3Y#6+m!-*JU6CF}?3GT-@t0Q$75@UqgmT_M(1Pd&Shv_JDb?|ILA z-t(UKyyrdddCz;^^Pcy-=RN<=@Z$Xb{%;{$^TD>HL8DOsqE=gg7*hsHx_qr_QKTe* zHBoi;`%Lg9+#)?L=bn;Mqek+zUR3xwV@4GPL6>%c#S)N^lT)Kv^uOIbSK)7&^cAy) zh!{A02?5|h)UhZsB0?g2p&65Ftl2^r0w z?f+Hjt5&dICL9Qd<%AfqE)$?^7(@&DefBP$YOVXXWn%&ToBFQX;<}O-GiWGUn+6qM czu&p|17=yby@GlBa{vGU07*qoM6N<$g7J(w*8l(j diff --git a/mods/dreambuilder_gui_theming/textures/default_standard_inventory_bg.png b/mods/dreambuilder_gui_theming/textures/default_standard_inventory_bg.png deleted file mode 100644 index 69ed47eab8465ef41d68b36b6b4743ff58f7371d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5438 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%0AGXIz0Y8?M?C)4egz(o~=~zQw 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 diff --git a/mods/dreambuilder_gui_theming/textures/jeija_close_window.png b/mods/dreambuilder_gui_theming/textures/jeija_close_window.png deleted file mode 100644 index ab14247dbf7286072365be75452233d21f993beb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 274 zcmV+t0qy>YP)f;g%|eC4_+3L<+hhM`fMx<70nwSFP0@Sj_C5bETA@ zqlxI{j;#lMD>|hF04b%Nd}Z@hYaPr7020I)5mD!c5G2ky+vbZgN)SR&wD;VW(l0-M z5~Y&Xl6(1bUe8@#&My@y^j@r9H2>+oEnzrdD1y?AMH`ix?uh;34MD`AOD1=BWMw>36&#I}U5UT)rXp$UMK@|3-UeCZZGQ YH|h7b4r?T|!~g&Q07*qoM6N<$f~lW%oB#j- diff --git a/mods/dreambuilder_gui_theming/textures/jeija_luac_background.png b/mods/dreambuilder_gui_theming/textures/jeija_luac_background.png deleted file mode 100644 index 6d2727927add84222d8f121a2972b61e688b5aec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12774 zcmeHt2UL?=*Jiw2^;*!24Uu*Q0TB=pr5C-@0sox?!#RPwEe%S}k*vdUR0)hMnfofg9<3GMSiEv3=5d1`eIT^ei z{%z^?-fE=}6BZsK;ig*cpX^`vr0i?4Pc!&rEpQ~a>~y+OM7Nw)O7rQ%hmQ9

v~f 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 Z`{FR^92UYkW=$l$#6&EQDn+{g{1=1Cqv`+v diff --git a/mods/dreambuilder_gui_theming/textures/signs_lib_sign_bg.png b/mods/dreambuilder_gui_theming/textures/signs_lib_sign_bg.png deleted file mode 100644 index 84e4d81f2913654e3886795d03f7b5edef9c9969..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 650 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58911L)MWvCLk0$>Ku;IPkcwMxuWjT!Y#`8f zvD+e#E%a7Br~czp#vF=4Dif@>-g|xL--namcdg4_D_St`%$cp%YVQ~O6&FldC6%1w za>jE0^PAPutf7t$~>_Sx9tma_3f7j|5Lqgx*)sR`bN=eDMxF?a% dZ%@6^eE}f_(X*@(lYwcB!PC{xWt~$(698_IY%Bl( diff --git a/mods/dreambuilder_gui_theming/textures/technic_base_machine_upgrade_slots_bg.png b/mods/dreambuilder_gui_theming/textures/technic_base_machine_upgrade_slots_bg.png deleted file mode 100644 index 4c544c58be25a47743a8253928f4fc91f5ae0dc4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1123 zcmcJP{WIGK0LH&1UQ5Nx2(nbnwM>Sz7(1%fIC50gq>7SUvMi0TB};1#l{7ITMRsI5 zr8UuXE$8(ZD&B^uieyzZY{26$hVTjWsNq23TM1CIulOp-zdnpGPA( z9RwQEokKXugJ3DnD2pC!E5xeH#e#~jdls97bU&h$_|DV*=7tXapqbX_tG-)Yt-UjM zyk~F@JVU1!Yh?P}Z=3He4il}}K0NxwW=`I~^5DP#W%#cx5(d;{zUxF=Lm8sUG@KQM zLcxt`4-mkp+z8T{Od~k@zD#%^#QWXEhplZby$9s?$ul z{}ja8MKm!-m-YL-sAvEb3HJ-hB;fg!0b;j=fLqMblA@wEX}?`qjJKybgfD8? ze@MK0l-_S!g$CH^Wl*sEMa)z1)yBojC)?b2la@-YFmM6P3w?Xup|m;h#1vR%c5w7| zVMBZp0M7pbVyzV{n^Cl63XY7OXJG;9m65i87CtHikP!Nrt8mx&`}nLrsPXoGWvYD> z^8-@V^YqESpr)52Hu6Xq=`1aK?B56Q;mg;%O%+dqQK$&%pN1VdOce#UM~=fRrLb-_ zr{BF#tyqmfRMA{>%`L!4jv`X`ON1^2=DP&w=G34}V zBdPt5jcVHQTyx@jcz8I1+QCY!osu$2s3-YF6h3xj{Y8_d@8PyrwY5wxkG-$kX)@E` zGlsCndEKWwuEbJwQTO2B9_441shnwU5T@E9%dH-@<%*6%7f7-cYc)yof(of6#kx{18fk5o)>4_K;aZuQ;;K}- z7Pek0FJz%CnkHID%)GEDQk06OiRLN@q9Q8iS2JhMoSF0QIqx6uyfe@HzVm%%zTeM0 zw+;pPtTNhY1OUJ)oUa!F0QA5kkZ8CJ+=n<^uwdkb^Kw6O`NMe6fm55CEtV;CywVph z%E(>4V)}_c`cF*?A(m?|wM4PGp^6<2jn1LFX4kHy+orA5gP2&(zYq0khx zRr15GWoZ}BnL{T%R|vy*lCG^5RuygtMupt*bh=jOTG)Hh&oM&|Sz0Kua3TkFe;=|V zJq6SeI;VIDF-uQ=-`B_dnM1-HA12=jn|E#^JY0eYm0h@xI@lxGrXJ=>rvpNBn&3*-eK!WZNsNoHnLMhuzArkeu0yFZo;m@2shD2}>Jru%HEG zd5Oj@We|}YH<%(|&z?P|#tZ0Fo7BN- zsr}$v7oRW~A!{?^5n>zem+_&Y&3s48GZcy^RM-`0TH;KPeZ|M%vWA{#XPczYdm4pC zM<0x2@jShXIGePJHa|Q=J6}x@4h=_#wzHyNDd1T~`&!V-#A>thc z`rwrP_B54VwaUuSIwgfr%-|C&GErY0m zL3u~(ZkDD=^4E`6U6CJ}X(ZKPsdIy=rylSS^rZm+zyV-Cm>4i7hrrY<0RU6re_VP9 z#Kq*~=ET}~_~Yq1wL{+UWWIQwi~y|lmpg3OW`IW!@RK+Q9vsYia=nscr4K%%&N%PgK`Z)fS zGo3-egDD`pn85CdsU4Znq$I0{PW}l0!$z-vQ=%W|=H||PQO{wXiy)EQk7Cl51dnE( zD+)y|{HcPQsiU(5lAU6)_^E-r;+``dk!r&h6Ntnk#P3{WZ%D3eZ4hFM1L{VYFNc(F zf2?|c@Ll!v1)o6Eg=g^8vq<#-_|$%xyW+fg^T73V9az{$G;P{3Wckag#FSHEVFQB^ zm6{;L=NOK-i1Eb|G`II0aGB{-FF*YIBZkZ+JlMNlJ~MruCs56sASYEjkjS2>J$cc1 z1i6z`wtRz*ViRX4Pzf?=4ODr2D3z*$bktyA6eG$?974+t+-I@(3J`a4C%&ZblP=F; zxH$~g_i8PV+uq)emGyk&=h*RcLerY1%z(u)e$KmByU<>XS~y@+z+$n=+U6srGZjte zkx5n~@|)h1R#O4L#z7iY=;OodP&#}6uAm|Y_j#3E3O32j)dWjt$SH%)tCJec3MXTj zvWvNzttj%rt_z-cje&Aa?8GzLdx@kaWrQt@#e@yFw*8$Wc`$Qdw+&IOLT7Nq7R91; zXF4r1P2-9>iX4S-D=ST)LR+RRBy9LV+nMIj`5WT71H~f9d2?QLnr41#x2^8lx`y1c z+i^4+2Hr~8rSg?ui|Ib$P;{SM zzSQsNRa0P!RbH-WY-}VJi>_b;{{bS{TwiZys|2oFS;sXDz*G(X7pktJnLy`$Z;vQo zknB@!9^~bj@L>}PMo(vMRR`8RSP*S82A!R~*;pMHQuK3N3ryu#D12fKitUhkx^2V? zO*o`>1NZ&n56`t_&f*V?V`38ZZnzCDYkj)I`k0uQ4Vpk;R|B7)Y*p~M5KcI6PL=nD zA9InxS9;>Ju7jY?+8q1$(2$oc_~o+qA3tW3#$+ieRbmQ8lbg#R3~AkdX5sL$-#`cU zxYBJQT%d}GTYrZitJhOw7@*tU;fY7wnui0h{=Ws)%?ZjiEwXP!3k3ekpUQTg%+$rh zfkZ^|lK(fw{!PsNdi_wq*cfGkI_S4<$VabXX~4#BC_C(dz~T{EglSu5O~(97-OZ9U zUS9R`Y|fu+J>K-y{y~jGRyxak@i;!rDCyx$PB+OG(*cD3rqRUOU7r=H>M9a8?!(Kk z{s*`0QVZ;rg+OTHrP{MB&bwlUX#5h+(BTK|ahbV`%-7J}9eN0az#{}mmsn=Z$%u$3 z(U^LVQuCG=Y(H8s=BV#0X*(mw&DPx5O3 diff --git a/mods/dreambuilder_gui_theming/textures/technic_battery_box_upper_slots.png b/mods/dreambuilder_gui_theming/textures/technic_battery_box_upper_slots.png deleted file mode 100644 index 72514d33ab896cba964ce3a362355da9c09adf2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2657 zcmciDi#yZ%9{})gwS(hwj2|_ZLMhvc6RF5;DZ^ICG>)OAWz;<6tcYb!(#Z8ROYYT{ zOUpQ6rWjpZDjSb5%{?WtA~f2V{nm4y^Lu{3Kj8d6&*%C)pWE|(p3m!Z{kXS>mb#%j z003G@PdBu(ee%7isVHmoNTezNs6&x%t|u-HeIE6S2p-f|{X&}K&9{)p2b=9~c%;W5 z&(!j_XKXGSV#n?LBg6>hX$F2#4tjk8^n*IAGEl8J>yCLoXzv9ba6aYGruN-i4%d77 zSqoA%2Re*IcM$t~20VNDP27x#@>-_$aHF88K%uR2Z-Z!MgtWdiS0vc65%~ROn<`Hf z#f=XO+c_KCzW3WJkug|eN zD{tKaXlQ6OKYSQ-5+(_)6CEqBs1QM(Usbdn3>emeL?*A47L!_rKg((@oplm*sc(;x zNF?0p=9~l9al)|xV=C++=_v@fP1%vWR|Up?Q#a(Y-`VfjpMQ&W>6p7JO1 zv%(r65{YP{e7nvKVZ!^2Z~_|T3!&cQ?1D`_Vzb#`=J#2xZ{noyOx4O&?DUz<8{(pq z!O3YKb;{^%l_m*m1uxb!np#nYYYUB`1bFsEXMQw#*F(kWq+ZA$FZbVgW*RSI*hor0x(J8r?c>Vb)?@$PBg_4>!W|cm<*?lcS8JXzd@n3K)PGVkC z50>1GCEla&yEGvAtubj6&HS!?HWD_qoZfndooJiR@XGwQu#2rw^}jIn>Skww^qRFM z&YNa#(*e4=bZVCv45~S#MbTWuVB!0 zzEsoJk+AF`7jTiNnX9H?thk1bHnBi1-ry_?#|q!Nc%c+IRvqL$gM)*Zz&t*mg2d`<^ zHj%5~Z$?I(y7c*ejNRVeF6MvI`5kX*X_=Olm34b} z8D%)~Kzu?%VW!PEP;;bAOMKkEE}g}$!Zi=+*SM4?JE*O-6IeP5(7Iq84gzEeKSrhdID1vxya{h1`<;@VKDmf z^F*m(RSk<(V~0^g_0h5H&0&FgSRyW(J3Rgw(}Xu~prds+*nfCX|MWvv(K~9w#@UsNRY&`0 z{)IO-%8`k^PHFtJ68?=Xqyn&B+S>DKYnV2=^WI<%V4Vv-{pG~MjSBkqGCibpJe4`G zh~FrlX3i>v!oXYCzKeKJ_pl~h%R}QsVHdj}gg|bH3ZnG5QKG~?R#Ai)^ z;{D6qM6)(;Fla}df%C_{9_&#eHl2~ifNsb01@_r-*_GoznzcaQ$)c4?dH_E?N-tb{c8I$t<`yRh)_ z&^b;6F|HL|(H`7Lk*I4+_>|7F_XorWc|E2mP@K`uuDXvP7{#QZ%&&J;t^2&Qr!ySgzxdvX+7%O31dYn1M1S6DvOSFD2cmAuQ|sa$nS4G;x@k- z5%VCASTmfg^mOgWyxfG%@giCwVW~Bbx2Y~`Kbe>f-PZ<0+w+%#gaFnFgh)Vtdfl9ZycFC7YTO=Jqbl*IAN7 zQ1MGH;-umNoZ9m*Q|3rr{4wjpl2ubR8UJ!g!Je?d2FtSMkU{dTp|Q}ArdTTrMx85o zjb6~Rw=SH38{B^smIww_apquU)w__3j>OOKe3A1hIW=vYM)HKQ?d?#4-A0K9TM~e} zpOb4YeSswtqXj8|(>Jb0LSo`5Jq(urNH{%Vt$8*!w!z2Ekw22;De00(E@JX_=6K4L iSZfElK%}-v#$*R diff --git a/mods/dreambuilder_gui_theming/textures/technic_chest_form_bg.png b/mods/dreambuilder_gui_theming/textures/technic_chest_form_bg.png deleted file mode 100644 index fc0d06e5e8951f2d96ef9503c9cc6c37df2fccf1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1575 zcmeAS@N?(olHy`uVBq!ia0y~yU;;9k7&t&wwUqN(1_su5o-U3d6}R4Ax8yslAmSP* zc{D={_W_B+0t^>x7*6MkS^o}T7h(VcPgg&ebxsLQ0IhI} ATL1t6 diff --git a/mods/dreambuilder_gui_theming/textures/technic_cnc_upper_slots.png b/mods/dreambuilder_gui_theming/textures/technic_cnc_upper_slots.png deleted file mode 100644 index 77dc1fcdb08708b8bab42c5518d00c037f357c84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1869 zcmbtUeK4E(7JijgTacO1XlUP$^3lZ>=SwR;ZRiTj@r9rDP-`Ny(f0y1TRg-aB*8AJ6>e{LY!@%$(;u zxyOS8jCWb=0sz3697s9|06Topw~v87in0#|Z2(}W8JXl8k~+QeGUz;xYQj24&cKjD8g&cY_k(#=wojKH=@YYy-Ui=`3_ENI z`L^>SL%kF?!})_H?|!j7rYsFU*15d)U|ifNvi)avZ6|DFU_^%^Kv@R!l@)deIspJ& zRdWteo+o-d@9XQkc<|1Z;~>nAox*e5svyejFo!xPlkpz)^dK!cSKvuW`McFs${I~S znV;xkwA;j_1Yazu4N-)L-ui0hKEjqrB$K4MvTlkLSzTQvE=I_T;r+Vj>2w!QFR#Zn zkmDpHv%M+)n@NVLKO44}jkymf6m4hDoEc2@{%$~=>nD+<4~c8Khb8=H-R{lUILyr(u(C6GXN8{{1yG8R-S zk4l!{Yo^K0(bumjw%CfN@|R}*_a8DQ!4ZOhcWj7v1A>Nl4#Y$T!<;@0AX76lE?8Nc zx3I=;*PVyR7|%gUIeXT8-BB%&z5zT5gb&3YOkWbNKs+*g1vHQT5l6-*Ssuk?wF`y9 zj|wcF5b=0?k|p1!RE($>)#@~|wy0vudUqv<>Y7&-%Wh}Y*FQB85p52e>S3`$O!VRH zo}h8P6J{UKUlMORf5!Q9-eOjCrNmte&(Y<#4R04$2-Bn$wew-?$N_ECyfO}8Xj}q- zSIqv7L5&|%<`{+epqj>PgOM!?`lcx88lW=Q(F1@d0IK;&KnDPvuA=$>UiN>s|HbmZ zum_SzAz%pO%kP%E=74?uRZ0`J0M1c&Tln~z2AU4@%T5kpoCg9iS%v!#tt9~WZqDCT z7J748`?^^I__jLV@#DL=+*aC*p0DZ1L>;}U*nO6O{}z+i_K#<-<(i03`ObJ_(ft6; zeqYnUyBmcWVOocDZ4t{^p5daLn3$NhH9+?IkBR-K-zunF^LTDd=x3p~$fX<;nRmsd z=KvBK9$u#Jn@HemDiM&W?`rGe38KoOSURT%FP^6Q}OLLSd)0UlDx_tTay`$sn zFRJW#sP<^#)Y2oRoIMM7TWONFznua<>^mL;@*Ij$fj>$TXRW7qPo0BU!}2W`4O6QV zU@WRFFE4*gEk!v0ku5Wb9%!CG6?pb~yOQf>3Yx2h;h{s2a<(s2zE zD|BMr3{E{NQ2$$=z@TLD;HsdTT*rTh8&&<@kK(992$%tslZy6?Qb8@!2 znk19k1~)5Cxk@5!D3uAG3(Od9H;o(A=X7JLq&b2Al^Td^w$686sV-v)!#2wuo{o4# z0q}}c${Hpp4dZFEVfI$56;mp8aoff?>Y*wdxnnZAlonaWokfvIlnK4>M{Vb%nLiu7 zoK5d%{A{NT!__gr#1m#gpn?H*p8{V{Fj)ynt-z~9Gy*`l94B~HWp~XrsK!sT|AbjC z6da;B2ZG&ZS#LhwUfL{M2Zz0soO~m1Fr(V8lM4wOE;K+RlkvOzM*UBi{hGA(b@Z?_ zuS&&j+xRVD(x}p}pr9Zfd&xepN(e1~0Wz!>ZSuvcX$&2<%d0pYuWf`@9uLE#nxjbn zpj6YG>b3C8`1m(2)`ci3VtJ6f_feWW&K^6S67CIjEmx@4*Ilg&`Mv?~&wY+9fjl+D mw-Jlzh87&rll&t_|EAr6TX&X5PF1&VXUP7+q^84>*ZvJ-(u$D) diff --git a/mods/dreambuilder_gui_theming/textures/technic_coal_alloy_furnace_upper_slots.png b/mods/dreambuilder_gui_theming/textures/technic_coal_alloy_furnace_upper_slots.png deleted file mode 100644 index 34a8ec88ba44a99b7df78826ce663069b62f55cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3384 zcmb`KX;f3!7RM7%p@0a88jwO6w1^-Cs0=FD2xw#yiPs21D<<)qgp~ zT2}g&I+mcDs-C_ZHaBi+;1@c8h<@AqzFkFQ#U>cVA)2HE4PQMFv}i@}-|)qE*Vr&G zIu0=gUI4)q1tAqSMs8Q2eYy?ggfR6@e0 zro3P*+;p@lVxr>}uhoIY<9|LuwG<3!xuemJF>`;?T9>>xoUI5Vzq5B;GH{V{@`i zMNO^O&+xm&*il^P#1-?>)+vf;p&?{=%x!2*_vsLSGqH1x>n4vU+xmGxdW$RiSWrTk-@clPXA zVFZiyG2Q?n3cB$A{Uz>Jv4+OjM%tdI#NSHtjqP8?>(fVUH#RnAC&~u@*qRg-y#54< zFPS^0b8JaAHug)Hua%W|B<<~&cB1&w@@a@ybYoXQ#wb>=9 za$2ch#Fg2WvGM+IC9Iw7)c7Tz5;GtbZdmv%lri><-V<%U&$kcZbsz(N9_NIEpQCQH$NS=%v)GrnbQwIt$L#faZZY_$u-9In)ZX|wm;EQ z#+(V=-3jRCc@hYO$xQ*zP(`*SMA`Ca)^9z5#_QwAr+-uyorGD>&OV@@^t`c=pBOT4 zLgCZQOc+r6!M+vQb9k%Q#sx&;LsE#6Y&yQO>Sx#<>q&|0UfAVl!+*rAFDeww*LXD2 zeQ=gC>Yh^SesuTQFrNA678LQGx;quxKbsAgrBam;YYt`XmVqVrk3vbB!unM(8n0np z0V=+7cDScbw_ew_c@D~ZzPI_vhi-=qB;F2KNdzb;V2IGLI>C;kd<-4CWO=;5^aRFG zUSNmUy6dt60HMHF7PDqlBz@$bR_5ZEsK<<-U#E*zL9EUA6_{7>(~*&R6t&rUvq+zhB|Z7qAhu+UmbWRd39 zBfW-6q>#ZHyy4yYd-*=*78ZnVKaGjS=SsPq{n6%$z40Pu$S{c_sxFs!?~x=WXIfiZ z`#qn_!ZOYHv_NAWH&<8VUc>n@Ki;O&bJ7ln{dyUHMNl_(KX&g9)7r*HlWFZKi_I6ET)ZX=O$6XorF8~`ZFh_$8Z>1hSQk<;VI;XDgB#g_-} z5(qv7|JUUC_L{6w^8D2n3g28sw*Ruh+6~EfQ!N;-&h~CxO^u$W#x+IjcRh7)!eVM4 z`{3~GCYfF0Rm5Nen2ZHBI(o9(5h@n&{@?I|tf70%x!*u4wBoxcEI0c8BxH zp^Rd>d!fT49~|oOoDbY46P^XPsng8|)k)L=bMUble9_BU0D8D36uReV|S zDsUMpP%F|ie1Fr?^F{39PZSD;>k&eorC?}HD5$Z$(eTbZt;~l(Iv}FFhC#R-vcH%K zSIz3$!)X>~Z05!u`$=`J!J{#(<|PaZLp)bRbX7OJW=^j}e~5N8__bRJW<$iWAzQM(A z^b{NwEv+)H<(f@G%=c7F{A%1kRiW()_6MzA!yrb?JJ+;OMhuxb77w!C5GIqPpZZ~) z*@8ida5Tzuu%NZz;-IdY{4i<;fRZa(xRmW+x zZ~0@QZ!CxW2uQXcyr+f4W#}%eS($m=BI?kZ z!hm0U%-G=VXo};r18aIW1gCnkFK{5jT&eI^PX*AnN5}r7o&SxR|9{hnt}B#Ce9V!S z=U8_`$3?Y}9Jo(kHvC95Ei=lYx}m<)fh7SMW+De&M#x|%zj_?z>)CYyZc|G?FZp$y z?wo4&Sp2u9$@NBULqkJV@M!}iKFu;Gnue788X*a4a5C-~ija6o@uhmYN?W1QxSwGm zIdmhJK4MZiSam5Rz^Kjo-e)n4z?uTxUQqB=#Pcus3J5v*xPZ7g0o8Q7q;@6Ro?MXXJn9IzY@7mxJ;-Hd`# zzYc888QbgM^$)7kE#C5rRki)`#Lk8DpeLsxabT;3NEEiaZ>Xm$w;AobpV0-j{M#B! z?szS11@UQBu*=ZeL-yujRERHLi$k%Dp;0^tQ>@!^!ZUz}tWh#sr_BNPiq(SAKbYHT v1F+Z4FBetTk;%vReRl>Zjf@5VIJTESO%c2A(D-PN^tOexcCaELF5mhmehgh6 diff --git a/mods/dreambuilder_gui_theming/textures/technic_copper_chest_inventory.png b/mods/dreambuilder_gui_theming/textures/technic_copper_chest_inventory.png deleted file mode 100644 index 6d226751382a7e5594e8bcf2ee045e0a4c3c5500..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9274 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 CGC^km diff --git a/mods/dreambuilder_gui_theming/textures/technic_gold_chest_inventory.png b/mods/dreambuilder_gui_theming/textures/technic_gold_chest_inventory.png deleted file mode 100644 index 10e53fe5cf29edd86bc02e098572ae604c1e0de6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11890 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 N6Uob+`{mC6{699O#s2^R diff --git a/mods/dreambuilder_gui_theming/textures/technic_injector_upper_slots.png b/mods/dreambuilder_gui_theming/textures/technic_injector_upper_slots.png deleted file mode 100644 index def4f747d6545799be1fd93423770ca48f5c6510..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3407 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 AJOBUy diff --git a/mods/dreambuilder_gui_theming/textures/technic_iron_chest_inventory.png b/mods/dreambuilder_gui_theming/textures/technic_iron_chest_inventory.png deleted file mode 100644 index cc5127a81eb598d30b9fb0ba2147b84f94d85606..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8580 zcmd^FdpML^+n=H+N}^09>`756#NG%^c7`S*>Dh&ljUpRq9AYpXougEg)0AU9#gxK! zn5I%FWnwbQU~8R(89qmxni>HNxR# zuuQ;T*ZzG+HeBmi&VC$E9)2R@xw4>y6j`KJe>!ep!$gjmwz-|gPC4oBrZ9OgHv_d@ zIfpJ_yu4;47VoUy%trP89C$szLQf}xHkh2Xc396y@7B|OnWKZx0-t$UZ*4zwh#yK( zyWqF?`%t3BtMCf=($YD=A_U@5AgwzR7Ze1w(CJN)6k#O9w@AxZ4QYsl6N9X2`o(2s zEwb~^sK(dvj58bBuUxspuO+Ka^%W5Er_Yp>luUwm7C`);((-L>_E5mc{pLOCnKrEP z7cX9eg`h2N{JkwDU~tQw66$7cZJ{IN)If}! zQr&X0$b}52r>85O*VPWJY!7#HGrOeT*ht9rW!xhpa^l~UQ%ij#C`?|EGhRMaH?dn= zYtttFk_<4Kx?HBDz zb(yl@+4y*{TS9pgJGlPYvuBTt3UbhUcGF^bky=a(qAN|`A2aXNa*X^~82P$ZeL*IU z=CztxlZS(gj4Bnb~T{Difm6he_>e^zTwIf%wjWXfh z6i*o(4!313zo{=US2Iq|h_$(hM3NF)u6NR}?N|Ajx+BF}dZAeZUe3EWaLBpd8!&b| z9a1oMiW~-$S*8(T!XKldX?zRwhbf-ddO|nb(@7Y+gRM*^)rc_FhdzvGC*uts&|Q|x z-=o`vSHW?*7F~wReG1RIO}uPqunBMS{a8R0TpKE*x5`-u2%|%SgBOY}DQU&_-83&n z%qYsApOcM!i14RKn=Ofn$2srCeueq3bI~kb(t(6A8aP()5dI=9i9np310IhMa}kI`2;k^CCxNRYw}XeQ z8hFfK0v;05|76&I`TDn2{(kj@=ZL+KUGuG&Fpbq;cQZJqx?;Q8lATMeYtQ^xgVe3r ziHwqpjqX5?XE%yAZ0k)qCUTV0q*Y{v+ItUt8Iop866x1@k*IDmZ)wyGLzX%=xsg*s zZ&mQ$0bZbnQzXsQ>{~hFYwVQ2e*Xxy)NIMj`nc@cNTj!N3lV3NflJQ61zZA~+*V)w z%ZV>nsXE{6uE8@t@4gnJd#0~Icy-Q$%1TD5FWyvk$BM<#mV$Nq>u*!>+Q8go^}Q*1 zmp#{er|p8E>dDDT2HC}*m&*`cl3qLd7shz1eXI89=%_XbkJ%jV)U2Ww!URhZgVM$bHOJPY35_fD) zTK;sMb#k}iF#eb9ApF2)vzgIu6J|bz)>ukR9Tj{l z_QGhBx$3CnqrI<2JEm2QSXluLYu%79KKdS1U2Gga$AW;@t9c;TMKWeRyp-QZ&uLSd zjV;xY4&f7{mY{~`lDwoEs#Qa|ZN7I{lE|;^=U<4aD|9OB$bpGT-4pepSuAX_c@9gW zb_A86G8cbLK3oyA1B!qkQmSX@8rfrNH!=#vx1PLqilX)SLY@xD|#8Z+!*Vp6HC(DbAy}QdYW0rm`me zGjSyJM270BS(8`GmoLFI7C_w7@YI5j`+eAtkT_%NDAAB5xCw7!f!j?oI%!eG>#V7X zx;5Yk1>GS^C3GKXAflOZb;Fs0#|0n-^r7GQ8~pG?az)XZ1%0Yya6LCyx?Q{6dSKyT#$xS>qlM9ZBLZ0w`c>7EeT z5o*2$!@2N=Yj-2TmZPdWedw)6Qd3h2{F}_>&w=ZSqRv8iaZVt&A8K!FtMW<+y}@Aj z%E-v1smCS?)^yM4AuNMl(Ov?}TPw`X*Xgi8c-pMGi-oj2_`x70#A+1MdcszcI z<(A5k34@p%0xSk+(Lmw*ZVL`btiFsN%$A(Z`TirBSa*U$KI^90V1!Nf z7{eEqj6Y?(R<&Z30;jb0rijv$XbEAZ<;jLDQ^tI=;R4M#m1(!!fP;hvqksl%T0Q_L zb?kBN`r=M(*$v^Kj`V5r`XLI@^PS3<Q(BcDt`2!2oA(!T>Nq(e>%6g6+-%+6vQx$!M+mZO!apj_F|JM@sN|Y%)_^ zM^P?$zO$@sA6og@T1wpwf&{>ip|(-U$xRyeArh$dRr5*Myhkl%jMim#pJ3d<#`CC{L{rl>|+DN6h{ryMpmX`j&#?<3;j`_!oiSx zV2D2`&%^nmL`LWrbEXQwnH(U}Pf$=kyx|tS%YwAjIA!C|+8{bo1;KsK_ZB2Z~%NHmqkAq z7*ISCCSA%H&F9X|!zTB?hUDt`BF9e4SWH ze!*g4ws)G9L&~O?uU_r;sEPrYBSkDL`Dtrrq9SJGJ678>E|>e>tt^i+X`bRaqBu^( zHSi0-&n|r1xa{>+27XBSNyik=WLEhJj>cwz&NuessQ4_8&*#tNCKU*ymR%%)d<16J zo}Qj|{%QzFdqW*$pTZK=CI8BNIx{mfyK)(?2`%7CGP(pj&fs81=S&}KfGDc!)=1p+ zP6Nz$dru*Yx^8lA6(41C!sV`h&D%@cvIOgt`BuX9Y}*9g1t2rH3dL+~#r9}QEupD9 z3D$E!f1jqRoS0QJT`e zV}t;v5s#VwfMSa4eW@Lved5wLM;9{^fGDXVvZET+DOFekFgo9RaYt+E>UwSg3~0gc z2v2w8ys1z?Co%wyB2F^_5RszYel_&uYySjsMe@pLtAAxP2;IG}(!Y`yEFh%*-BVTX zJ7q4g$~_#`)m*ik`OIZFc0=)kbm2R^5S@W*ygVjEv)U-R-cwt?9_tr439^GIt7}K{ zOsHqnv5N(s6NWC5&=qjRn}1ZqWWx~<-@ze;dd}^HFkmQ2;6&Wp>=U3&q>dh3_kaR5 zE7cdzgd?L!0Hj8_R1w>|C9%`IryuONLfa#ww#A`J=!+9{%SKIvvACfm zcq&n)EJxUII%cL;Gfn_OOan9idEMS;CRAZ1Zm1Og;cIFZ)=79h#eb$R642@a)|_s` zlu;H{4&z}9MGIpeQ06zWqxJOuLjtV!rUf{67wcZ$p}e?E-4sa3(RR^4$(mA|o;+|&zJnyLcG0P$BJ2s&N z9Q2%S@2)b&CM6{$306j;VEgyG^-4+eji+YPdJ9#D#SANnu z#d94Mx4Q5)_5(Q;6r-98*Vh+o#&tyiv>68gB)(^6OkE3zd=skYi>VULI4kg-k*I2{ zmAzgW!il1{)}v7L*4U)|5D4y=k1u8;p5;_r{ ziVm7podU#~4dDqQZHzS|kdMD8uHHoVxabt{^S>t*|4>)^cjdaj)UjKp$aF`1*Q_AQ0VKp@*R-kV8Z}Jj296KD`$76N z8e=#1R&LGt?kQYDEY1dqT>85~w#Pf9Ec$wtBH#j~H8RB$|5?Zl4haGB8_3g|K%J;# zo?Yk34dtwro(rTRz;KGS*6y~y1s^p;qY0HQ1MI9oJg^z)_R+o!!SP+wo{^D)b1o#F zcn8AXo$Vz)Em=T2`(Q$)Y1QZYI(esoR)9Q*4C=R(5qN_eG7bhnxy8Uh!`5WvY~a?+ zMqC=9u6WSC-H+E%{Uwa8u*oyPv#%8kG6DZ-We2y2h!lFvtFhBH!#HF}Fg`vm_e5u= zqJ)lgU%YucP2W9YPPS&UVPc+^6{vDS%m85Om^PK4bOU%q{37d7s>o#iw2my=tMJPD zJ|+1{5n740&kO%M$MN^CxjJq(6U1r@Y0_^GyF8sOjxFI|^Blqp#8Ub4paD95A9obU z{zlYM6Kt~ASonKGm$QvK4#{mkos{i$69(N3Zn2g>ki2WU+f-)*P6^^N0+d}}jGF9B zHeYwsHCuBj#J=56eNh~~S+;swbaS930;b2YY)~jpV)n-sPy}dT{05w|A309%cYn$G zWFjoY4RNK2qwYCklPPOZO4*uI4`7!)5PA;(XyIz4yB{l5pulQVg-Sk%ls#Rk*D<_p zZExS|1UcV^6S<=&1C;A0M_EqtD<0C&6XNnQdWv0BW3jg-Nas8L4*7TX&EJWf@sIEX z{(tg$&|ukP(w{1DZV&!afdgsAnkV&7R5-%ZIe{NuT=DYp88{7ZbA_4#XR(GLApdt) zcBv@8Jfw4>z1{iNKn3^!qJu7>M}~xkPBvTePwf#UTWekcKsUgqjzZ887*2*^k0(=q zBt?RQiVZ}8LqDk8|DrwQkwK7d`UqMoq%4qOmvc#^ZrbMliNqr?;@+#mo>6l^j|sInO(=&Ns?W( zHS0flv)YdA-@l(_Q+Z)_S7`5q(1#3me^*zwACC|U1qE@P#ct$* z_LN_@faK&bFb8MLC+-F8Iu# zo?jlbDxh7=*4);UQTgk`hbp2_BD_RY1aw=dp@`3mU-pC+iC*QjVSCtN1EzQrs*<0^JJK@fxJU*Hxu{ zC&U3LtY&tj`$lT*AmQE3vsrmaoYQQP+b;<+nCPE%zcHupM6I8HqyO`lfFkPW{2z9i zbk<4igfLJ6sy{REHSjTUAm67EJP`BD)Xa2N%Pm~t{uH^!4XL885+-~bZy_3j&f`B3 zfj(oK-z-t`Rgg3@bUf2B9h<=GutG+G&Z9ckg3{vnnJJ-1`QKzX;n{yE!HKVufRudP zp~z!Wi+>S!FhHR*G~~x9Wpj08Jq?vrCevT%-r2?>gX;uxu|o>z4*|gpf)=q@EPq}Y zx&4x#Xj{}k;ay*btBp71C6!8fJ-`)+cfeG>1r)eedu(!51}ikp^V$R7jk{?;Y3UMm zbZfV`Kx<`p*g;s@zTV#6o>+~n3pNFMVK$?34k-~ZgWZ9D%NL!RUOVB>Ww>aSO3>oEGMqlav^6@;cw8M9_w<}_R>;~Fdp#2PD2GBG-MFWMt1JeK3>h(87 z3-n!4C^P_vWun?Z^^-Jcw!BI=pyD}%o(z1AQ7Vu>@12)mf?o_ki+&d%rz{}CaBz4Y zlFxpHq-~3#3}sB)q~$v$9e16LGs086P=*9Jvkjvq9@j1H1HmmYi~JyiS<(;A70No#G;h3)DiFln>{1WSJ*2rf1Pam<>l7 zCw5zfW=Ua_>m<2Wzb9H^#llhr;scgYL$)!^9 ziNZD1EHZPUvb5YtQJmbc)Nn&mL=ptvt7*?X&p+>bp7Z|kp7Z|B;c($xzTEr0_xoAC ziHDr+Hhru5Ed&DD~}lY#~$>?9b@IQW+jmX zR-Gk_Jn2?lTB{w?9MPn9%}GfX2)thHsnS5>8^(Cc_EmZ?Q!u3`5>r&V- z`T1C@3BEAjr-HvkLHCN^_fgO)Hutn)`K>vI)n_ds1G^LN4N*pg{^!=*3DQb#gP$Llw$1cijyKbKL3i@zSwb4lR*kuak*TvU%`(Q`P zk7an2X`|4Tx;p)Eb@;x$dxcc2u%B5z9TEBWxRt54BM%*Q-*AsDHW=Easb{2Pru~(# z-ofEA19k6eCc!pd`mIX;##C>`!Rr33($dkURJGZ*wl->QEN}9acc?8~G*5Sdi#GSb zp^$LAR=Nc%AT}2Dh%wih9`E+TNWJgXLk${ND+zWhH}^(7)v&|D0xOR5tmuW8P{b_n z&;wrsa5h~{U_2e?#a2Cjyo1lgQW36NcgsD>-ehdI14j}1>4&_i7zukD)+lf7Jn;gV z4bQ+r1HBx}dhiny6L;e4N1V-BFHw4_w$>q(+b79^7|dW~$1QL1o-YfXcX5*(hn!2O zHa|z$xnEI!?8x3B12P5b{}Q_0-5ngzQ1-{uy%*OGw*>o1%_@cYemvdp&+BTKkaQWy z*ErN_Zg4_)o$OxKdJ)0&&dL=l5IcMfjCg``cDUydZccIhRN#YIC~+PNFrrh@^Kn>MzH_4)kC`RHq12V0xK~x z^i+1&@Or5KV{ciK8)ZtFxVqPklN$0DkZ5*ZRNz({`N2Vui#%x*uZqoNcT zo+Rrjy<@LiiwSPdO=)*3Q*s29w!HNOFLrzFWof2 zHCw(W9~|O*g)dc1WT5a`8KKpCyX16ME?NH)Mp5dI6fa*NA8}N5e?6tuX)W_afsEn0 z`}M+^+KR1v&WwkXqvE(9oq|nsiJ5qxik; zIb#g+(J>W@p-C5#F3PE zlx=+)&F*X7c5Zl`ZqfmwjRv_Vx881mE69VKDa1Cc30d=E7PdSsnGf>4&ri!DLy5 zxKzKj4A#|maxihN2ughuaq1vp7jWH(09(X&A!LQ#5K4lA)%@FT|8%Q`uysG)Bj!blJj$Zj`Dce}J`Y6FM6Ioc)BzuFZ|~?1gT&W(+_B9W zjIq|7oa!N&wFIER(T>8D!;W3nRkF~8$vk32(YU9eSA(GdmQJ$r`Xc%jg!RgyBi5F* z$c`GZKp-IVc)T9)N{cMlhPA3`a6aa)skYnmZ{2cr{l4Tm_KgwNaP+y&3V)T;C!R#tvJsaHaH3!5$Mdn3XFB*SdYMB#hL`}yKTB_R6rnx=@mcmiAB*f3}PIRrD0~Xx@ z<+|PNJoND4!#~JbO6(l{)_dtgX`Sz9*@caaY6k-anmgY8#LiK|08rWgax1vrPA zvO99*NMn7dwS=T8dr7AGiG*HOR(R5uE4}S~2Hm6|6`N{%IqtnZ2%vPmg{bLkn$dK$T1NaqEFms{}ncnlE>?YV+iMl&ROanPf_wu zIY~C#T)hZmSx{UG(6 zP<;oUSz7v%Yq^CU-@Lf2Zss|2^3R?p$mr3y@ob@3CSEo0CL^8Vai5~x{NQD{zU%k( z`C1OxivG9QN>0pBAC&LwfDcGrO|>!P>0qe4d(ST@G*GGi;)3Dg``cJ~Kz{&IAh7VP z8W6(9b-t*m$oHga?qGeW3%1(Vy(iMY&yY^1)68<)r&jNu@Nth7xCneO+xB)L&|66N ztQGx}6zL3Zcgs0a=1H=Ru6DTkL9)k<4Km-^*ZXMH6>>xHS_NSys$rb7@Od~!KZ&S9 zU%r^WPC%ps-3nXH&g`k@3??AH&p=KI?l1%u37SStH{0b7Wse>5g{<&1P>KLaV(S5& zCq;%jAqWOZA12u|*Tjusk5FXa5VFR%mwp4~gBUHcajko^n!Z{23%J+s9-c@yXT=AQ zG2JM&U~=Fma$+64MU_4;b-=X(L&CYYYXn_$CYfFX+>aD820i@Xs2O z-usmF=I|xc)s@m9ib@t|X9nsWOAN30eWsW=(RGrRo=^SMcuq;$<>IMhQY>M-uP!ee zIeE*HMmtFk8)z4GVrPnxleK=(Z3pSy01s@7edCxaBsV)<-VIAyK{v|x{n83?a*jiA zxI8#^pK=C#79(*bbvHVeID!(YZNKJ#X2&u4mo%RQro>n{(R1!oj+pIZ)!IrHpW-Y( z2*sNnO8{1fN(tN*rL6qht#385O@z)@pn5(;oGoR?1NGgT{x)$BS9j zwHgAKNx(H6HUEa5lO_Sb3t9oW7z1*#207X$0d;a-{=(woqP4qwJ>#TFP|%4J+DR~A z>pofa*u7|Sfh&_Tfi&|vdUP|5>yt(tH%!-ni-n@lgOa5U?(X@ZO5We(NzmWhVB?oQ z&ociM&vQSsmL`~=g-5Z6v&SB2IRu4J`s|yMac=IE#Tc3Wn!w;y=?gO{3*%ShRO&z^ z>|%|U!wchS_$ji;MP>J~w_sJ4Vu1c<!%gdd^*LGkGX{nkAcNZ~)6&=qseAba%Is4Q;G-cz$ z3VHB`^}L%O!GCT-{O!-koN#sC=fQ!QLu-l>FQ_MXjzHthlE3Q1D?9&l-vO@kSCIcY z_!qSQ3j6=rV7Y;Ee7R_r2hhfK|HxD(b$cQ(*S}ly!S}?cH$3B7&eqMILq3CUZ-REB z!o=?wzMSaJHRpg7v=6I*EW5jZh#C5*8qtv&P#5X^hymn>PLeeC<0Z|%xTb3w(Lt0O z$r^s1fT3|2aZJfGm%H+G!2?DT#p8o{wt1R%5>d|qf1e$tCQv9pPhd4Yp=N2l*#&?t z9otbL-b#aAi^7X1_h^vj+6`&zPXsw#w z@wav2aLZhg>QTl!Nak7ZSHv0Hg0{?3acPK7Z#vR3j+tX5uT6^twgrf(%YNoheuD$H zXkQkL*CZ}wJx@z1gsl(7N0Nx=64yW>yMJaW;o*tD;Xi7sJ>3uE9WeEcJ>3njrR3kH zDgG7B9tl^cVs`RvB=02Cc|sX98NNfbOcJlcm!#L$h>-@gQxnNb+eK(@6A6FAU2-7vvTAGK0vg6gmv;tw)eeX^C3Zz7vSKtw ztWDED@rsEP79cTb3xrkXU>;R`32D75b($E>xAq7`0#F0TH}O)WwO$^0AhJ@bDak|uXj(aGh2<;$&!?%QoU`83)AJC( z`tTz9;yvVK*avg59Gd-Ba^Z57e&FfTbTH$5${O9~K@S z{**ou=d8=iH&0^$nvAU<%7x9bW9!8)07ryHi07HJ5cBX4m#F~damdLMqE6ZmHhxLO zPttJhV4WjvP0v^TZ)kNZa3~8x5mx@vu&~HEKNdY=l~-*8M3u`KY+Y4V#4+8dDxD+{ z;hxU7TOPy*SN8+cY$(0|6ZvqFv*?2}Q-QYV;sMm%pL3%Qpq~}j4duq&?X*7;6y)~3 zO~@zTpW8SW)dAt>xw(%4#z0s1J0pBHHhya5a=Fx+LDAdg{?s7Hz|aue1LY>z-n|2O z#uQ5s;CKg%=o!Eg!6LTHHyU=(Xp%f`5q4+TR2b^t-HAeRmHxGbqMtVHqgKU9a(!Y5 zMOFIT+wFxpti?t~9~I^4Sv)v%pljv7;3raIN;^*$184Jq(Slnzm>me3g4#508%j9( z;>8OqaNff2E>!7DOdRkuM#!%!HW_a2zbeD!V#-QOP2n6(S+{y0K46url!XT1KZ^V7 zt}b`VTtX#Z2P^-3VMgCwz%ieI=Q+C-a-t(|7BMR4fWK+t)WazF)iNnB z5@^%_uN^Uj6JFVvI1I+>uPM$-%Wg0XF`Daux4&KZbC772dvpOWm;X=v$(Qp}lzN`v zKOmXt>FG%Und@B#Oz#{9iy9Rf?t+fVRdQiK<-&drOz9L_imX>QKxGLV%$h_s#yf@q zt42Zo#h@&^UX77>0AI|=|3?M|B!&(z6unraOJuNNpOTH_Nu{M-TuUoY>yDa?l(QX) z3>5GhHl4$?Qcc-~x=qXTXGI@k2r0o-AlR7PEf*4G6g)snsE;pFSTbobB5R<@o@nhf z|HKhbqE75y2fWy)dbvlr^C|UTEDAWZx9n(e?FgNygH$H-@nyR}9%!L*Efb0MbCx-l zG!R5Li3qo{5*>K>Zh9u_JRnXiQ7CkGw=ydf{S3a3d-$%dW06kndHi(QT{h?>4cXI8 zobia#Qhb#@N&jH@a_ifAOGTzKnW96|O7k!235ghfwyvaiDxvp`53nJi;V{A$&0JeS zAhADiR5uGtQoJOSzlG*2{DrFpg`e?Vn9`<#MUcdBXa4Ph>mzq6Xxo z0jc|!7(ziOiuoj0cz5M+B>%lbp^hwv7cVW^Bg8NHBD*Z4f*xrXDYKtrsO`Z~iAA<&q=_@xg)f_tJ+NkI3T!9*A(ufvW! ikj3Q=^z!ozA;3x*T=uK&xSO~9*}=vcQGVd~rT+pe7=3O4 diff --git a/mods/dreambuilder_gui_theming/textures/technic_mithril_chest_inventory.png b/mods/dreambuilder_gui_theming/textures/technic_mithril_chest_inventory.png deleted file mode 100644 index 10e53fe5cf29edd86bc02e098572ae604c1e0de6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11890 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 N6Uob+`{mC6{699O#s2^R diff --git a/mods/dreambuilder_gui_theming/textures/technic_reactor_upper_slots.png b/mods/dreambuilder_gui_theming/textures/technic_reactor_upper_slots.png deleted file mode 100644 index ede6bbaa35340410764b3b3f490b0fa8164cdfb2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2506 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 D8!5oP diff --git a/mods/dreambuilder_gui_theming/textures/technic_silver_chest_inventory.png b/mods/dreambuilder_gui_theming/textures/technic_silver_chest_inventory.png deleted file mode 100644 index 22933b268ba2793ab1bbd480db7922dc92e5bdda..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11121 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 diff --git a/mods/dreambuilder_gui_theming/textures/technic_wooden_chest_inventory.png b/mods/dreambuilder_gui_theming/textures/technic_wooden_chest_inventory.png deleted file mode 100644 index 86e7f14c7116f402deee419d1260744eea6680d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6709 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 diff --git a/mods/dreambuilder_gui_theming/textures/ui_bags_inv_large.png b/mods/dreambuilder_gui_theming/textures/ui_bags_inv_large.png deleted file mode 100644 index ea19e0059bf9e11b3a61d930669a8009c63088dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5058 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 AJOBUy diff --git a/mods/dreambuilder_gui_theming/textures/ui_bags_inv_small.png b/mods/dreambuilder_gui_theming/textures/ui_bags_inv_small.png deleted file mode 100644 index 53d6539ef54662804f01945b64246630e2f85b6d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1824 zcmb`HjaO247{{+!!gRIOT$#)4I4a#rYWZeID=h>9<`gXu?k;(@zhL*=-#yPg_nhbV-0%1E{pIhA z-o4V%)e!)ImH0il{Q$5GE`gm$2l)A&L?!_M2NfQ->)?e^-B{G=IFg%m27-cQ>FI-G zVpTN#s@I1)pU8FI*Sti$3Z(uZ&iS%kfXC}K)%Kmp$6+_mEaN+`$a4B=-$gq_b-m*^ zYuk5H!+jG1l-2gJ*UN7xx)qE;-$M0v^>wZYInFg8mf`!v;)&Virb)%2<+e$H0ZgdA zOsmzl+`GqK<&afer#V0DXDOmZA57z);MK6Rva(JEZm=H1F%`OVhK7a)H;iufw-~I2 zrlk1$`>%D#diX8T$RP1B*f7gy8&*xc&o-QERR)vEWJ8K|4m$(sRGANhIjBxB&RRH8jm7I9pQE(u`3=W6a;j=0;+mV+*yx z!NKTyjSvJY>%j;RM z?d_e!L49uha#U3D)XAqEInE%BJ$cW;K3*lOE5!ltyi!n`)v81CUihnUhgBM|fD^t#s8)@xmPj~kQm!ORc;AEJ{djC5LbF{-=0s4 zuDKsy!2gjcK_|wp9c(`QL@vj6ycuC>fYZE}J=^**N_FZ*4r*A`aKVtsyPs^HPTNhW zR-TbNhs~^1DV)m6%ILiePunjn&ZEDL6+Km_o(wnL9@9k-oZZh4#{HpC_?2TV(p4E{ z0TkEOZ@wu_^q0}x1cjs*Vy<7*ZBIw9{wB|Y=UutExkGp?Y%M&Z+FG>2(YS81)D z1^nW{6lm-G{JbOV&I!cM5kJ?QXPJErs4jtr?l7Y>cZB1ng2>4!k96)PbuEi&j&jL4 zm1B-1CwIdFyaEDEtPQoH)<94bqvcoG+CF1GTU2AIz+N+BBUIRfgJ&Iq2cGRj0ziTd zXIrlRhoS>+1H22b|DnjRgZsF^>uqr=1*ik-G<$KOk%*gAV;!f#1S|GIy7qe1L)0)=1W)xZBy(=`|# z5FG04?5to)B&^{{b#0ZkS??}PHjk~>akI0tm{MlBkJ|C?T^B9$h> zH2Xz;YzxeBIGlYKh$WklIO6801M1Yz&*~LH>T|7=3#nFK;vXu8c-%5lnY#ql3l!e^ zqpEq}2z0zOu}Wj4e*}|VtlS=G>dAImxAB!;Z$%+9DPe?@4Z>n?n79wVx9jw|7Wl*M zZIO4th!$mIH+9>%*?#pK5|K!$_&52I_SRN2cM}q`HjF*6N0Qeks0Zm;v$fFg!GMRy zgEPvOX)$zzrf;HozmvJM*ZnFzcxrlui{Lyt+3aJ@q3IDMo<8JPn$0en62coSlyX|A zs(ddMdX0u8K`IQlM*TgU0$)T%UY~C40k#^9&!2p)O|MkpIhQ9FzT7h7QAD{E(uTym z+rfI1dvWP>iYGiaNU3e*s%AU~S5p_?>EldvtJ4S`HC=>xLBKl1 zgaA04eq3CZ*N5oxX}b%e?$?227~cKP_hhpY6cxi&-wO_wvY&&bTArPk-e zruMt!#P53?32JI@#^3UEJxVrArCXg;iV33d#iE*}vGaK;eorJ4eHSMO!4E8$JsYHF zXP);Q!iCFBg*He>Sk>6k(a{J^i~oUP>>9Q`(T!@Ivxl*_T^Y@D-oCz@uas9P3T^NB MuxMQ47YUjF0EoGWwEzGB diff --git a/mods/dreambuilder_gui_theming/textures/ui_bags_trash.png b/mods/dreambuilder_gui_theming/textures/ui_bags_trash.png deleted file mode 100644 index 5b2b4b3dc8f15e89297e2429a3672865118a3875..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1836 zcmV+{2h;e8P)!=>Rq0aVzHVI)mbxpbElxvk6e?sJj2v%8ztaO!li z3;z*Gks`<K$Mx*bB!y)PQ zdhmT8j^n^_oUNf&*EQ<8h7bZpQ6S4QOePbRrs;nH{P67AGqp0n2M->w+qZB3y1To( zI~WYWIfw82a9ww+;AwyWAf<$q5=Bv7AkTB;dH#pvIRAO_(;HWc6WC#96SJU z90#7~!S{WHVTgXek6y1g3d8X0r7ZB_!-wqd-MfpMH*b` z6{M7{vB>j0=fXC~s`FxJ?c#P?E ziZo46=tNP3BuR9f2Bq|318lnObUMX!Iz^Uc$g&JYQM3kfN-3t(sjX(lWL2eX(lWYu-tMOjDI_PTJ}WwPoz zviv%-_PGMg^ZZE6dskNNTAEo~yLueQsH$o+W1tS~X_{g_p98=aIyq9{U^We`FjO;co9W?t+1+^Q=9ZD~p=IF5rL z2oOb)`5QJ8pyzquoFhpR^AG5vR|BM!c503K)T6KOx-Q~4Mv^2*k_4RdbHDz%0*vF> z)L`1u^r_*}rAyF#=B`AaZjN8~^5x6e+1WuC&9ZZKVf_i~ITL+e^?e`xejhtKI|#!N zLI~7#4aadnDLpbSq9+61M`y8En7G@#?r=E7U@$-z&9ZX?sI87tilQjYM1zzPp64M5 z0)$}*#u$VUP)eC1n{#ezGd)i6K04Y8+pgP{<*zk83Lzkbz<4}{5W)ay7PrlUd{v#T zzaOaGZaST!C<-vfP87Gzf_zn-4*_zm0F_dv*lr%Nn#FCiAYWDILkt7hzOV&o0a}0- zpcMa@)vev|;4E=CA}>$;{9)O2S6 zrl)bd=lec7d7h)HDo{#62tg18os4sI4zTHBlv48?g2`mkI_`U3qGtj*=Vq*~i*b&% z0Mss~=LI!DAw;Jkf^!bWn3<98diS|A7uKJ=b}>Ep(`B5};UbD63pSHDhp4Vz_Cv645 zX92$3>L{h~eIHd-wU%I{rR?}i zDP_zPgx)RD03F8xA>^CAy}j2eZ_StXQ$K a&GI)JGd=Ure;%{|0000fGFgh#$YaZ# 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 diff --git a/mods/dreambuilder_gui_theming/textures/ui_form_bg.png b/mods/dreambuilder_gui_theming/textures/ui_form_bg.png deleted file mode 100644 index f465e8ca4a701acd162bd708d0e827c486b8e087..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1466 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 diff --git a/mods/dreambuilder_gui_theming/textures/vessels_upper_slots_bg.png b/mods/dreambuilder_gui_theming/textures/vessels_upper_slots_bg.png deleted file mode 100644 index def4f747d6545799be1fd93423770ca48f5c6510..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3407 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 AJOBUy diff --git a/mods/dreambuilder_hotbar/init.lua b/mods/dreambuilder_hotbar/init.lua index c948e338..b1f34717 100644 --- a/mods/dreambuilder_hotbar/init.lua +++ b/mods/dreambuilder_hotbar/init.lua @@ -44,8 +44,8 @@ minetest.register_on_joinplayer(function(player) local hotbar_size = validate_size(get_hotbar_setting(player:get_player_name())) player:hud_set_hotbar_itemcount(hotbar_size) minetest.after(0.5,function(hotbar_size) - player:hud_set_hotbar_selected_image("gui_hotbar_selected.png") - player:hud_set_hotbar_image("gui_hb_bg_"..hotbar_size..".png") + player:hud_set_hotbar_selected_image(dreambuilder_theme.name.."_gui_hotbar_selected.png") + player:hud_set_hotbar_image(dreambuilder_theme.name.."_gui_hb_bg_"..hotbar_size..".png") end,hotbar_size) end) @@ -58,7 +58,7 @@ minetest.register_chatcommand("hotbar", { local player = minetest.get_player_by_name(name) player:hud_set_hotbar_itemcount(hotbar_size) minetest.chat_send_player(name, "[_] Hotbar size set to " ..hotbar_size.. ".") - player:hud_set_hotbar_image("gui_hb_bg_"..hotbar_size..".png") + player:hud_set_hotbar_image(dreambuilder_theme.name.."_gui_hb_bg_"..hotbar_size..".png") save_hotbar_settings() end, }) diff --git a/mods/dreambuilder_hotbar/mod.conf b/mods/dreambuilder_hotbar/mod.conf index 2814e642..c5950374 100644 --- a/mods/dreambuilder_hotbar/mod.conf +++ b/mods/dreambuilder_hotbar/mod.conf @@ -1,2 +1,2 @@ min_minetest_version = 5.2.0 -optional_depends = default, dreambuilder_gui_theming +optional_depends = default, dreambuilder_theme_settings diff --git a/mods/dreambuilder_theme_functions/init.lua b/mods/dreambuilder_theme_functions/init.lua new file mode 100644 index 00000000..374e492c --- /dev/null +++ b/mods/dreambuilder_theme_functions/init.lua @@ -0,0 +1,20 @@ +-- This mod just supplies helpers to build slot backgrounds for mods that use formspec v1 + +dreambuilder_theme = {} + +function dreambuilder_theme.single_slot_v1(xpos, ypos, bright) + return string.format("background9[%f,%f;%f,%f;%s_ui_single_slot%s.png;false;16]", + xpos, ypos, 1, 1.08, dreambuilder_theme.name, (bright and "_bright" or "") ) +end + +function dreambuilder_theme.make_inv_img_grid_v1(xpos, ypos, width, height, bright) + local tiled = {} + local n=1 + for y = 0, (height - 1) do + for x = 0, (width -1) do + tiled[n] = dreambuilder_theme.single_slot_v1(xpos + x, ypos + y, bright) + n = n + 1 + end + end + return table.concat(tiled) +end diff --git a/mods/dreambuilder_theme_light/init.lua b/mods/dreambuilder_theme_light/init.lua new file mode 100644 index 00000000..7653c420 --- /dev/null +++ b/mods/dreambuilder_theme_light/init.lua @@ -0,0 +1,18 @@ +dreambuilder_theme.name = "dbtheme_light" + +dreambuilder_theme.form_bgcolor = "#F0F0F0FF" +dreambuilder_theme.btn_color = "#B0B0B0FF" + +dreambuilder_theme.editor_text_color = "#000000FF" +dreambuilder_theme.editor_bg_color = "#F0F0F0FF" + +dreambuilder_theme.listcolor_slot_bg_normal = "#FFFFFF30" +dreambuilder_theme.listcolor_slot_bg_hover = "#FFFFFF80" +dreambuilder_theme.listcolor_slot_border = "#606060" + +dreambuilder_theme.tooltip_bgcolor = "#A0A0A0" +dreambuilder_theme.tooltip_fontcolor = "#FFF" + +dreambuilder_theme.window_darken = "false" +dreambuilder_theme.editor_border = "false" +dreambuilder_theme.image_button_borders = "false" diff --git a/mods/dreambuilder_theme_light/mod.conf b/mods/dreambuilder_theme_light/mod.conf new file mode 100644 index 00000000..dcbd44fd --- /dev/null +++ b/mods/dreambuilder_theme_light/mod.conf @@ -0,0 +1,3 @@ +name = dreambuilder_theme_light +description = Standard "light" theme for Dreambuilder +depends = dreambuilder_theme_settings diff --git a/mods/dreambuilder_theme_light/textures/dbtheme_light_gui_formbg.png b/mods/dreambuilder_theme_light/textures/dbtheme_light_gui_formbg.png new file mode 100644 index 0000000000000000000000000000000000000000..953e7225a9b23c88504730fa8aab14d708d78281 GIT binary patch literal 964 zcmeAS@N?(olHy`uVBq!ia0y~yU;;9k7&w3=!$sk4H3kOeZci7-kcwMxFYOdO6d-cI z;b6`4WAFA${(5-A(<7td$6BuoZ=TLm+g>%pU`O%Q%WWHF*S<P17cg7uYtBYKU7A03C8Gyjk)z4*}Q$iB} DLGXJW literal 0 HcmV?d00001 diff --git a/mods/dreambuilder_gui_theming/textures/gui_hb_bg_1.png b/mods/dreambuilder_theme_light/textures/dbtheme_light_gui_hb_bg_1.png similarity index 100% rename from mods/dreambuilder_gui_theming/textures/gui_hb_bg_1.png rename to mods/dreambuilder_theme_light/textures/dbtheme_light_gui_hb_bg_1.png diff --git a/mods/dreambuilder_gui_theming/textures/gui_hb_bg_10.png b/mods/dreambuilder_theme_light/textures/dbtheme_light_gui_hb_bg_10.png similarity index 100% rename from mods/dreambuilder_gui_theming/textures/gui_hb_bg_10.png rename to mods/dreambuilder_theme_light/textures/dbtheme_light_gui_hb_bg_10.png diff --git a/mods/dreambuilder_gui_theming/textures/gui_hb_bg_16.png b/mods/dreambuilder_theme_light/textures/dbtheme_light_gui_hb_bg_16.png similarity index 100% rename from mods/dreambuilder_gui_theming/textures/gui_hb_bg_16.png rename to mods/dreambuilder_theme_light/textures/dbtheme_light_gui_hb_bg_16.png diff --git a/mods/dreambuilder_gui_theming/textures/gui_hb_bg_23.png b/mods/dreambuilder_theme_light/textures/dbtheme_light_gui_hb_bg_23.png similarity index 100% rename from mods/dreambuilder_gui_theming/textures/gui_hb_bg_23.png rename to mods/dreambuilder_theme_light/textures/dbtheme_light_gui_hb_bg_23.png diff --git a/mods/dreambuilder_gui_theming/textures/gui_hb_bg_24.png b/mods/dreambuilder_theme_light/textures/dbtheme_light_gui_hb_bg_24.png similarity index 100% rename from mods/dreambuilder_gui_theming/textures/gui_hb_bg_24.png rename to mods/dreambuilder_theme_light/textures/dbtheme_light_gui_hb_bg_24.png diff --git a/mods/dreambuilder_gui_theming/textures/gui_hb_bg_32.png b/mods/dreambuilder_theme_light/textures/dbtheme_light_gui_hb_bg_32.png similarity index 100% rename from mods/dreambuilder_gui_theming/textures/gui_hb_bg_32.png rename to mods/dreambuilder_theme_light/textures/dbtheme_light_gui_hb_bg_32.png diff --git a/mods/dreambuilder_gui_theming/textures/gui_hb_bg_8.png b/mods/dreambuilder_theme_light/textures/dbtheme_light_gui_hb_bg_8.png similarity index 100% rename from mods/dreambuilder_gui_theming/textures/gui_hb_bg_8.png rename to mods/dreambuilder_theme_light/textures/dbtheme_light_gui_hb_bg_8.png diff --git a/mods/dreambuilder_gui_theming/textures/gui_hotbar_selected.png b/mods/dreambuilder_theme_light/textures/dbtheme_light_gui_hotbar_selected.png similarity index 100% rename from mods/dreambuilder_gui_theming/textures/gui_hotbar_selected.png rename to mods/dreambuilder_theme_light/textures/dbtheme_light_gui_hotbar_selected.png diff --git a/mods/dreambuilder_theme_light/textures/dbtheme_light_jeija_close_window.png b/mods/dreambuilder_theme_light/textures/dbtheme_light_jeija_close_window.png new file mode 100644 index 0000000000000000000000000000000000000000..d0bacc8009a6eb89efbf4f3669966417a3971bee GIT binary patch literal 211 zcmV;^04)EBP)QFd0sa}4oZ?k`6~15N9@i#$MRoau^rnCzW|?pJl@Id5aR#< N002ovPDHLkV1j#cSE2v_ literal 0 HcmV?d00001 diff --git a/mods/dreambuilder_theme_light/textures/dbtheme_light_jeija_luac_background.png b/mods/dreambuilder_theme_light/textures/dbtheme_light_jeija_luac_background.png new file mode 100644 index 0000000000000000000000000000000000000000..6b84a5fe7a8fc9e362e57d162321065b81a15a7c GIT binary patch literal 8246 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 e-s<+FRywV!`=>puVz*W0oH literal 0 HcmV?d00001 diff --git a/mods/dreambuilder_theme_light/textures/dbtheme_light_jeija_luac_runbutton.png b/mods/dreambuilder_theme_light/textures/dbtheme_light_jeija_luac_runbutton.png new file mode 100644 index 0000000000000000000000000000000000000000..d6ff35b353b1977bb05fc4d60d34cf8999ab1b1d GIT binary patch literal 1639 zcmaJ?do&XY9NsPRw#mXN35PcF%q`b*9`hL5(DKS-CXbazMOs*{g)y60G4iNIc|RhV zRc5l}QCi*f&?vShB3q#*y6!#ao^$`W=l=2ge&0FY_uqHU_vQN{JyaBTDgpoi6@(|; zfAdQ>@0h&ICd%dua{z#CW(c@58vkaY66L8Ks6EIwat{KDeT%ZTD}|)VmpWnFYj4Qq zXwPvxRk8M->cB3N);*{muEHOysyD<~d6uhFi*HBknS$pS^)0pF0pAe4qo8c(C0(rD zka0ZF%r+@zvZC86X}n6j*7Ip2W~!I)Wvv&+UX9hz%?8n&k)PP$f)wtpqBR-7Jr@sc z7*uMBt@#?#`Llzx6L1&$`+7#esdi&>ulaH&-kE1*B4s=C(~D`bSM&!{ww=ztu1-cm zZ5gxwNy3i*pf^7%fBhA5^dC#%{-UV3)KNDGB64@+bL{F9%PQX#7oLI}1pGI7ECC0e zQq(XBisL#6^hLL+6SF45V+^?|tlgJt=(@;zH#v7b48IJ03yTws!LZen~c!sw;C>PG+C(7I@}6hplRqHRzxLx$#k zv`Od^WT(Z=;C_W5uc0ipAbd#If?YLayBeQE!&n;~W;25CX37uA0eX4Iy)_)4vo5YS zq9x2~&p4kXmu?KZX|^^sbi8rez0GZB=#MDo5qDt=a%d(^|CZCDHz%!-+lRJcTw>*< z;a)H`EaqDK9~$Qpu2PIxTgYzrH zh+$O|MwnJOarpU+(r>$QgOh$G3vVfq?NxOVP6e2$rIaq~u<;J83_s=mo)Y-#BvfDX zX-VJ>(?d; z&`@?w@LhUW=2?5p%A6{p5=>4UR?ja8FIXe;0f1M1l$fTYYRwOe3^i@eapt@kf}8e! z#TSYRTH@@aJ@O|`Dh&sm8+Vv+kX#^c6P>_wu1g z2VH8J1fGL@U>mg3+%`f~J+P2FY(*PZ<5xnAZ+E@P`-SRwZ8Lre6CDp*PweY@9rbyG zQm~lxBKB1E#u#fBWxulL>xP;iXYh)Y5SZwB$BtI%w8hD6`2o4AuvF*v87pCMn_Z(L ziJz_?T7q;Kwt2?H*8lpTfu3+f>NYmxK|f%eG4AW`sHsvCYqfkmqB)h9j310{k*1P# z_Obccdhi+Ikvsybq>dYe+yUbAOVj;;KRcSeh&T>Qvj;q-5O8=jT{=-u(&+Lpm%wG= znFc{?Jk|x-1cd>9Eva}!9AMxvQnr7tMz#fg)4rHFJJFxG7}-4e>GksQ!vaf?t{fuCNR2s#cZ zL?=OO@KD&SpkbBSno-rT?<8;K2xUe)oOB`KM`6TL)4V788z;(||4oJpxMO*-&07wd zKurQ-l$RexZoTxZE+!svLxK!Q7vqfDV#@|7f(o9)DZGrWGmrn>$Ey(Bt(g2Fk-Ny+ z(PZK$30~U$`H|A4F@ZOB*D|~xXdx}wYv;D%(;frnlq>}Qksoe(Ms)XlR)s^=Y5P0+ zQ_i6%1B0}SG2Nyx(|HkV8qs~aY;_br^1e`17HiQNvP&N+`0l!C(wCB#f;hDO38s#8 zGaY8Th0IRlaI*2Qy>ef6;7lYE1*_AvtM}lA(P3h*1T$6Zy0k z#N;?vk4GE~Og4jZ^;URCxGRM9w4qCUWe`wJpS(IyFZqho+QmE#!oOgs>^Y}1YB8e_ zt?SW&klkYAf8RIdf12@M(qG*dd_8ZPlm3$Jy%0&t{6LT7MPN~2f~I-#Anau5a@Mg! gE4yv8KrS7lKe4)0H5;OwXmdaS2sb3W)dfTR6JO&Zw*UYD literal 0 HcmV?d00001 diff --git a/mods/dreambuilder_theme_light/textures/dbtheme_light_signs_lib_sign_bg.png b/mods/dreambuilder_theme_light/textures/dbtheme_light_signs_lib_sign_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..93f983735ac0fce751d7bed57ff745cd736f9f98 GIT binary patch literal 414 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K5890C>L#5>RT|iE%r;B4q#jUrO9eEEs2rxT* zPmyigb7;QH$uFTifg)cc1+3E^Z2VJof99NT|6-bdzu&xb-}xK=UVBVVf5$m%4G%xa us8N6x0uSb^t)Bcm|C?dO|GD4h{B4l0KFGsAQ}s?aNS&vvpUXO@geCx)1~`TQ literal 0 HcmV?d00001 diff --git a/mods/dreambuilder_gui_theming/textures/signs_lib_sign_color_palette.png b/mods/dreambuilder_theme_light/textures/dbtheme_light_signs_lib_sign_color_palette.png similarity index 100% rename from mods/dreambuilder_gui_theming/textures/signs_lib_sign_color_palette.png rename to mods/dreambuilder_theme_light/textures/dbtheme_light_signs_lib_sign_color_palette.png diff --git a/mods/dreambuilder_gui_theming/textures/gui_formbg.png b/mods/dreambuilder_theme_light/textures/dbtheme_light_technic_chest_form_bg.png similarity index 100% rename from mods/dreambuilder_gui_theming/textures/gui_formbg.png rename to mods/dreambuilder_theme_light/textures/dbtheme_light_technic_chest_form_bg.png diff --git a/mods/dreambuilder_theme_light/textures/dbtheme_light_ui_crafting_arrow.png b/mods/dreambuilder_theme_light/textures/dbtheme_light_ui_crafting_arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..8ebe1b3219d1b76111952d7cdf715cfefcb41ccb GIT binary patch literal 869 zcmV-r1DgDaP)N`MwR$f&3YzH*b#ys7Vj0k#=HM?)hPAOsl&fsKvLHp4vg2Qb1O zCMIc8=p-s#^Uq>qalk$W_DGVe1u%?FmL7V^V4x!c1>j&~VNqb8Us&j@R02qI$OwH5 z(oG5#IfQ6;yhA8ZV4oy&^cTp7-UJ43{Cy9GJ!@H z88W>5>wzx1X(t)F`eP89muV#c8Y(&+A)UP+EoJE}=@K9iD5!zbPa{$3tc-yoTPaPk zzi6{4)731k4Pv4Npaq}>;4A>RySjL}J}otae1EXzSN=B51A;M@4k82~Gr_pB_#!d@ z7FU?!;^e)#$g;rZ22=Dd-ydrjgt<@jc}o|mPT05=-Nb1cDA$w(GE@9yZL|8V6#xp- zW67%9viUZ1(&^hjgK2h{KYALAh=?2pnPx)1^(rzZv>9cJnTbbBO(vpp2-A#UF6^%9 z8<7A|NH7Dywo{u>K_A_iVp-XyV!grPCtOV zer>p37L11EdV>@yDRf{p)_{o2{?{I9OsH(hX}813Rl`lk|9|ggzH=u336f+P zsWH$4@(>l1P6Q4Pc7PCMWE3@ZI!K{=Lu)}>pzVlGs!m5+wtkLD7fFne vztIia>vtHO3po>{6ZQfAvOQUOO91`=13Q{8k1^z$=}Jj&c{}geU7KRB4Gc^y90Cds4GfHM#xL^|aTm_yp62~>_pgoP tzFDGA)>Ssjyg$a^`Xa6AQHIMCrifV*i#IN+YXQ2A!PC{xWt~$(699vkPK*Em literal 0 HcmV?d00001 diff --git a/mods/dreambuilder_theme_light/textures/dbtheme_light_ui_single_slot.png b/mods/dreambuilder_theme_light/textures/dbtheme_light_ui_single_slot.png new file mode 100644 index 0000000000000000000000000000000000000000..03ca4e084f029a6824e82f313895b2e65bf33bfc GIT binary patch literal 671 zcmV;Q0$}}#P)Pj3aeB>wh$ZBY`>s(v9ri_f=$3eu#gmz$|Cp+ zEW{#^UyyQBgc!0ncP%C#PCks_ovh$};Z8Bb@ILpUt-@d60dbyNLYQp1})y`b*pR8ZQHLGkdFF zJYQAempVuF(?-@;kk$Tee1Q0B77KvS4f7T6w<_?oc=kDWKU&yx3JqsgQ06-xJsTof zUsVk%@$MxR`(+#n1XT&D$r|Aat6H3Vwivv97#^$ICr$ux z-tQ1pUQ_~r2;Q;mGhmQMv=PE%*>5`0uD(sz{@9KO5bgi~4!{9800-az9DoCG01m(b zH~J@r3LXyv8EPccWCq4G zNIwva3>s30|0ysRGlwT0ozOiEuweYr`D`f+J9&j>r0WVQsc7Z z*|U>^%v?r1;4bxwhmP%*`o=*difkp(U~0xC4X1xmKLLmPfnpbg?+E|^002ovPDHLk FV1jlwAmRW3 literal 0 HcmV?d00001 diff --git a/mods/dreambuilder_theme_light/textures/dbtheme_light_ui_single_slot_bright.png b/mods/dreambuilder_theme_light/textures/dbtheme_light_ui_single_slot_bright.png new file mode 100644 index 0000000000000000000000000000000000000000..8806fa29aed4664d4c75ad5d96502c361c05aab6 GIT binary patch literal 1054 zcmV+(1mXLMP)Y}j6o#MsHQ(;w+I15v2&#}Kp-8AiC{k5~S^*2#utWR^r2YfMFJQ?ZV28v8u|)(B zQY%4Mg+vf_(?%sE1=mi-_I$CJah(LpCgXN9XLe(c&U4Q_=U(Z31=BES3=RP{8bh@a zlQ3eykeGyc@>(BB?-J0WLx;22SjY;~XN(!~kX?4!X8;ofQU1Zj;T+4Xut=8>8+GK@ z(?$-YjOek$Hk)kmCqtqsfJ=h~)>vnSHVz7bsJH?-IVnT-*yJWZagRPxu>}T)1+H?P zB^oGH%f9HewIiw^5NHfZ{&%uD{B4B6qe&Z=AGk|GtTDKpV~y*q;v+lmy1!sTyh@rt zBG3pR)mNN9;_nWAjtE%=A_krTIbd>f zBS`ej(@z?*81m^k@pyOCOv^vLfRE;pCtGCpA^vqzKGUcHYJeJ`2B-mQfEu6%r~zt# z8lVQK0cwD!4j}#yKt9U~OeEFWCzSsUU@#QQ=4{g!I+Qp8kc0hH1e!vybg>>Uwa}6w z%X0Y?%5Pz?@gVPI1%o7JOiJEQX5EB^ChFiJ$&#&{l!R20Fk(dh%P=d4M9wU|hl580 z*cg&CWCz%3IAUv86A1%)?6X6U0nthGx~)z3cBE5-xN6 z;d{YA*y*3J|Tf9kvCUBXhmlJqU5XV$d1 zaI?)_H>>TKH}lNj=}#)p37x%j=KbNP^Quoy09rx_6qJ4Oo~h5B8qgNGu6k->q|V=a zbISKBd)a62oLF5sLA`R?bjhoG=B2Ag@0^<*`RePQ|8M!~?ZS)g*B4FjJp9^V{pPt} z*I0;ed0u2@bgKPW`~UY=Cmz>C>q)svPuo0myDs1V`CF%3OG>$4R{!6u+-#q0mr?VqymrpaTkGA+NOi*>Hoy|i3a^VW26=CQAD$_yIHciz-* zyL^Q8f!opZ56hTmq-;Jj+yAfhfx2y4?icbH_D^U1ywbkG`{uh02LIEOe)=5UxzlLH z9=`uN`at=6dI^&}Ne3c%AG}a|`(oRhE%Cw!cvwHo_q{bS_h#mPwT4Kmi*kSK z-TyxYaOwI2aglaF{+gPGtHJxRL2Y;zev;J1~(GhUV^N zI2O6~7xO#bHCKCB19lso*?emIPlLy&>>tGamwLY8(}}p0jIzs|35K_)<`7uX?CjKgZCcPQAG2Re@^x=Vgx{-#^P=$h>0P<^xOboYIiDvij3(b1M94ljYT!2Wr+m ztBWhm@h_Nh{pPu|6F{uctN0B<-EB$Ps`S&uDotM`xqpn uOi1kJZ=Sw6rY&{jm)iTx327+{D$niEDC!jQ{`t z&$lhA1WGZM1o;L3lX}cv3*^Lkx;TbZ+*)&yk*mRg$NA#XZ~xM#`Tmed5KLh_@GWpv zX~t~B;8n3xc23!87m>bW@BI&3PaV^gUv^PHaxI?o~9unN)FF7Y>SAkdKEH`2C z#S1s?>;J+&ZMx8{!+AwohH7zSeE&N#QcwU-g`&7Jy4ux`*GJ%%_TegFC3pE zbuW#1o2}iH-)kPewPeay{e0iuzlnd`W|ek(``Yt`huv!`ZHqLgeLWDmZGZdk zR}=pid{BOH$-b0pcS+mfhXocgeC>mU`k}r<#q-kIxke{?1=<#7JXz{5^mIztG|Qvn zt2LItDVH$2x+2z~B=B#$g5buABW4_mEdovmV$bqVM{Z9Ivzce|SfqaPZ_^v`Cr&pP ztuFYXwc5n*)s~~}avM%oi!GKq^{UzXn1uAk0Aq`%J(=I{9dJ{@KSC^%wEWdDBxYH2se8-*BI$bJ&Bb6I1Do{0eia(9A!n&$rLk%bq9Ammpq$`#{krwso_NIn&Q-rkmeb z{cOI+?)3EaH}1~M%x6r`H@EvGQQi5}e)rtcd1qLbXZ$gc`*AIHf0^Qu`Ul+nHOT_~ SIac1Fbmi&l=d#Wzp$Pyd+A3rK literal 0 HcmV?d00001 diff --git a/mods/mesecons_luacontroller/textures/jeija_luac_runbutton.png b/mods/mesecons_luacontroller/textures/jeija_luac_runbutton.png new file mode 100644 index 0000000000000000000000000000000000000000..f43b571c42a45c133e8724176cbc9341350acc38 GIT binary patch literal 2150 zcmZwJc{JPE9suxEt7xNiXlc*%)tP5>(RQ>trj}NzR2NGJ)zT_awbfRH*q5p;6jeo( zVJt-?5@HJ?L_{r#Er?xW{n-hzWxQWr|9j`%^SSq)d%pMF{f`^-#7JNA*x6$c2t@MX z13eS4-UYLr_+hY2do`*BfrvbPVqgXXoA44>IM&rx$n7=O{WZ?r4(IU(RQk?d$kU>+tqwz0hx^sM_pgZvAbkiFiVUg+MFrPJhtz>$LhE9}>SM#|QQ;tR+h)f!8s2!%%jWpJeG&PJiQ^shGLM=_>E!1&(^F%9cvaMyZjXv2<=d`zSI=*u{ z+qjH&F0*5b**VqSIo-{e?qSaKcF(eUg!+5u`upYvSo7@udG^5k&;T$r2n@493nN1d zqr;11Ba36BOA}*DljF-E&crfja)rxTnc}QYaaX6OR%fQyW@pysX4mKE)`9sA&;kJB zEiUjD7kNvIo6Ac=E6ZCeD_g6p{Ixay`Z|AOeS2eLo5$PcZSHLGcel6qws-b+cJ_96 z_d$Dm`+NI>eStu5aBwiSei02mtV7-=My8OvGlTXJh-kw@JsmUT&>~akBt$_RqLM(W z`~_O0b$r{Leb%K*vOAIVKWSIAkF{V^9HMJwb(<>zSY-T&@BVbI?wZ@=spPZE1)b5x zC%=*Ftqq(LD{jbzntQGKOhs|FzmGZ$S7Iw%hbx8lYIbUa8*0)sQ}dScF06DoumZgt z0<>M#GLvztfTxTlpo-_XXMK%oP+Qklw?&std_mm^{&{|dMt0npHh1Qb2r6=S=V&dT z{g28TIu<9(lqf!Ed@AovyAu=d@B|F5X z4y;WI4%fYd%cmZ>6-k(Fol%Q%kT*Pn8mn%yQWi(*SzCcaYCv1^${8;!rQ*8V#V1y& zDg7qR4)I9Vy~m&NYBPs#<>K6Q@13i(gt zIXOz!FU^$?WBR^B83ik2n6!zTsf8I`=I4LSvgcRFaxu3<|GjqshT|&*Ei_j_r^|Jn-vI%E>V1Wkys@ni_Je8rK1qN zR7;OZjARJzjt+{7Tzc^$Ph`Ld-x~A_quwe>T<(pgxR#RezW+?1Z)6&GD|{NiQV)k7 zbc>C7m?Zeb868S*rpc|@PVI#_^G@kpO4^@kT5l#>q+4cZSI}IlZfJDe5>bT*z4#ff z-{qtnN{oM|XK9N^#oYMq+OIB=xJC(!lenWM&v)^<4EUu>C$pTdAYCVY#SINmtB_Wc za9RDh7%)`T%fU<>aY3M@20u3fLL)5N4!@)3piz590;I A_5c6? literal 0 HcmV?d00001 diff --git a/mods/pipeworks/compat-chests.lua b/mods/pipeworks/compat-chests.lua index b113d032..02cebdbf 100644 --- a/mods/pipeworks/compat-chests.lua +++ b/mods/pipeworks/compat-chests.lua @@ -15,11 +15,10 @@ local function get_chest_formspec(pos) local spos = pos.x .. "," .. pos.y .. "," .. pos.z local formspec = "size[8,9]" .. - "image[-0.12,4.73;10.03,4.95;default_standard_inventory_bg.png]".. - "image[-0.12,0.15;10.03,4.79;default_chest_upper_slots_bg.png]".. - "listcolors[#00000000;"..dreambuilder_theme.listcolor_slot_bg_hover..";#00000000;".. - dreambuilder_theme.tooltip_bgcolor..";".. - dreambuilder_theme.tooltip_fontcolor.."]".. + dreambuilder_theme.make_inv_img_grid_v1(0, 0.26, 8, 4, false).. + dreambuilder_theme.make_inv_img_grid_v1(0, 4.82, 8, 1, true).. + dreambuilder_theme.make_inv_img_grid_v1(0, 6.03, 8, 3, false).. + "listcolors[#00000000;"..dreambuilder_theme.listcolor_slot_bg_hover..";#00000000]".. default.gui_bg .. default.gui_bg_img .. default.gui_slots .. @@ -28,7 +27,7 @@ local function get_chest_formspec(pos) "list[current_player;main;0,6.08;8,3;8]" .. "listring[nodemeta:" .. spos .. ";main]" .. "listring[current_player;main]" .. - default.get_hotbar_bg(0,4.85) + "" -- Pipeworks Switch formspec = formspec .. diff --git a/mods/pipeworks/compat-furnaces.lua b/mods/pipeworks/compat-furnaces.lua index 5e05b30d..884748fa 100644 --- a/mods/pipeworks/compat-furnaces.lua +++ b/mods/pipeworks/compat-furnaces.lua @@ -12,12 +12,12 @@ local tube_entry = "^pipeworks_tube_connection_stony.png" local function active_formspec(fuel_percent, item_percent, pos, meta) local formspec = "size[8,8.5]".. - "image[-0.1,4.15;10.03,4.95;default_standard_inventory_bg.png]".. - "image[2.65,0.37;1.254,3.59;default_furnace_upper_middle_slots_bg.png]".. - "image[4.64,0.83;2.52,2.44;default_furnace_upper_right_slots_bg_2x2.png]".. - "listcolors[#00000000;"..dreambuilder_theme.listcolor_slot_bg_hover..";#00000000;".. - dreambuilder_theme.tooltip_bgcolor..";".. - dreambuilder_theme.tooltip_fontcolor.."]".. + dreambuilder_theme.single_slot_v1(2.75, 0.45, false).. + dreambuilder_theme.single_slot_v1(2.75, 2.45, false).. + dreambuilder_theme.make_inv_img_grid_v1(4.75, 0.92, 2, 2, false).. + dreambuilder_theme.make_inv_img_grid_v1(0, 4.22, 8, 1, true).. + dreambuilder_theme.make_inv_img_grid_v1(0, 5.45, 8, 3, false).. + "listcolors[#00000000;"..dreambuilder_theme.listcolor_slot_bg_hover..";#00000000]".. default.gui_bg.. default.gui_bg_img.. default.gui_slots.. @@ -36,7 +36,6 @@ local function active_formspec(fuel_percent, item_percent, pos, meta) "listring[current_player;main]".. "listring[current_name;fuel]".. "listring[current_player;main]".. - default.get_hotbar_bg(0, 4.25) .. fs_helpers.cycling_button( meta, "image_button[0,3.5;1,0.6", @@ -51,12 +50,12 @@ end local function inactive_formspec(pos, meta) local formspec = "size[8,8.5]".. - "image[-0.1,4.15;10.03,4.95;default_standard_inventory_bg.png]".. - "image[2.65,0.37;1.254,3.59;default_furnace_upper_middle_slots_bg.png]".. - "image[4.64,0.83;2.52,2.44;default_furnace_upper_right_slots_bg_2x2.png]".. - "listcolors[#00000000;"..dreambuilder_theme.listcolor_slot_bg_hover..";#00000000;".. - dreambuilder_theme.tooltip_bgcolor..";".. - dreambuilder_theme.tooltip_fontcolor.."]".. + dreambuilder_theme.single_slot_v1(2.75, 0.45, false).. + dreambuilder_theme.single_slot_v1(2.75, 2.45, false).. + dreambuilder_theme.make_inv_img_grid_v1(4.75, 0.92, 2, 2, false).. + dreambuilder_theme.make_inv_img_grid_v1(0, 4.22, 8, 1, true).. + dreambuilder_theme.make_inv_img_grid_v1(0, 5.45, 8, 3, false).. + "listcolors[#00000000;"..dreambuilder_theme.listcolor_slot_bg_hover..";#00000000]".. default.gui_bg.. default.gui_bg_img.. default.gui_slots.. @@ -73,7 +72,6 @@ local function inactive_formspec(pos, meta) "listring[current_player;main]".. "listring[current_name;fuel]".. "listring[current_player;main]".. - default.get_hotbar_bg(0, 4.25) .. fs_helpers.cycling_button( meta, "image_button[0,3.5;1,0.6", diff --git a/mods/pipeworks/mod.conf b/mods/pipeworks/mod.conf index cb6e6d67..91ec0ef9 100644 --- a/mods/pipeworks/mod.conf +++ b/mods/pipeworks/mod.conf @@ -1,5 +1,5 @@ name = pipeworks description = This mod uses mesh nodes and nodeboxes to supply a complete set of 3D pipes and tubes, along with devices that work with them. -depends = dreambuilder_gui_theming, default, basic_materials, screwdriver +depends = dreambuilder_theme_settings, default, basic_materials, screwdriver optional_depends = mesecons, mesecons_mvps, digilines, signs_lib min_minetest_version = 5.2.0 diff --git a/mods/streetspoles/depends.txt b/mods/streetspoles/depends.txt index e437ca24..421a27d2 100644 --- a/mods/streetspoles/depends.txt +++ b/mods/streetspoles/depends.txt @@ -1 +1 @@ -streetsmod +streetsmod \ No newline at end of file diff --git a/mods/technic/machines/HV/nuclear_reactor.lua b/mods/technic/machines/HV/nuclear_reactor.lua index 4d498403..25de726d 100644 --- a/mods/technic/machines/HV/nuclear_reactor.lua +++ b/mods/technic/machines/HV/nuclear_reactor.lua @@ -32,11 +32,10 @@ minetest.register_craft({ local function make_reactor_formspec(meta) local f = "size[8,9]".. - "listcolors[#00000000;"..dreambuilder_theme.listcolor_slot_bg_hover..";#00000000;".. - dreambuilder_theme.tooltip_bgcolor..";".. - dreambuilder_theme.tooltip_fontcolor.."]".. - "image[-0.1,4.93;10.03,4.65;technic_main_inventory.png]".. - "image[1.9,0.93;3.76,2.325;technic_reactor_upper_slots.png]".. + "listcolors[#00000000;"..dreambuilder_theme.listcolor_slot_bg_hover..";#00000000]".. + dreambuilder_theme.make_inv_img_grid_v1(0, 4.97, 8, 1, true).. + dreambuilder_theme.make_inv_img_grid_v1(0, 5.97, 8, 3, false).. + dreambuilder_theme.make_inv_img_grid_v1(2, 0.95, 3, 2, false).. "label[0,0;"..S("Nuclear Reactor Rod Compartment").."]".. "list[current_name;src;2,1;3,2;]".. "list[current_player;main;0,5;8,4;]".. diff --git a/mods/technic/machines/MV/tool_workshop.lua b/mods/technic/machines/MV/tool_workshop.lua index 13686650..89b7de62 100644 --- a/mods/technic/machines/MV/tool_workshop.lua +++ b/mods/technic/machines/MV/tool_workshop.lua @@ -20,12 +20,11 @@ local workshop_demand = {5000, 3500, 2000} local workshop_formspec = "size[8,9;]".. - "listcolors[#00000000;"..dreambuilder_theme.listcolor_slot_bg_hover..";#00000000;".. - dreambuilder_theme.tooltip_bgcolor..";".. - dreambuilder_theme.tooltip_fontcolor.."]".. - "image[-0.1,4.93;10.03,4.65;technic_main_inventory.png]".. - "image[2.9,0.93;1.254,1.163;default_single_slot.png]".. - "image[0.91,2.93;2.508,1.163;technic_base_machine_upgrade_slots_bg.png]".. + "listcolors[#00000000;"..dreambuilder_theme.listcolor_slot_bg_hover..";#00000000]".. + dreambuilder_theme.make_inv_img_grid_v1(1, 2.95, 2, 1, false).. + dreambuilder_theme.make_inv_img_grid_v1(0, 4.97, 8, 1, true).. + dreambuilder_theme.make_inv_img_grid_v1(0, 5.97, 8, 3, false).. + dreambuilder_theme.single_slot_v1(3, 0.95, false).. "list[current_name;src;3,1;1,1;]".. "label[0,0;"..S("%s Tool Workshop"):format("MV").."]".. "list[current_name;upgrade1;1,3;1,1;]".. diff --git a/mods/technic/machines/other/coal_alloy_furnace.lua b/mods/technic/machines/other/coal_alloy_furnace.lua index d7c82585..b81c46fd 100644 --- a/mods/technic/machines/other/coal_alloy_furnace.lua +++ b/mods/technic/machines/other/coal_alloy_furnace.lua @@ -15,11 +15,12 @@ minetest.register_craft({ local machine_name = S("Fuel-Fired Alloy Furnace") local formspec = "size[8,9]".. - "listcolors[#00000000;"..dreambuilder_theme.listcolor_slot_bg_hover..";#00000000;".. - dreambuilder_theme.tooltip_bgcolor..";".. - dreambuilder_theme.tooltip_fontcolor.."]".. - "image[-0.1,4.93;10.03,4.65;technic_main_inventory.png]".. - "image[1.9,0.93;6.27,3.49;technic_coal_alloy_furnace_upper_slots.png]".. + "listcolors[#00000000;"..dreambuilder_theme.listcolor_slot_bg_hover..";#00000000]".. + dreambuilder_theme.make_inv_img_grid_v1(2, 0.95, 2, 1, false).. + dreambuilder_theme.single_slot_v1(2, 2.95, false).. + dreambuilder_theme.make_inv_img_grid_v1(5, 0.95, 2, 2, false).. + dreambuilder_theme.make_inv_img_grid_v1(0, 4.97, 8, 1, true).. + dreambuilder_theme.make_inv_img_grid_v1(0, 5.97, 8, 3, false).. "label[0,0;"..machine_name.."]".. "image[2,2;1,1;default_furnace_fire_bg.png]".. "list[current_name;fuel;2,3;1,1;]".. @@ -129,11 +130,12 @@ minetest.register_abm({ technic.swap_node(pos, "technic:coal_alloy_furnace_active") meta:set_string("formspec", "size[8,9]".. - "listcolors[#00000000;"..dreambuilder_theme.listcolor_slot_bg_hover..";#00000000;".. - dreambuilder_theme.tooltip_bgcolor..";".. - dreambuilder_theme.tooltip_fontcolor.."]".. - "image[-0.1,4.93;10.03,4.65;technic_main_inventory.png]".. - "image[1.9,0.93;6.27,3.49;technic_coal_alloy_furnace_upper_slots.png]".. + "listcolors[#00000000;"..dreambuilder_theme.listcolor_slot_bg_hover..";#00000000]".. + dreambuilder_theme.make_inv_img_grid_v1(2, 0.95, 2, 1, false).. + dreambuilder_theme.single_slot_v1(2, 2.95, false).. + dreambuilder_theme.make_inv_img_grid_v1(5, 0.95, 2, 2, false).. + dreambuilder_theme.make_inv_img_grid_v1(0, 4.97, 8, 1, true).. + dreambuilder_theme.make_inv_img_grid_v1(0, 5.97, 8, 3, false).. "label[0,0;"..machine_name.."]".. "image[2,2;1,1;default_furnace_fire_bg.png^[lowpart:".. (100 - percent)..":default_furnace_fire_fg.png]".. diff --git a/mods/technic/machines/other/constructor.lua b/mods/technic/machines/other/constructor.lua index 5f2ff149..1d97bce0 100644 --- a/mods/technic/machines/other/constructor.lua +++ b/mods/technic/machines/other/constructor.lua @@ -146,16 +146,15 @@ local function make_constructor(mark, length) on_construct = function(pos) local meta = minetest.get_meta(pos) local formspec = "size[8,9;]".. - "listcolors[#00000000;"..dreambuilder_theme.listcolor_slot_bg_hover..";#00000000;".. - dreambuilder_theme.tooltip_bgcolor..";".. - dreambuilder_theme.tooltip_fontcolor.."]".. - "image[-0.1,4.93;10.03,4.65;technic_main_inventory.png]".. + "listcolors[#00000000;"..dreambuilder_theme.listcolor_slot_bg_hover..";#00000000]".. + dreambuilder_theme.make_inv_img_grid_v1(0, 4.97, 8, 1, true).. + dreambuilder_theme.make_inv_img_grid_v1(0, 5.97, 8, 3, false).. "label[0,0;"..S("Constructor Mk%d"):format(mark).."]".. "list[current_player;main;0,5;8,4;]" for i = 1, length do formspec = formspec .."label[5,"..(i - 1)..";"..S("Slot %d"):format(i).."]" - .."image[5.89,"..(i*0.998-1.07)..";1.254,1.163;default_single_slot.png]" + ..dreambuilder_theme.single_slot_v1(6, i-1.05, false) .."list[current_name;slot"..i ..";6,"..(i - 1)..";1,1;]" end diff --git a/mods/technic/machines/other/injector.lua b/mods/technic/machines/other/injector.lua index b0bf6443..47adde5f 100644 --- a/mods/technic/machines/other/injector.lua +++ b/mods/technic/machines/other/injector.lua @@ -56,11 +56,10 @@ local function set_injector_formspec(meta) local is_stack = meta:get_string("mode") == "whole stacks" meta:set_string("formspec", "size[8,9;]".. - "listcolors[#00000000;"..dreambuilder_theme.listcolor_slot_bg_hover..";#00000000;".. - dreambuilder_theme.tooltip_bgcolor..";".. - dreambuilder_theme.tooltip_fontcolor.."]".. - "image[-0.1,4.93;10.03,4.65;technic_main_inventory.png]".. - "image[-0.1,1.92;10.03,2.375;technic_injector_upper_slots.png]".. + "listcolors[#00000000;"..dreambuilder_theme.listcolor_slot_bg_hover..";#00000000]".. + dreambuilder_theme.make_inv_img_grid_v1(0, 1.95, 8, 2, false).. + dreambuilder_theme.make_inv_img_grid_v1(0, 4.97, 8, 1, true).. + dreambuilder_theme.make_inv_img_grid_v1(0, 5.97, 8, 3, false).. "item_image[0,0;1,1;technic:injector]".. "label[1,0;"..S("Self-Contained Injector").."]".. (is_stack and diff --git a/mods/technic/machines/register/battery_box.lua b/mods/technic/machines/register/battery_box.lua index 633142d9..ce051f28 100644 --- a/mods/technic/machines/register/battery_box.lua +++ b/mods/technic/machines/register/battery_box.lua @@ -162,11 +162,12 @@ function technic.register_battery_box(data) local formspec = "size[8,9]".. - "listcolors[#00000000;"..dreambuilder_theme.listcolor_slot_bg_hover..";#00000000;".. - dreambuilder_theme.tooltip_bgcolor..";".. - dreambuilder_theme.tooltip_fontcolor.."]".. - "image[-0.1,4.93;10.03,4.65;technic_main_inventory.png]".. - "image[2.9,0.93;3.762,3.488;technic_battery_box_upper_slots.png]".. + "listcolors[#00000000;"..dreambuilder_theme.listcolor_slot_bg_hover..";#00000000]".. + dreambuilder_theme.single_slot_v1(3, 0.95, false).. + dreambuilder_theme.single_slot_v1(5, 0.95, false).. + dreambuilder_theme.make_inv_img_grid_v1(3.5, 2.95, 2, 1, false).. + dreambuilder_theme.make_inv_img_grid_v1(0, 4.97, 8, 1, true).. + dreambuilder_theme.make_inv_img_grid_v1(0, 5.97, 8, 3, false).. "image[1,1;1,2;technic_power_meter_bg.png]".. "list[context;src;3,1;1,1;]".. "image[4,1;1,1;technic_battery_reload.png]".. diff --git a/mods/technic/machines/register/generator.lua b/mods/technic/machines/register/generator.lua index db6c82b8..0736a193 100644 --- a/mods/technic/machines/register/generator.lua +++ b/mods/technic/machines/register/generator.lua @@ -36,11 +36,10 @@ function technic.register_generator(data) local generator_formspec = "size[8,9;]".. - "listcolors[#00000000;"..dreambuilder_theme.listcolor_slot_bg_hover..";#00000000;".. - dreambuilder_theme.tooltip_bgcolor..";".. - dreambuilder_theme.tooltip_fontcolor.."]".. - "image[-0.1,4.93;10.03,4.65;technic_main_inventory.png]".. - "image[2.9,0.93;1.254,1.163;default_single_slot.png]".. + "listcolors[#00000000;"..dreambuilder_theme.listcolor_slot_bg_hover..";#00000000]".. + dreambuilder_theme.make_inv_img_grid_v1(0, 4.97, 8, 1, true).. + dreambuilder_theme.make_inv_img_grid_v1(0, 5.97, 8, 3, false).. + dreambuilder_theme.single_slot_v1(3, 0.95, false).. "label[0,0;"..S("Fuel-Fired %s Generator"):format(tier).."]".. "list[current_name;src;3,1;1,1;]".. "image[4,1;1,1;default_furnace_fire_bg.png]".. diff --git a/mods/technic/machines/register/machine_base.lua b/mods/technic/machines/register/machine_base.lua index 284c9119..00c6230c 100644 --- a/mods/technic/machines/register/machine_base.lua +++ b/mods/technic/machines/register/machine_base.lua @@ -51,11 +51,11 @@ function technic.register_base_machine(data) local formspec = "size[8,9;]".. - "listcolors[#00000000;"..dreambuilder_theme.listcolor_slot_bg_hover..";#00000000;".. - dreambuilder_theme.tooltip_bgcolor..";".. - dreambuilder_theme.tooltip_fontcolor.."]".. - "image[-0.1,4.93;10.03,4.65;technic_main_inventory.png]".. - "image[2.9,0.93;5.016,2.326;technic_base_machine_upper_bg.png]".. + "listcolors[#00000000;"..dreambuilder_theme.listcolor_slot_bg_hover..";#00000000]".. + dreambuilder_theme.single_slot_v1(3, 0.95, false).. + dreambuilder_theme.make_inv_img_grid_v1(5, 0.95, 2, 2, false).. + dreambuilder_theme.make_inv_img_grid_v1(0, 4.97, 8, 1, true).. + dreambuilder_theme.make_inv_img_grid_v1(0, 5.97, 8, 3, false).. "list[current_name;src;"..(4-input_size)..",1;"..input_size..",1;]".. "list[current_name;dst;5,1;2,2;]".. "list[current_player;main;0,5;8,4;]".. @@ -66,7 +66,7 @@ function technic.register_base_machine(data) "listring[current_player;main]" if data.upgrade then formspec = formspec.. - "image[0.91,2.93;2.508,1.163;technic_base_machine_upgrade_slots_bg.png]".. + dreambuilder_theme.make_inv_img_grid_v1(1, 2.95, 2, 1, false).. "list[current_name;upgrade1;1,3;1,1;]".. "list[current_name;upgrade2;2,3;1,1;]".. "label[1,4;"..S("Upgrade Slots").."]".. diff --git a/mods/technic/mod.conf b/mods/technic/mod.conf index 013060b7..d8c08b56 100644 --- a/mods/technic/mod.conf +++ b/mods/technic/mod.conf @@ -1,3 +1,3 @@ name = technic -depends = dreambuilder_gui_theming, default, pipeworks, technic_worldgen, basic_materials +depends = dreambuilder_theme_settings, default, pipeworks, technic_worldgen, basic_materials optional_depends = bucket, screwdriver, mesecons, mesecons_mvps, digilines, digiline_remote, intllib, unified_inventory, vector_extras, dye diff --git a/mods/technic_chests/mod.conf b/mods/technic_chests/mod.conf index 3cacca49..c0f0cc73 100644 --- a/mods/technic_chests/mod.conf +++ b/mods/technic_chests/mod.conf @@ -1,3 +1,3 @@ name = technic_chests -depends = dreambuilder_gui_theming, default, basic_materials +depends = dreambuilder_theme_settings, default, basic_materials optional_depends = moreblocks, moreores, pipeworks, intllib, tubelib diff --git a/mods/technic_chests/register.lua b/mods/technic_chests/register.lua index 6b93b1cf..4ea7ed94 100644 --- a/mods/technic_chests/register.lua +++ b/mods/technic_chests/register.lua @@ -225,14 +225,13 @@ function technic.chests:definition(name, data) local front = {"technic_"..lname.."_chest_front.png"} data.base_formspec = "size["..data.ovwidth..","..data.ovheight.."]".. "label[0,0;"..S("%s Chest"):format(name).."]".. - "listcolors[#00000000;"..dreambuilder_theme.listcolor_slot_bg_hover..";#00000000;".. - dreambuilder_theme.tooltip_bgcolor..";".. - dreambuilder_theme.tooltip_fontcolor.."]".. + "listcolors[#00000000;"..dreambuilder_theme.listcolor_slot_bg_hover..";#00000000]".. "list[context;main;"..data.hileft..",1;"..data.width..","..data.height..";]".. "list[current_player;main;"..data.loleft..","..data.lotop..";8,4;]".. - "background[-0.19,-0.25;"..(data.ovwidth+0.4)..","..(data.ovheight+0.75)..";technic_chest_form_bg.png]".. - "background["..data.hileft..",1;"..data.width..","..data.height..";technic_"..lname.."_chest_inventory.png]".. - "background["..data.loleft..","..data.lotop..";8,4;technic_main_inventory.png]".. + "background[0,0;1,1;"..dreambuilder_theme.name.."_technic_chest_form_bg.png;true]".. + dreambuilder_theme.make_inv_img_grid_v1(data.hileft, 0.95, data.width, data.height, false).. + dreambuilder_theme.make_inv_img_grid_v1(data.loleft, data.lotop-0.05, 8, 1, true).. + dreambuilder_theme.make_inv_img_grid_v1(data.loleft, data.lotop+0.95, 8, 3, false).. "listring[]" if data.sort then diff --git a/mods/technic_chests/textures/technic_chest_form_bg.png b/mods/technic_chests/textures/technic_chest_form_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..74a6a3bd142bb0e9366e79e6baf8c56b59d8d944 GIT binary patch literal 1656 zcmeAS@N?(olHy`uVBq!ia0y~yVC7|CV9sP=28smBGu;7FasfUet}ZSvUS3|Ip`r2d z@mX0}rKP0}4GrDh-BYJdU9eyQgO-prP$gGMkYDgkIOx#1lM6KPzo(01NX4zUm%JI9 zfLsHm4#5ruH-#pNMvf$wKAEL!|MY&~%aaWA5il2<&v@xsyKT$f=k4qHHeGAib+NtP z-p@AaTe~UC-S6$&xr)xUs~(9t-#(ow$mWRi2Lb+r&NeLk9|g$dkgpTP>QQ4*f&+y! z8a61wfx;OL8YxW8TWi41=>hn1Y!ge|r?idoe+9It)a m(7xg6Lx#*`L&rNmSZ{kMAKoLtTmY;f7(8A5T-G@yGywn_4OyZ9 literal 0 HcmV?d00001 diff --git a/mods/technic_chests/textures/technic_copper_chest_inventory.png b/mods/technic_chests/textures/technic_copper_chest_inventory.png new file mode 100644 index 0000000000000000000000000000000000000000..2f4cb12524b63e4630907a1921d595138ac33cdb GIT binary patch literal 3394 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 literal 0 HcmV?d00001 diff --git a/mods/technic_chests/textures/technic_iron_chest_inventory.png b/mods/technic_chests/textures/technic_iron_chest_inventory.png new file mode 100644 index 0000000000000000000000000000000000000000..10837958bf102f9957b44b6bdd32872cfd0bc6c0 GIT binary patch literal 3139 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 literal 0 HcmV?d00001 diff --git a/mods/technic_chests/textures/technic_mithril_chest_inventory.png b/mods/technic_chests/textures/technic_mithril_chest_inventory.png new file mode 100644 index 0000000000000000000000000000000000000000..a549cbb86e13b7011b8b865433af5b87d5db180f GIT binary patch literal 4118 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 literal 0 HcmV?d00001 diff --git a/mods/technic_chests/textures/technic_silver_chest_inventory.png b/mods/technic_chests/textures/technic_silver_chest_inventory.png new file mode 100644 index 0000000000000000000000000000000000000000..b273cae3e8aa72240813f43fac393643177c0f47 GIT binary patch literal 3908 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 SHsGI)h>^bOnW9ryg8vJO>BnLK literal 0 HcmV?d00001 diff --git a/mods/technic_chests/textures/technic_wooden_chest_inventory.png b/mods/technic_chests/textures/technic_wooden_chest_inventory.png new file mode 100644 index 0000000000000000000000000000000000000000..2fdc53cd1e23114a34188b4cb7fb228b80abac26 GIT binary patch literal 1769 zcmb`HX;4#F6vtnp7MCJg>(pw;xG_w1RHQDW64Z_X8A1>R*(5BZs1phWF$;u%>?Gir zvV;IJ><+SoMS*C7K_gaah?WXyR8nk7GiX^-l7?(O2~O*W`bqDHb{6U=$SUpw)j?Tk(zsLaev=prX4CpR~j$z-xvth~Iu{QP`i z2FKWJ_FT(gS8;JMhr=l;DFG`=OH0ek%XvH=pU;QsfQMC8Rdb_(nZk4$8ylONnxHl4 zsI#*ZngW+ZA`$p-=gyrtkEEaArC}r-BOFIiu+V7qy!rDNEcnE>?Ck6oTGyf__V!Dc zIxJfb>r2eK^&6bN-n@B-%YH1@^F%1va*mM!#QAJMvx0H2)PuC3{idk5Pxe?nJ~cfv zGo#b#^m_g5f6HJn7>!1FHBDw%=^K5XBgj0p=ix(s)Mu}s-%SfVw9NfiCN|Ec^*coe z46x_$@6AYKtubshzpFoClhYu8FPBJDY5Y*bQU-65I8lG~j8D3Z z{Ze$q+!swB?RacIxtacoOIfRMeufVwYiqPrdtz{ma0O;Zg(Pa_Z`=ROA5uDwjqx&^ zpP>svPjU?_jn|POjV+G>kAFhNTT{TCFi{P`6;P2RIzKh z$i*TQ@2^84sS&Gs`4`UlF?EK%{ZAbG_o~Xz_cPpL5AZwra>a-|(V(Z(Y(b|^Lo?__ z@=~V7A@vJnJ3>T62o*JnRxXe%`M?9MMn7#6-9DkxXstT*ggFAa>W%e8FSUW~1ppKM zCBtpxh3(>ZTM+hAuJW>?t$PQ_V)wyR*3J~5GrSzn2%zf72tN5*6Nla^xb*QITU-~_89MczYsOeTCP@L SF^}Q%gLvWyhnv3*Px}W9hj>>2 literal 0 HcmV?d00001 diff --git a/mods/technic_cnc/cnc.lua b/mods/technic_cnc/cnc.lua index a58bbca8..8f0c7c43 100644 --- a/mods/technic_cnc/cnc.lua +++ b/mods/technic_cnc/cnc.lua @@ -100,11 +100,11 @@ local twosize_products = { local cnc_formspec = "size[9,11;]".. - "listcolors[#00000000;"..dreambuilder_theme.listcolor_slot_bg_hover..";#00000000;".. - dreambuilder_theme.tooltip_bgcolor..";".. - dreambuilder_theme.tooltip_fontcolor.."]".. - "image[-0.1,6.92;10.03,4.65;technic_main_inventory.png]".. - "image[-0.1,5.42;11.28,1.163;technic_cnc_upper_slots.png]".. + "listcolors[#00000000;"..dreambuilder_theme.listcolor_slot_bg_hover..";#00000000]".. + dreambuilder_theme.single_slot_v1(0.5, 5.45, false).. + dreambuilder_theme.make_inv_img_grid_v1(5, 5.45, 4, 1, false).. + dreambuilder_theme.make_inv_img_grid_v1(0, 6.95, 8, 1, true).. + dreambuilder_theme.make_inv_img_grid_v1(0, 7.95, 8, 3, false).. "label[1,0;"..S("Choose Milling Program:").."]".. "image_button[1,0.5;1,1;technic_cnc_slope.png;slope; ]".. "image_button[2,0.5;1,1;technic_cnc_slope_edge.png;slope_edge; ]".. diff --git a/mods/ufos/furnace.lua b/mods/ufos/furnace.lua index 21efff4e..366f23f3 100644 --- a/mods/ufos/furnace.lua +++ b/mods/ufos/furnace.lua @@ -4,7 +4,10 @@ ufos.fuel_time = 10 ufos.furnace_inactive_formspec = "size[8,5.5]".. - "image[3.4,-0.1;1.254,1.163;default_single_slot.png]".. + "listcolors[#00000000;"..dreambuilder_theme.listcolor_slot_bg_hover..";#00000000]".. + dreambuilder_theme.make_inv_img_grid_v1(0, 1.42, 8, 1, true).. + dreambuilder_theme.make_inv_img_grid_v1(0, 2.58, 8, 3, false).. + dreambuilder_theme.single_slot_v1(3.4, 0, false).. "list[current_name;fuel;3.5,0;1,1;]".. "list[current_player;main;0,1.5;8,4;]".. "label[4.5,0;Fuel needed: "..ufos.fuel.."]".. @@ -21,14 +24,14 @@ minetest.register_node("ufos:furnace", { legacy_facedir_simple = true, sounds = default.node_sound_stone_defaults(), on_construct = function(pos) - local meta = minetest.get_meta(pos) + local meta = minetest.env:get_meta(pos) meta:set_string("formspec", ufos.furnace_inactive_formspec) meta:set_string("infotext", "UFO charging device") local inv = meta:get_inventory() inv:set_size("fuel", 1) end, can_dig = function(pos,player) - local meta = minetest.get_meta(pos); + local meta = minetest.env:get_meta(pos); local inv = meta:get_inventory() if not inv:is_empty("fuel") then return false @@ -48,14 +51,14 @@ minetest.register_node("ufos:furnace_active", { legacy_facedir_simple = true, sounds = default.node_sound_stone_defaults(), on_construct = function(pos) - local meta = minetest.get_meta(pos) + local meta = minetest.env:get_meta(pos) meta:set_string("formspec", ufos.furnace_inactive_formspec) meta:set_string("infotext", "UFO charging device") local inv = meta:get_inventory() inv:set_size("fuel", 1) end, can_dig = function(pos,player) - local meta = minetest.get_meta(pos); + local meta = minetest.env:get_meta(pos); local inv = meta:get_inventory() if not inv:is_empty("fuel") then return false @@ -65,16 +68,16 @@ minetest.register_node("ufos:furnace_active", { }) function hacky_swap_node(pos,name) - local node = minetest.get_node(pos) - local meta = minetest.get_meta(pos) + local node = minetest.env:get_node(pos) + local meta = minetest.env:get_meta(pos) local meta0 = meta:to_table() if node.name == name then return end node.name = name local meta0 = meta:to_table() - minetest.set_node(pos,node) - meta = minetest.get_meta(pos) + minetest.env:set_node(pos,node) + meta = minetest.env:get_meta(pos) meta:from_table(meta0) end @@ -83,7 +86,7 @@ minetest.register_abm({ interval = .25, chance = 1, action = function(pos, node, active_object_count, active_object_count_wider) - local meta = minetest.get_meta(pos) + local meta = minetest.env:get_meta(pos) local inv = meta:get_inventory() local stack = inv:get_stack("fuel",1) if stack:get_name() == ufos.fuel then diff --git a/mods/ufos/init.lua b/mods/ufos/init.lua index 40fd2410..cb68e654 100644 --- a/mods/ufos/init.lua +++ b/mods/ufos/init.lua @@ -1,8 +1,6 @@ ufos = {} -local e - local floor_pos = function(pos) return {x=math.floor(pos.x),y=math.floor(pos.y),z=math.floor(pos.z)} end @@ -48,7 +46,7 @@ ufos.ufo_from_item = function(itemstack,placer,pointed_thing) local wear = itemstack:get_wear() ufos.set_fuel(ufos.ufo,ufos.fuel_from_wear(wear)) -- add the entity - e = minetest.add_entity(pointed_thing.above, "ufos:ufo") + e = minetest.env:add_entity(pointed_thing.above, "ufos:ufo") -- remove the item itemstack:take_item() -- reset owner for next ufo @@ -164,8 +162,8 @@ function ufos.ufo:on_step (dtime) local t = {{x=2,z=0},{x=-2,z=0},{x=0,z=2},{x=0,z=-2}} for _, i in ipairs(t) do pos.x = pos.x + i.x; pos.z = pos.z + i.z; - if minetest.get_node(pos).name == "ufos:furnace" then - meta = minetest.get_meta(pos) + if minetest.env:get_node(pos).name == "ufos:furnace" then + meta = minetest.env:get_meta(pos) if fuel < 100 and meta:get_int("charge") > 0 then fuel = fuel + 1 meta:set_int("charge",meta:get_int("charge")-1) @@ -237,16 +235,16 @@ minetest.register_node("ufos:box", { tiles = {"ufos_box.png"}, groups = {not_in_creative_inventory=1}, on_rightclick = function(pos, node, clicker, itemstack) - meta = minetest.get_meta(pos) + meta = minetest.env:get_meta(pos) if meta:get_string("owner") == clicker:get_player_name() then -- set owner ufos.next_owner = meta:get_string("owner") -- restore the fuel inside the node ufos.set_fuel(ufos.ufo,meta:get_int("fuel")) -- add the entity - e = minetest.add_entity(pos, "ufos:ufo") + e = minetest.env:add_entity(pos, "ufos:ufo") -- remove the node - minetest.remove_node(pos) + minetest.env:remove_node(pos) -- reset owner for next ufo ufos.next_owner = "" end diff --git a/mods/ufos/mod.conf b/mods/ufos/mod.conf new file mode 100644 index 00000000..1a2906fb --- /dev/null +++ b/mods/ufos/mod.conf @@ -0,0 +1 @@ +dreambuilder_theme_settings diff --git a/mods/unified_inventory/README.md b/mods/unified_inventory/README.md index 8c917ec4..d159c025 100644 --- a/mods/unified_inventory/README.md +++ b/mods/unified_inventory/README.md @@ -24,7 +24,7 @@ Unified Inventory replaces the default survival and creative inventory. ## Requirements - * Minetest 5.0.0+ + * Minetest 5.4.0+ # Licenses @@ -96,4 +96,4 @@ Other files from Wikimedia Commons: RealBadAngel: (CC-BY-4.0) - * Everything else. \ No newline at end of file + * Everything else. diff --git a/mods/unified_inventory/api.lua b/mods/unified_inventory/api.lua index 81dd8f35..277d403e 100644 --- a/mods/unified_inventory/api.lua +++ b/mods/unified_inventory/api.lua @@ -1,5 +1,6 @@ local S = minetest.get_translator("unified_inventory") local F = minetest.formspec_escape +local ui = unified_inventory -- Create detached creative inventory after loading all mods minetest.after(0.01, function() @@ -8,12 +9,12 @@ minetest.after(0.01, function() if not rev_aliases[target] then rev_aliases[target] = {} end table.insert(rev_aliases[target], source) end - unified_inventory.items_list = {} + ui.items_list = {} for name, def in pairs(minetest.registered_items) do if (not def.groups.not_in_creative_inventory or def.groups.not_in_creative_inventory == 0) and def.description and def.description ~= "" then - table.insert(unified_inventory.items_list, name) + table.insert(ui.items_list, name) local all_names = rev_aliases[name] or {} table.insert(all_names, name) for _, player_name in ipairs(all_names) do @@ -26,30 +27,30 @@ minetest.after(0.01, function() for _,chk in pairs(recipe.items) do local groupchk = string.find(chk, "group:") if (not groupchk and not minetest.registered_items[chk]) - or (groupchk and not unified_inventory.get_group_item(string.gsub(chk, "group:", "")).item) + or (groupchk and not ui.get_group_item(string.gsub(chk, "group:", "")).item) or minetest.get_item_group(chk, "not_in_craft_guide") ~= 0 then unknowns = true end end if not unknowns then - unified_inventory.register_craft(recipe) + ui.register_craft(recipe) end end end end end end - table.sort(unified_inventory.items_list) - unified_inventory.items_list_size = #unified_inventory.items_list - print("Unified Inventory. inventory size: "..unified_inventory.items_list_size) - for _, name in ipairs(unified_inventory.items_list) do + table.sort(ui.items_list) + ui.items_list_size = #ui.items_list + print("Unified Inventory. inventory size: "..ui.items_list_size) + for _, name in ipairs(ui.items_list) do local def = minetest.registered_items[name] -- Simple drops if type(def.drop) == "string" then local dstack = ItemStack(def.drop) if not dstack:is_empty() and dstack:get_name() ~= name then - unified_inventory.register_craft({ + ui.register_craft({ type = "digging", items = {name}, output = def.drop, @@ -115,7 +116,7 @@ minetest.after(0.01, function() end end for itemstring, count in pairs(drop_guaranteed) do - unified_inventory.register_craft({ + ui.register_craft({ type = "digging", items = {name}, output = itemstring .. " " .. count, @@ -123,7 +124,7 @@ minetest.after(0.01, function() }) end for itemstring, count in pairs(drop_maybe) do - unified_inventory.register_craft({ + ui.register_craft({ type = "digging_chance", items = {name}, output = itemstring .. " " .. count, @@ -132,22 +133,22 @@ minetest.after(0.01, function() end end end - for _, recipes in pairs(unified_inventory.crafts_for.recipe) do + for _, recipes in pairs(ui.crafts_for.recipe) do for _, recipe in ipairs(recipes) do local ingredient_items = {} for _, spec in pairs(recipe.items) do - local matches_spec = unified_inventory.canonical_item_spec_matcher(spec) - for _, name in ipairs(unified_inventory.items_list) do + local matches_spec = ui.canonical_item_spec_matcher(spec) + for _, name in ipairs(ui.items_list) do if matches_spec(name) then ingredient_items[name] = true end end end for name, _ in pairs(ingredient_items) do - if unified_inventory.crafts_for.usage[name] == nil then - unified_inventory.crafts_for.usage[name] = {} + if ui.crafts_for.usage[name] == nil then + ui.crafts_for.usage[name] = {} end - table.insert(unified_inventory.crafts_for.usage[name], recipe) + table.insert(ui.crafts_for.usage[name], recipe) end end end @@ -156,9 +157,9 @@ end) -- load_home local function load_home() - local input = io.open(unified_inventory.home_filename, "r") + local input = io.open(ui.home_filename, "r") if not input then - unified_inventory.home_pos = {} + ui.home_pos = {} return end while true do @@ -167,25 +168,25 @@ local function load_home() local y = input:read("*n") local z = input:read("*n") local name = input:read("*l") - unified_inventory.home_pos[name:sub(2)] = {x = x, y = y, z = z} + ui.home_pos[name:sub(2)] = {x = x, y = y, z = z} end io.close(input) end load_home() -function unified_inventory.set_home(player, pos) +function ui.set_home(player, pos) local player_name = player:get_player_name() - unified_inventory.home_pos[player_name] = vector.round(pos) + ui.home_pos[player_name] = vector.round(pos) -- save the home data from the table to the file - local output = io.open(unified_inventory.home_filename, "w") - for k, v in pairs(unified_inventory.home_pos) do + local output = io.open(ui.home_filename, "w") + for k, v in pairs(ui.home_pos) do output:write(v.x.." "..v.y.." "..v.z.." "..k.."\n") end io.close(output) end -function unified_inventory.go_home(player) - local pos = unified_inventory.home_pos[player:get_player_name()] +function ui.go_home(player) + local pos = ui.home_pos[player:get_player_name()] if pos then player:set_pos(pos) return true @@ -194,7 +195,7 @@ function unified_inventory.go_home(player) end -- register_craft -function unified_inventory.register_craft(options) +function ui.register_craft(options) if not options.output then return end @@ -205,10 +206,10 @@ function unified_inventory.register_craft(options) if options.type == "normal" and options.width == 0 then options = { type = "shapeless", items = options.items, output = options.output, width = 0 } end - if not unified_inventory.crafts_for.recipe[itemstack:get_name()] then - unified_inventory.crafts_for.recipe[itemstack:get_name()] = {} + if not ui.crafts_for.recipe[itemstack:get_name()] then + ui.crafts_for.recipe[itemstack:get_name()] = {} end - table.insert(unified_inventory.crafts_for.recipe[itemstack:get_name()],options) + table.insert(ui.crafts_for.recipe[itemstack:get_name()],options) end @@ -219,7 +220,7 @@ local craft_type_defaults = { } -function unified_inventory.craft_type_defaults(name, options) +function ui.craft_type_defaults(name, options) if not options.description then options.description = name end @@ -228,13 +229,13 @@ function unified_inventory.craft_type_defaults(name, options) end -function unified_inventory.register_craft_type(name, options) - unified_inventory.registered_craft_types[name] = - unified_inventory.craft_type_defaults(name, options) +function ui.register_craft_type(name, options) + ui.registered_craft_types[name] = + ui.craft_type_defaults(name, options) end -unified_inventory.register_craft_type("normal", { +ui.register_craft_type("normal", { description = F(S("Crafting")), icon = "ui_craftgrid_icon.png", width = 3, @@ -250,7 +251,7 @@ unified_inventory.register_craft_type("normal", { }) -unified_inventory.register_craft_type("shapeless", { +ui.register_craft_type("shapeless", { description = F(S("Mixing")), icon = "ui_craftgrid_icon.png", width = 3, @@ -265,7 +266,7 @@ unified_inventory.register_craft_type("shapeless", { }) -unified_inventory.register_craft_type("cooking", { +ui.register_craft_type("cooking", { description = F(S("Cooking")), icon = "default_furnace_front.png", width = 1, @@ -273,37 +274,60 @@ unified_inventory.register_craft_type("cooking", { }) -unified_inventory.register_craft_type("digging", { +ui.register_craft_type("digging", { description = F(S("Digging")), icon = "default_tool_steelpick.png", width = 1, height = 1, }) -unified_inventory.register_craft_type("digging_chance", { +ui.register_craft_type("digging_chance", { description = "Digging (by chance)", icon = "default_tool_steelpick.png^[transformFY.png", width = 1, height = 1, }) -function unified_inventory.register_page(name, def) - unified_inventory.pages[name] = def +function ui.register_page(name, def) + ui.pages[name] = def end -function unified_inventory.register_button(name, def) +function ui.register_button(name, def) if not def.action then def.action = function(player) - unified_inventory.set_inventory_formspec(player, name) + ui.set_inventory_formspec(player, name) end end def.name = name - table.insert(unified_inventory.buttons, def) + table.insert(ui.buttons, def) end - -function unified_inventory.is_creative(playername) +function ui.is_creative(playername) return minetest.check_player_privs(playername, {creative=true}) or minetest.settings:get_bool("creative_mode") end + +function ui.single_slot(xpos, ypos, bright) + return string.format("background9[%f,%f;%f,%f;"..dreambuilder_theme.name.."_ui_single_slot%s.png;false;16]", + xpos, ypos, ui.imgscale, ui.imgscale, (bright and "_bright" or "") ) +end + +function ui.make_trash_slot(xpos, ypos) + return + ui.single_slot(xpos, ypos).. + "image["..xpos..","..ypos..";1.25,1.25;"..dreambuilder_theme.name.."_ui_trash_slot_icon.png^[opacity:95]".. + "list[detached:trash;main;"..(xpos + ui.list_img_offset)..","..(ypos + ui.list_img_offset)..";1,1;]" +end + +function ui.make_inv_img_grid(xpos, ypos, width, height, bright) + local tiled = {} + local n=1 + for y = 0, (height - 1) do + for x = 0, (width -1) do + tiled[n] = ui.single_slot(xpos + (ui.imgscale * x), ypos + (ui.imgscale * y), bright) + n = n + 1 + end + end + return table.concat(tiled) +end diff --git a/mods/unified_inventory/bags.lua b/mods/unified_inventory/bags.lua index cb3ee45c..f9993d55 100644 --- a/mods/unified_inventory/bags.lua +++ b/mods/unified_inventory/bags.lua @@ -7,30 +7,33 @@ License: GPLv3 local S = minetest.get_translator("unified_inventory") local F = minetest.formspec_escape -local bags_inv_bg_prefix = "image[-0.1,1.0;10.05," +local ui = unified_inventory -unified_inventory.register_page("bags", { +ui.register_page("bags", { get_formspec = function(player) local player_name = player:get_player_name() return { formspec = table.concat({ - string.gsub(unified_inventory.standard_inv_bg, "YYY", "4.4"), - bags_inv_bg_prefix.."1.175;ui_bags_header.png]", + ui.style_full.standard_inv_bg, + ui.single_slot(0.925, 1.5), + ui.single_slot(3.425, 1.5), + ui.single_slot(5.925, 1.5), + ui.single_slot(8.425, 1.5), "style_type[button;bgcolor="..dreambuilder_theme.btn_color.."]", - "label[0,0;" .. F(S("Bags")) .. "]", - "button[0,2.2;2,0.5;bag1;" .. F(S("Bag @1", 1)) .. "]", - "button[2,2.2;2,0.5;bag2;" .. F(S("Bag @1", 2)) .. "]", - "button[4,2.2;2,0.5;bag3;" .. F(S("Bag @1", 3)) .. "]", - "button[6,2.2;2,0.5;bag4;" .. F(S("Bag @1", 4)) .. "]", + "label["..ui.style_full.form_header_x..","..ui.style_full.form_header_y..";" .. F(S("Bags")) .. "]", + "button[0.6125,2.75;1.875,0.75;bag1;" .. F(S("Bag @1", 1)) .. "]", + "button[3.1125,2.75;1.875,0.75;bag2;" .. F(S("Bag @1", 2)) .. "]", + "button[5.6125,2.75;1.875,0.75;bag3;" .. F(S("Bag @1", 3)) .. "]", + "button[8.1125,2.75;1.875,0.75;bag4;" .. F(S("Bag @1", 4)) .. "]", "", - "list[detached:" .. F(player_name) .. "_bags;bag1;0.5,1.1;1,1;]", - "list[detached:" .. F(player_name) .. "_bags;bag2;2.5,1.1;1,1;]", - "list[detached:" .. F(player_name) .. "_bags;bag3;4.5,1.1;1,1;]", - "list[detached:" .. F(player_name) .. "_bags;bag4;6.5,1.1;1,1;]" + "list[detached:" .. F(player_name) .. "_bags;bag1;1.075,1.65;1,1;]", + "list[detached:" .. F(player_name) .. "_bags;bag2;3.575,1.65;1,1;]", + "list[detached:" .. F(player_name) .. "_bags;bag3;6.075,1.65;1,1;]", + "list[detached:" .. F(player_name) .. "_bags;bag4;8.575,1.65;1,1;]" }) } end, }) -unified_inventory.register_button("bags", { +ui.register_button("bags", { type = "image", image = "ui_bags_icon.png", tooltip = S("Bags"), @@ -45,33 +48,31 @@ local function get_player_bag_stack(player, i) end for bag_i = 1, 4 do - unified_inventory.register_page("bag" .. bag_i, { + ui.register_page("bag" .. bag_i, { get_formspec = function(player) local stack = get_player_bag_stack(player, bag_i) local image = stack:get_definition().inventory_image - local fs = { - string.gsub(unified_inventory.standard_inv_bg, "YYY", "4.4"), - "image[7,0;1,1;" .. image .. "]", - "label[0,0;" .. F(S("Bag @1", bag_i)) .. "]", - "", - "list[current_player;bag" .. bag_i .. "contents;0,1.1;8,3;]", - "listring[current_name;bag" .. bag_i .. "contents]", - "listring[current_player;main]", - } local slots = stack:get_definition().groups.bagslots - if slots == 8 then - fs[#fs + 1] = bags_inv_bg_prefix.."1.175;ui_bags_inv_small.png]" - elseif slots == 16 then - fs[#fs + 1] = bags_inv_bg_prefix.."2.35;ui_bags_inv_medium.png]" - elseif slots == 24 then - fs[#fs + 1] = bags_inv_bg_prefix.."3.525;ui_bags_inv_large.png]" - end + + local formspec = { + ui.style_full.standard_inv_bg, + ui.make_inv_img_grid(0.3, 1.5, 8, slots/8), + "image[9.2,0.4;1,1;" .. image .. "]", + "label[0.3,0.65;" .. F(S("Bag @1", bag_i)) .. "]", + "", + "listring[current_player;main]", + string.format("list[current_player;bag%icontents;%f,%f;8,3;]", + bag_i, 0.3 + ui.list_img_offset, 1.5 + ui.list_img_offset), + "listring[current_name;bag" .. bag_i .. "contents]", + } + local n = #formspec + 1 + local player_name = player:get_player_name() -- For if statement. - if unified_inventory.trash_enabled - or unified_inventory.is_creative(player_name) - or minetest.get_player_privs(player_name).give then - fs[#fs + 1] = "image[5.91,-0.06;1.21,1.15;ui_bags_trash.png]" - .. "list[detached:trash;main;6,0.1;1,1;]" + if ui.trash_enabled + or ui.is_creative(player_name) + or minetest.get_player_privs(player_name).give then + formspec[n] = ui.make_trash_slot(7.8, 0.25) + n = n + 1 end local inv = player:get_inventory() for i = 1, 4 do @@ -88,11 +89,12 @@ for bag_i = 1, 4 do end local img = def.inventory_image local label = F(S("Bag @1", i)) .. "\n" .. used .. "/" .. size - fs[#fs + 1] = string.format("image_button[%i,0;1,1;%s;bag%i;%s]", - i + 1, img, i, label) + formspec[n] = string.format("image_button[%f,0.4;1,1;%s;bag%i;%s]", + (i + 1.35)*1.25, img, i, label) + n = n + 1 end end - return { formspec = table.concat(fs) } + return { formspec = table.concat(formspec) } end, }) end @@ -107,7 +109,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if not stack:get_definition().groups.bagslots then return end - unified_inventory.set_inventory_formspec(player, "bag" .. i) + ui.set_inventory_formspec(player, "bag" .. i) return end end @@ -136,7 +138,7 @@ end local function load_bags_metadata(player, bags_inv) local player_inv = player:get_inventory() local meta = player:get_meta() - local bags_meta = meta:get_string("unified_inventory:bags") + local bags_meta = meta:get("unified_inventory:bags") local bags = bags_meta and minetest.deserialize(bags_meta) or {} local dirty_meta = false if not bags_meta then diff --git a/mods/unified_inventory/doc/mod_api.txt b/mods/unified_inventory/doc/mod_api.txt index c0be129b..0d100a08 100644 --- a/mods/unified_inventory/doc/mod_api.txt +++ b/mods/unified_inventory/doc/mod_api.txt @@ -3,6 +3,14 @@ unified_inventory API This file provides information about the API of unified_inventory. +API revisions within unified_inventory can be checked using: + + (unified_inventory.version or 1) + +**Revision history** + +* Version `1`: Classic formspec layout (no real_coordinates) +* Version `2`: Force formspec version 4 (includes real_coordinates) Misc functions -------------- diff --git a/mods/unified_inventory/init.lua b/mods/unified_inventory/init.lua index 7be101cd..614628f8 100644 --- a/mods/unified_inventory/init.lua +++ b/mods/unified_inventory/init.lua @@ -35,21 +35,101 @@ unified_inventory = { -- Trash enabled trash_enabled = (minetest.settings:get_bool("unified_inventory_trash") ~= false), + imgscale = 1.25, + list_img_offset = 0.13, + standard_background = "background9[0,0;1,1;"..dreambuilder_theme.name.."_ui_formbg_9_sliced.png;true;16]", + version = 2 +} +local ui = unified_inventory + +-- These tables establish position and layout for the two UI styles. +-- UI doesn't use formspec_[xy] anymore, but other mods may need them. + +ui.style_full = { + formspec_x = 1, + formspec_y = 1, pagecols = 8, pagerows = 10, - page_y = 0, - formspec_y = 1, - main_button_x = 0, - main_button_y = 9, - craft_result_x = 0.3, - craft_result_y = 0.5, - form_header_y = 0, - standard_background = "background[-0.2,-0.2;1,1;ui_form_bg.png;true]", -- the 'true' scales to fill, overrides the 1,1 - standard_inv = "list[current_player;main;0,YYY;8,4;]", -- the YYY's are placeholders which get - standard_inv_bg = "image[-0.1,YYY;10.05,4.70;ui_main_inventory.png]", -- replaced later by string.gsub() + page_x = 10.75, + page_y = 1.45, + craft_x = 2.8, + craft_y = 1.15, + craftresult_x = 7.8, + craft_arrow_x = 6.55, + craft_guide_x = 3.3, + craft_guide_y = 1.15, + craft_guide_arrow_x = 7.05, + craft_guide_result_x = 8.3, + craft_guide_resultstr_x = 0.3, + craft_guide_resultstr_y = 0.6, + give_btn_x = 0.25, + main_button_x = 0.4, + main_button_y = 11.0, + page_buttons_x = 11.60, + page_buttons_y = 10.15, + searchwidth = 3.4, + form_header_x = 0.4, + form_header_y = 0.4, + btn_spc = 0.85, + btn_size = 0.75, + std_inv_x = 0.3, + std_inv_y = 5.75, } +ui.style_lite = { + formspec_x = 0.6, + formspec_y = 0.6, + pagecols = 4, + pagerows = 6, + page_x = 10.5, + page_y = 1.25, + craft_x = 2.6, + craft_y = 0.75, + craftresult_x = 5.75, + craft_arrow_x = 6.35, + craft_guide_x = 3.1, + craft_guide_y = 0.75, + craft_guide_arrow_x = 7.05, + craft_guide_result_x = 8.3, + craft_guide_resultstr_x = 0.15, + craft_guide_resultstr_y = 0.35, + give_btn_x = 0.15, + main_button_x = 10.5, + main_button_y = 7.9, + page_buttons_x = 10.5, + page_buttons_y = 6.3, + searchwidth = 1.6, + form_header_x = 0.2, + form_header_y = 0.2, + btn_spc = 0.8, + btn_size = 0.7, + std_inv_x = 0.1, + std_inv_y = 4.6, +} + +dofile(modpath.."/api.lua") + +for _, style in ipairs({ui.style_full, ui.style_lite}) do + style.items_per_page = style.pagecols * style.pagerows + style.standard_inv = string.format("list[current_player;main;%f,%f;8,4;]", + style.std_inv_x + ui.list_img_offset, style.std_inv_y + ui.list_img_offset) + + style.standard_inv_bg = ui.make_inv_img_grid(style.std_inv_x, style.std_inv_y, 8, 1, true).. + ui.make_inv_img_grid(style.std_inv_x, style.std_inv_y + ui.imgscale, 8, 3) + + style.craft_grid = table.concat({ + ui.make_inv_img_grid(style.craft_x, style.craft_y, 3, 3), + ui.single_slot(style.craft_x + ui.imgscale*4, style.craft_y), -- the craft result slot + string.format("image[%f,%f;%f,%f;ui_crafting_arrow.png]", + style.craft_arrow_x, style.craft_y, ui.imgscale, ui.imgscale), + string.format("list[current_player;craft;%f,%f;3,3;]", + style.craft_x + ui.list_img_offset, style.craft_y + ui.list_img_offset), + string.format("list[current_player;craftpreview;%f,%f;1,1;]", + style.craftresult_x + ui.list_img_offset, style.craft_y + ui.list_img_offset) + }) +end + -- Disable default creative inventory local creative = rawget(_G, "creative") or rawget(_G, "creative_inventory") if creative then @@ -65,7 +145,6 @@ if sfinv then end dofile(modpath.."/group.lua") -dofile(modpath.."/api.lua") dofile(modpath.."/internal.lua") dofile(modpath.."/callbacks.lua") dofile(modpath.."/match_craft.lua") diff --git a/mods/unified_inventory/internal.lua b/mods/unified_inventory/internal.lua index 1308e464..6c033107 100644 --- a/mods/unified_inventory/internal.lua +++ b/mods/unified_inventory/internal.lua @@ -1,5 +1,6 @@ local S = minetest.get_translator("unified_inventory") local F = minetest.formspec_escape +local ui = unified_inventory -- This pair of encoding functions is used where variable text must go in -- button names, where the text might contain formspec metacharacters. @@ -9,87 +10,58 @@ local F = minetest.formspec_escape -- This is a game engine bug, and in the anticipation that it might be -- fixed some day we don't want to rely on it. So for safety we apply -- an encoding that avoids all formspec metacharacters. -function unified_inventory.mangle_for_formspec(str) + +function ui.mangle_for_formspec(str) return string.gsub(str, "([^A-Za-z0-9])", function (c) return string.format("_%d_", string.byte(c)) end) end -function unified_inventory.demangle_for_formspec(str) +function ui.demangle_for_formspec(str) return string.gsub(str, "_([0-9]+)_", function (v) return string.char(v) end) end -function unified_inventory.get_per_player_formspec(player_name) - local lite = unified_inventory.lite_mode and not minetest.check_player_privs(player_name, {ui_full=true}) - local ui = {} - ui.pagecols = unified_inventory.pagecols - ui.pagerows = unified_inventory.pagerows - ui.page_y = unified_inventory.page_y - ui.formspec_y = unified_inventory.formspec_y - ui.main_button_x = unified_inventory.main_button_x - ui.main_button_y = unified_inventory.main_button_y - ui.craft_result_x = unified_inventory.craft_result_x - ui.craft_result_y = unified_inventory.craft_result_y - ui.form_header_y = unified_inventory.form_header_y +function ui.get_per_player_formspec(player_name) + local draw_lite_mode = ui.lite_mode and not minetest.check_player_privs(player_name, {ui_full=true}) - if lite then - ui.pagecols = 4 - ui.pagerows = 6 - ui.page_y = 0.25 - ui.formspec_y = 0.47 - ui.main_button_x = 8.2 - ui.main_button_y = 6.5 - ui.craft_result_x = 2.8 - ui.craft_result_y = 3.4 - ui.form_header_y = -0.1 - end - - ui.items_per_page = ui.pagecols * ui.pagerows - return ui, lite + return table.copy(draw_lite_mode and ui.style_lite or ui.style_full), draw_lite_mode end -function unified_inventory.get_formspec(player, page) +function ui.get_formspec(player, page) if not player then return "" end local player_name = player:get_player_name() - local ui_peruser,draw_lite_mode = unified_inventory.get_per_player_formspec(player_name) + local ui_peruser,draw_lite_mode = ui.get_per_player_formspec(player_name) - unified_inventory.current_page[player_name] = page - local pagedef = unified_inventory.pages[page] + ui.current_page[player_name] = page + local pagedef = ui.pages[page] if not pagedef then return "" -- Invalid page name end local formspec = { - "size[14,10]", + "formspec_version[4]size[17.75,12.25]", pagedef.formspec_prepend and "" or "no_prepend[]", - unified_inventory.standard_background -- Background + ui.standard_background -- Background } - formspec[4]="style_type[image_button;bgcolor="..dreambuilder_theme.btn_color.."]" - formspec[5]= - "listcolors[#00000000;"..dreambuilder_theme.listcolor_slot_bg_hover..";#00000000;".. - dreambuilder_theme.tooltip_bgcolor..";".. - dreambuilder_theme.tooltip_fontcolor.."]".. - "" - local n = 6 + local n = 4 if draw_lite_mode then - formspec[1] = "size[11,7.7]" - formspec[3] = unified_inventory.standard_background + formspec[1] = "formspec_version[4]size[14,9.75]" + formspec[3] = ui.standard_background end - if unified_inventory.is_creative(player_name) - and page == "craft" then - formspec[n] = "background[0,"..(ui_peruser.formspec_y + 2)..";1,1;default_single_slot.png]" - n = n+1 - end - - local perplayer_formspec = unified_inventory.get_per_player_formspec(player_name) + local perplayer_formspec = ui.get_per_player_formspec(player_name) local fsdata = pagedef.get_formspec(player, perplayer_formspec) formspec[n] = fsdata.formspec + formspec[n+1]="style_type[image_button;bgcolor="..dreambuilder_theme.btn_color.."]" + formspec[n+2]= + "listcolors[#00000000;"..dreambuilder_theme.listcolor_slot_bg_hover..";#00000000]".. + "" + n = n + 2 n = n+1 local button_row = 0 @@ -99,7 +71,7 @@ function unified_inventory.get_formspec(player, page) local filtered_inv_buttons = {} - for i, def in pairs(unified_inventory.buttons) do + for i, def in pairs(ui.buttons) do if not (draw_lite_mode and def.hide_lite) then table.insert(filtered_inv_buttons, def) end @@ -114,21 +86,20 @@ function unified_inventory.get_formspec(player, page) if def.type == "image" then if (def.condition == nil or def.condition(player) == true) then - formspec[n] = "image_button[" - formspec[n+1] = ( ui_peruser.main_button_x + 0.65 * (i - 1) - button_col * 0.65 * 4) - formspec[n+2] = ","..(ui_peruser.main_button_y + button_row * 0.7)..";0.8,0.8;" - formspec[n+3] = F(def.image)..";" - formspec[n+4] = F(def.name)..";]" - formspec[n+5] = "tooltip["..F(def.name) - formspec[n+6] = ";"..(def.tooltip or "").."]" - n = n+7 + formspec[n] = string.format("image_button[%f,%f;%f,%f;%s;%s;]", + ui_peruser.main_button_x + ui_peruser.btn_spc * (i - 1) - button_col * ui_peruser.btn_spc * 4, + ui_peruser.main_button_y + button_row * ui_peruser.btn_spc, + ui_peruser.btn_size,ui_peruser.btn_size, + F(def.image), + F(def.name)) + formspec[n+1] = "tooltip["..F(def.name)..";"..(def.tooltip or "").."]" + n = n+2 else - formspec[n] = "image[" - formspec[n+1] = ( ui_peruser.main_button_x + 0.65 * (i - 1) - button_col * 0.65 * 4) - formspec[n+2] = ","..(ui_peruser.main_button_y + button_row * 0.7)..";0.8,0.8;" - formspec[n+3] = F(def.image).."^[colorize:#808080:alpha]" - n = n+4 - + formspec[n] = string.format("image[%f,%f;%f,%f;%s^[colorize:#808080:alpha]", + ui_peruser.main_button_x + ui_peruser.btn_spc * (i - 1) - button_col * ui_peruser.btn_spc * 4, + ui_peruser.main_button_y + button_row * ui_peruser.btn_spc, + ui_peruser.btn_size,ui_peruser.btn_size,def.image) + n = n+1 end end end @@ -136,7 +107,7 @@ function unified_inventory.get_formspec(player, page) if fsdata.draw_inventory ~= false then -- Player inventory formspec[n] = "" - formspec[n+1] = string.gsub(unified_inventory.standard_inv, "YYY", ui_peruser.formspec_y + 3.5) + formspec[n+1] = ui_peruser.standard_inv n = n+2 end @@ -144,71 +115,52 @@ function unified_inventory.get_formspec(player, page) return table.concat(formspec, "") end - -- Controls to flip items pages - local start_x = 9.2 - - if not draw_lite_mode then - formspec[n] = - "image_button[" .. (start_x + 0.6 * 0) - .. ",9;.8,.8;ui_skip_backward_icon.png;start_list;]" - .. "tooltip[start_list;" .. F(S("First page")) .. "]" - - .. "image_button[" .. (start_x + 0.6 * 1) - .. ",9;.8,.8;ui_doubleleft_icon.png;rewind3;]" - .. "tooltip[rewind3;" .. F(S("Back three pages")) .. "]" - .. "image_button[" .. (start_x + 0.6 * 2) - .. ",9;.8,.8;ui_left_icon.png;rewind1;]" - .. "tooltip[rewind1;" .. F(S("Back one page")) .. "]" - - .. "image_button[" .. (start_x + 0.6 * 3) - .. ",9;.8,.8;ui_right_icon.png;forward1;]" - .. "tooltip[forward1;" .. F(S("Forward one page")) .. "]" - .. "image_button[" .. (start_x + 0.6 * 4) - .. ",9;.8,.8;ui_doubleright_icon.png;forward3;]" - .. "tooltip[forward3;" .. F(S("Forward three pages")) .. "]" - - .. "image_button[" .. (start_x + 0.6 * 5) - .. ",9;.8,.8;ui_skip_forward_icon.png;end_list;]" - .. "tooltip[end_list;" .. F(S("Last page")) .. "]" - else - formspec[n] = - "image_button[" .. (8.2 + 0.65 * 0) - .. ",5.8;.8,.8;ui_skip_backward_icon.png;start_list;]" - .. "tooltip[start_list;" .. F(S("First page")) .. "]" - .. "image_button[" .. (8.2 + 0.65 * 1) - .. ",5.8;.8,.8;ui_left_icon.png;rewind1;]" - .. "tooltip[rewind1;" .. F(S("Back one page")) .. "]" - .. "image_button[" .. (8.2 + 0.65 * 2) - .. ",5.8;.8,.8;ui_right_icon.png;forward1;]" - .. "tooltip[forward1;" .. F(S("Forward one page")) .. "]" - .. "image_button[" .. (8.2 + 0.65 * 3) - .. ",5.8;.8,.8;ui_skip_forward_icon.png;end_list;]" - .. "tooltip[end_list;" .. F(S("Last page")) .. "]" - end - n = n+1 - -- Search box formspec[n] = "field_close_on_enter[searchbox;false]" - n = n+1 - if not draw_lite_mode then - formspec[n] = "field[9.5,8.325;3,1;searchbox;;" - .. F(unified_inventory.current_searchbox[player_name]) .. "]" - formspec[n+1] = "image_button[12.2,8.1;.8,.8;ui_search_icon.png;searchbutton;]" - .. "tooltip[searchbutton;" ..F(S("Search")) .. "]" - formspec[n+2] = "image_button[12.9,8.1;.8,.8;ui_reset_icon.png;searchresetbutton;]" - .. "tooltip[searchbutton;" ..F(S("Search")) .. "]" - .. "tooltip[searchresetbutton;" ..F(S("Reset search and display everything")) .. "]" - else - formspec[n] = "field[8.5,5.225;2.2,1;searchbox;;" - .. F(unified_inventory.current_searchbox[player_name]) .. "]" - formspec[n+1] = "image_button[10.3,5;.8,.8;ui_search_icon.png;searchbutton;]" - .. "tooltip[searchbutton;" ..F(S("Search")) .. "]" - formspec[n+2] = "image_button[11,5;.8,.8;ui_reset_icon.png;searchresetbutton;]" - .. "tooltip[searchbutton;" ..F(S("Search")) .. "]" - .. "tooltip[searchresetbutton;" ..F(S("Reset search and display everything")) .. "]" + formspec[n+1] = string.format("field[%f,%f;%f,%f;searchbox;;%s]", + ui_peruser.page_buttons_x, ui_peruser.page_buttons_y, + ui_peruser.searchwidth - 0.1, ui_peruser.btn_size, + F(ui.current_searchbox[player_name])) + formspec[n+2] = string.format("image_button[%f,%f;%f,%f;ui_search_icon.png;searchbutton;]", + ui_peruser.page_buttons_x + ui_peruser.searchwidth, ui_peruser.page_buttons_y, + ui_peruser.btn_size,ui_peruser.btn_size) + formspec[n+3] = "tooltip[searchbutton;" ..F(S("Search")) .. "]" + formspec[n+4] = string.format("image_button[%f,%f;%f,%f;ui_reset_icon.png;searchresetbutton;]", + ui_peruser.page_buttons_x + ui_peruser.searchwidth + ui_peruser.btn_spc, + ui_peruser.page_buttons_y, + ui_peruser.btn_size, ui_peruser.btn_size) + formspec[n+5] = "tooltip[searchresetbutton;"..F(S("Reset search and display everything")).."]" + + n = n + 6 + + -- Controls to flip items pages + + local btnlist = { + { "ui_skip_backward_icon.png", "start_list", S("First page") }, + { "ui_doubleleft_icon.png", "rewind3", S("Back three pages") }, + { "ui_left_icon.png", "rewind1", S("Back one page") }, + { "ui_right_icon.png", "forward1", S("Forward one page") }, + { "ui_doubleright_icon.png", "forward3", S("Forward three pages") }, + { "ui_skip_forward_icon.png", "end_list", S("Last page") }, + } + + if draw_lite_mode then + btnlist[5] = nil + btnlist[2] = nil + end + + local bn = 0 + for _, b in pairs(btnlist) do + formspec[n] = string.format("image_button[%f,%f;%f,%f;%s;%s;]", + ui_peruser.page_buttons_x + ui_peruser.btn_spc*bn, + ui_peruser.page_buttons_y + ui_peruser.btn_spc, + ui_peruser.btn_size, ui_peruser.btn_size, + b[1],b[2]) + formspec[n+1] = "tooltip["..b[2]..";"..F(b[3]).."]" + bn = bn + 1 + n = n + 2 end - n = n+3 local no_matches = S("No matching items") if draw_lite_mode then @@ -216,23 +168,23 @@ function unified_inventory.get_formspec(player, page) end -- Items list - if #unified_inventory.filtered_items_list[player_name] == 0 then - formspec[n] = "label[8.2,"..ui_peruser.form_header_y..";" .. F(no_matches) .. "]" + if #ui.filtered_items_list[player_name] == 0 then + formspec[n] = "label["..ui_peruser.page_x..","..(ui_peruser.page_y+0.15)..";" .. F(no_matches) .. "]" else - local dir = unified_inventory.active_search_direction[player_name] - local list_index = unified_inventory.current_index[player_name] + local dir = ui.active_search_direction[player_name] + local list_index = ui.current_index[player_name] local page2 = math.floor(list_index / (ui_peruser.items_per_page) + 1) local pagemax = math.floor( - (#unified_inventory.filtered_items_list[player_name] - 1) + (#ui.filtered_items_list[player_name] - 1) / (ui_peruser.items_per_page) + 1) for y = 0, ui_peruser.pagerows - 1 do for x = 0, ui_peruser.pagecols - 1 do - local name = unified_inventory.filtered_items_list[player_name][list_index] + local name = ui.filtered_items_list[player_name][list_index] local item = minetest.registered_items[name] if item then -- Clicked on current item: Flip crafting direction - if name == unified_inventory.current_item[player_name] then - local cdir = unified_inventory.current_craft_direction[player_name] + if name == ui.current_item[player_name] then + local cdir = ui.current_craft_direction[player_name] if cdir == "recipe" then dir = "usage" elseif cdir == "usage" then @@ -240,13 +192,15 @@ function unified_inventory.get_formspec(player, page) end else -- Default: use active search direction by default - dir = unified_inventory.active_search_direction[player_name] + dir = ui.active_search_direction[player_name] end local button_name = "item_button_" .. dir .. "_" - .. unified_inventory.mangle_for_formspec(name) - formspec[n] = ("item_image_button[%f,%f;.81,.81;%s;%s;]"):format( - 8.2 + x * 0.7, ui_peruser.formspec_y + ui_peruser.page_y + y * 0.7, + .. ui.mangle_for_formspec(name) + formspec[n] = ("item_image_button[%f,%f;%f,%f;%s;%s;]"):format( + ui_peruser.page_x + x * ui_peruser.btn_spc, + ui_peruser.page_y + y * ui_peruser.btn_spc, + ui_peruser.btn_size, ui_peruser.btn_size, name, button_name ) formspec[n + 1] = ("tooltip[%s;%s \\[%s\\]]"):format( @@ -258,26 +212,29 @@ function unified_inventory.get_formspec(player, page) end end end - formspec[n] = "label[8.2,"..ui_peruser.form_header_y..";"..F(S("Page")) .. ": " - .. S("@1 of @2",page2,pagemax).."]" + formspec[n] = string.format("label[%f,%f;%s: %s]", + ui_peruser.page_x, ui_peruser.form_header_y, + F(S("Page")), S("@1 of @2",page2,pagemax)) end n= n+1 - if unified_inventory.activefilter[player_name] ~= "" then - formspec[n] = "label[8.2,"..(ui_peruser.form_header_y + 0.4)..";" .. F(S("Filter")) .. ":]" - formspec[n+1] = "label[9.1,"..(ui_peruser.form_header_y + 0.4)..";"..F(unified_inventory.activefilter[player_name]).."]" + if ui.activefilter[player_name] ~= "" then + formspec[n] = string.format("label[%f,%f;%s:]", + ui_peruser.page_x, ui_peruser.page_y - 0.65, F(S("Filter"))) + formspec[n+1] = string.format("label[%f,%f;%s]", + ui_peruser.page_x, ui_peruser.page_y - 0.25, F(ui.activefilter[player_name])) end return table.concat(formspec, "") end -function unified_inventory.set_inventory_formspec(player, page) +function ui.set_inventory_formspec(player, page) if player then - player:set_inventory_formspec(unified_inventory.get_formspec(player, page)) + player:set_inventory_formspec(ui.get_formspec(player, page)) end end --apply filter to the inventory list (create filtered copy of full one) -function unified_inventory.apply_filter(player, filter, search_dir) +function ui.apply_filter(player, filter, search_dir) if not player then return false end @@ -306,26 +263,26 @@ function unified_inventory.apply_filter(player, filter, search_dir) or llocaldesc and string.find(llocaldesc, lfilter, 1, true) end end - unified_inventory.filtered_items_list[player_name]={} + ui.filtered_items_list[player_name]={} for name, def in pairs(minetest.registered_items) do if (not def.groups.not_in_creative_inventory or def.groups.not_in_creative_inventory == 0) and def.description and def.description ~= "" and ffilter(name, def) then - table.insert(unified_inventory.filtered_items_list[player_name], name) + table.insert(ui.filtered_items_list[player_name], name) end end - table.sort(unified_inventory.filtered_items_list[player_name]) - unified_inventory.filtered_items_list_size[player_name] = #unified_inventory.filtered_items_list[player_name] - unified_inventory.current_index[player_name] = 1 - unified_inventory.activefilter[player_name] = filter - unified_inventory.active_search_direction[player_name] = search_dir - unified_inventory.set_inventory_formspec(player, - unified_inventory.current_page[player_name]) + table.sort(ui.filtered_items_list[player_name]) + ui.filtered_items_list_size[player_name] = #ui.filtered_items_list[player_name] + ui.current_index[player_name] = 1 + ui.activefilter[player_name] = filter + ui.active_search_direction[player_name] = search_dir + ui.set_inventory_formspec(player, + ui.current_page[player_name]) end -function unified_inventory.items_in_group(groups) +function ui.items_in_group(groups) local items = {} for name, item in pairs(minetest.registered_items) do for _, group in pairs(groups:split(',')) do @@ -337,7 +294,7 @@ function unified_inventory.items_in_group(groups) return items end -function unified_inventory.sort_inventory(inv) +function ui.sort_inventory(inv) local inlist = inv:get_list("main") local typecnt = {} local typekeys = {} diff --git a/mods/unified_inventory/mod.conf b/mods/unified_inventory/mod.conf index 03a5f8e1..91e8cb35 100644 --- a/mods/unified_inventory/mod.conf +++ b/mods/unified_inventory/mod.conf @@ -1,7 +1,8 @@ name = unified_inventory -depends = dreambuilder_gui_theming, default +depends = dreambuilder_theme_settings, default optional_depends = creative, sfinv, datastorage, farming description = """ Unified Inventory replaces the default survival and creative inventory. It adds a nicer interface and a number of features, such as a crafting guide. """ +min_minetest_version = 5.4.0 diff --git a/mods/unified_inventory/register.lua b/mods/unified_inventory/register.lua index 89ca1ab3..52ccea03 100644 --- a/mods/unified_inventory/register.lua +++ b/mods/unified_inventory/register.lua @@ -1,6 +1,7 @@ local S = minetest.get_translator("unified_inventory") local NS = function(s) return s end local F = minetest.formspec_escape +local ui = unified_inventory minetest.register_privilege("creative", { description = S("Can use the creative inventory"), @@ -12,10 +13,9 @@ minetest.register_privilege("ui_full", { give_to_singleplayer = false, }) - local trash = minetest.create_detached_inventory("trash", { --allow_put = function(inv, listname, index, stack, player) - -- if unified_inventory.is_creative(player:get_player_name()) then + -- if ui.is_creative(player:get_player_name()) then -- return stack:get_count() -- else -- return 0 @@ -29,19 +29,19 @@ local trash = minetest.create_detached_inventory("trash", { }) trash:set_size("main", 1) -unified_inventory.register_button("craft", { +ui.register_button("craft", { type = "image", image = "ui_craft_icon.png", tooltip = S("Crafting Grid") }) -unified_inventory.register_button("craftguide", { +ui.register_button("craftguide", { type = "image", image = "ui_craftguide_icon.png", tooltip = S("Crafting Guide") }) -unified_inventory.register_button("home_gui_set", { +ui.register_button("home_gui_set", { type = "image", image = "ui_sethome_icon.png", tooltip = S("Set home position"), @@ -49,8 +49,8 @@ unified_inventory.register_button("home_gui_set", { action = function(player) local player_name = player:get_player_name() if minetest.check_player_privs(player_name, {home=true}) then - unified_inventory.set_home(player, player:get_pos()) - local home = unified_inventory.home_pos[player_name] + ui.set_home(player, player:get_pos()) + local home = ui.home_pos[player_name] if home ~= nil then minetest.sound_play("dingdong", {to_player=player_name, gain = 1.0}) @@ -60,7 +60,7 @@ unified_inventory.register_button("home_gui_set", { else minetest.chat_send_player(player_name, S("You don't have the \"home\" privilege!")) - unified_inventory.set_inventory_formspec(player, unified_inventory.current_page[player_name]) + ui.set_inventory_formspec(player, ui.current_page[player_name]) end end, condition = function(player) @@ -68,7 +68,7 @@ unified_inventory.register_button("home_gui_set", { end, }) -unified_inventory.register_button("home_gui_go", { +ui.register_button("home_gui_go", { type = "image", image = "ui_gohome_icon.png", tooltip = S("Go home"), @@ -76,13 +76,13 @@ unified_inventory.register_button("home_gui_go", { action = function(player) local player_name = player:get_player_name() if minetest.check_player_privs(player_name, {home=true}) then - if unified_inventory.go_home(player) then + if ui.go_home(player) then minetest.sound_play("teleport", {to_player = player_name}) end else minetest.chat_send_player(player_name, S("You don't have the \"home\" privilege!")) - unified_inventory.set_inventory_formspec(player, unified_inventory.current_page[player_name]) + ui.set_inventory_formspec(player, ui.current_page[player_name]) end end, condition = function(player) @@ -90,7 +90,7 @@ unified_inventory.register_button("home_gui_go", { end, }) -unified_inventory.register_button("misc_set_day", { +ui.register_button("misc_set_day", { type = "image", image = "ui_sun_icon.png", tooltip = S("Set time to day"), @@ -106,7 +106,7 @@ unified_inventory.register_button("misc_set_day", { else minetest.chat_send_player(player_name, S("You don't have the settime privilege!")) - unified_inventory.set_inventory_formspec(player, unified_inventory.current_page[player_name]) + ui.set_inventory_formspec(player, ui.current_page[player_name]) end end, condition = function(player) @@ -114,7 +114,7 @@ unified_inventory.register_button("misc_set_day", { end, }) -unified_inventory.register_button("misc_set_night", { +ui.register_button("misc_set_night", { type = "image", image = "ui_moon_icon.png", tooltip = S("Set time to night"), @@ -130,7 +130,7 @@ unified_inventory.register_button("misc_set_night", { else minetest.chat_send_player(player_name, S("You don't have the settime privilege!")) - unified_inventory.set_inventory_formspec(player, unified_inventory.current_page[player_name]) + ui.set_inventory_formspec(player, ui.current_page[player_name]) end end, condition = function(player) @@ -138,19 +138,19 @@ unified_inventory.register_button("misc_set_night", { end, }) -unified_inventory.register_button("clear_inv", { +ui.register_button("clear_inv", { type = "image", image = "ui_trash_icon.png", tooltip = S("Clear inventory"), action = function(player) local player_name = player:get_player_name() - if not unified_inventory.is_creative(player_name) then + if not ui.is_creative(player_name) then minetest.chat_send_player(player_name, S("This button has been disabled outside" .." of creative mode to prevent" .." accidental inventory trashing." .."\nUse the trash slot instead.")) - unified_inventory.set_inventory_formspec(player, unified_inventory.current_page[player_name]) + ui.set_inventory_formspec(player, ui.current_page[player_name]) return end player:get_inventory():set_list("main", {}) @@ -159,35 +159,42 @@ unified_inventory.register_button("clear_inv", { {to_player=player_name, gain = 1.0}) end, condition = function(player) - return unified_inventory.is_creative(player:get_player_name()) + return ui.is_creative(player:get_player_name()) end, }) -unified_inventory.register_page("craft", { +ui.register_page("craft", { get_formspec = function(player, perplayer_formspec) - local formspecy = perplayer_formspec.formspec_y - local formheadery = perplayer_formspec.form_header_y + local formheaderx = perplayer_formspec.form_header_x + local formheadery = perplayer_formspec.form_header_y + local craftx = perplayer_formspec.craft_x + local crafty = perplayer_formspec.craft_y local player_name = player:get_player_name() - local formspec = "background[2,"..formspecy..";6,3;ui_crafting_form.png]" - formspec = formspec..string.gsub(unified_inventory.standard_inv_bg, "YYY", (formspecy + 3.4)) - formspec = formspec.."label[0,"..formheadery..";" ..F(S("Crafting")).."]" - formspec = formspec.."" - formspec = formspec.."list[current_player;craftpreview;6,"..formspecy..";1,1;]" - formspec = formspec.."list[current_player;craft;2,"..formspecy..";3,3;]" - if unified_inventory.trash_enabled or unified_inventory.is_creative(player_name) or minetest.get_player_privs(player_name).give then - formspec = formspec.."label[7,"..(formspecy + 1.5)..";" .. F(S("Trash:")) .. "]" - formspec = formspec.."background[7,"..(formspecy + 2)..";1,1;default_single_slot.png]" - formspec = formspec.."list[detached:trash;main;7,"..(formspecy + 2)..";1,1;]" + local formspec = { + perplayer_formspec.standard_inv_bg, + perplayer_formspec.craft_grid, + "label["..formheaderx..","..formheadery..";" ..F(S("Crafting")).."]", + "", + "listring[current_name;craft]", + "listring[current_player;main]" + } + local n=#formspec+1 + + if ui.trash_enabled or ui.is_creative(player_name) or minetest.get_player_privs(player_name).give then + formspec[n] = string.format("label[%f,%f;%s]", craftx + 6.45, crafty + 2.4, F(S("Trash:"))) + formspec[n+1] = ui.make_trash_slot(craftx + 6.25, crafty + 2.5) + n=n + 2 end - formspec = formspec.."listring[current_name;craft]" - formspec = formspec.."listring[current_player;main]" - if unified_inventory.is_creative(player_name) then - formspec = formspec.."label[0,"..(formspecy + 1.5)..";" .. F(S("Refill:")) .. "]" - formspec = formspec.."list[detached:"..F(player_name).."refill;main;0,"..(formspecy +2)..";1,1;]" + + if ui.is_creative(player_name) then + formspec[n] = ui.single_slot(craftx - 2.5, crafty + 2.5) + formspec[n+1] = string.format("label[%f,%f;%s]", craftx - 2.3, crafty + 2.4,F(S("Refill:"))) + formspec[n+2] = string.format("list[detached:%srefill;main;%f,%f;1,1;]", + F(player_name), craftx - 2.5 + ui.list_img_offset, crafty + 2.5 + ui.list_img_offset) end - return {formspec=formspec} + return {formspec=table.concat(formspec)} end, }) @@ -206,18 +213,18 @@ local function stack_image_button(x, y, w, h, buttonname_prefix, item) local selectitem = name if name:sub(1, 6) == "group:" then local group_name = name:sub(7) - local group_item = unified_inventory.get_group_item(group_name) + local group_item = ui.get_group_item(group_name) show_is_group = not group_item.sole displayitem = group_item.item or "unknown" selectitem = group_item.sole and displayitem or name end local label = show_is_group and "G" or "" - local buttonname = F(buttonname_prefix..unified_inventory.mangle_for_formspec(selectitem)) + local buttonname = F(buttonname_prefix..ui.mangle_for_formspec(selectitem)) local button = string.format("item_image_button[%f,%f;%f,%f;%s;%s;%s]", x, y, w, h, F(displayitem), buttonname, label) if show_is_group then - local groupstring, andcount = unified_inventory.extract_groupnames(name) + local groupstring, andcount = ui.extract_groupnames(name) local grouptip if andcount == 1 then grouptip = S("Any item belonging to the @1 group", groupstring) @@ -257,26 +264,33 @@ local other_dir = { usage = "recipe", } -unified_inventory.register_page("craftguide", { +ui.register_page("craftguide", { get_formspec = function(player, perplayer_formspec) - local formspecy = perplayer_formspec.formspec_y - local formheadery = perplayer_formspec.form_header_y - local craftresultx = perplayer_formspec.craft_result_x - local craftresulty = perplayer_formspec.craft_result_y + local craftguidex = perplayer_formspec.craft_guide_x + local craftguidey = perplayer_formspec.craft_guide_y + local craftguidearrowx = perplayer_formspec.craft_guide_arrow_x + local craftguideresultx = perplayer_formspec.craft_guide_result_x + local formheaderx = perplayer_formspec.form_header_x + local formheadery = perplayer_formspec.form_header_y + local give_x = perplayer_formspec.give_btn_x local player_name = player:get_player_name() local player_privs = minetest.get_player_privs(player_name) - local fs = { - string.gsub(unified_inventory.standard_inv_bg, "YYY", (formspecy + 3.4)), - "label[0,"..formheadery..";" .. F(S("Crafting Guide")) .. "]", + + local formspec = { + perplayer_formspec.standard_inv_bg, + "label["..formheaderx..","..formheadery..";" .. F(S("Crafting Guide")) .. "]", "" } - local item_name = unified_inventory.current_item[player_name] + + local item_name = ui.current_item[player_name] if not item_name then - return { formspec = table.concat(fs) } + return { formspec = table.concat(formspec) } end + local n = 4 + local item_name_shown if minetest.registered_items[item_name] and minetest.registered_items[item_name].description then @@ -286,51 +300,60 @@ unified_inventory.register_page("craftguide", { item_name_shown = item_name end - local dir = unified_inventory.current_craft_direction[player_name] + local dir = ui.current_craft_direction[player_name] local rdir = dir == "recipe" and "usage" or "recipe" - local crafts = unified_inventory.crafts_for[dir][item_name] - local alternate = unified_inventory.alternate[player_name] + local crafts = ui.crafts_for[dir][item_name] + local alternate = ui.alternate[player_name] local alternates, craft if crafts and #crafts > 0 then alternates = #crafts craft = crafts[alternate] end - local has_give = player_privs.give or unified_inventory.is_creative(player_name) + local has_give = player_privs.give or ui.is_creative(player_name) - fs[#fs + 1] = "background[0.5,"..(formspecy + 0.2)..";8,3;ui_craftguide_form.png]" - fs[#fs + 1] = string.format("textarea[%f,%f;10,1;;%s: %s;]", - craftresultx, craftresulty, F(role_text[dir]), item_name_shown) - fs[#fs + 1] = stack_image_button(0, formspecy, 1.1, 1.1, - "item_button_" .. rdir .. "_", ItemStack(item_name)) + formspec[n] = string.format("image[%f,%f;%f,%f;ui_crafting_arrow.png]", + craftguidearrowx, craftguidey, ui.imgscale, ui.imgscale) + + formspec[n+1] = string.format("textarea[%f,%f;10,1;;%s: %s;]", + perplayer_formspec.craft_guide_resultstr_x, perplayer_formspec.craft_guide_resultstr_y, + F(role_text[dir]), item_name_shown) + n = n + 2 + + local giveme_form = table.concat({ + "label[".. (give_x+0.1)..",".. (craftguidey + 2.7) .. ";" .. F(S("Give me:")) .. "]", + "button["..(give_x)..",".. (craftguidey + 2.9) .. ";0.75,0.5;craftguide_giveme_1;1]", + "button["..(give_x+0.8)..",".. (craftguidey + 2.9) .. ";0.75,0.5;craftguide_giveme_10;10]", + "button["..(give_x+1.6)..",".. (craftguidey + 2.9) .. ";0.75,0.5;craftguide_giveme_99;99]" + }) if not craft then -- No craft recipes available for this item. - fs[#fs + 1] = "label[5.5,"..(formspecy + 2.35)..";" - .. F(no_recipe_text[dir]) .. "]" - local no_pos = dir == "recipe" and 4.5 or 6.5 - local item_pos = dir == "recipe" and 6.5 or 4.5 - fs[#fs + 1] = "image["..no_pos..","..formspecy..";1.1,1.1;ui_no.png]" - fs[#fs + 1] = stack_image_button(item_pos, formspecy, 1.1, 1.1, + formspec[n] = string.format("label[%f,%f;%s]", craftguidex+2.5, craftguidey+1.5, F(no_recipe_text[dir])) + local no_pos = dir == "recipe" and (craftguidex+2.5) or craftguideresultx + local item_pos = dir == "recipe" and craftguideresultx or (craftguidex+2.5) + formspec[n+1] = "image["..no_pos..","..craftguidey..";1.2,1.2;ui_no.png]" + formspec[n+2] = stack_image_button(item_pos, craftguidey, 1.2, 1.2, "item_button_" .. other_dir[dir] .. "_", ItemStack(item_name)) if has_give then - fs[#fs + 1] = "label[0," .. (formspecy + 2.10) .. ";" .. F(S("Give me:")) .. "]" - .. "button[0, " .. (formspecy + 2.7) .. ";0.6,0.5;craftguide_giveme_1;1]" - .. "button[0.6," .. (formspecy + 2.7) .. ";0.7,0.5;craftguide_giveme_10;10]" - .. "button[1.3," .. (formspecy + 2.7) .. ";0.8,0.5;craftguide_giveme_99;99]" + formspec[n+3] = giveme_form end - return { formspec = table.concat(fs) } + return { formspec = table.concat(formspec) } + else + formspec[n] = stack_image_button(craftguideresultx, craftguidey, 1.2, 1.2, + "item_button_" .. rdir .. "_", ItemStack(craft.output)) + n = n + 1 end - local craft_type = unified_inventory.registered_craft_types[craft.type] or - unified_inventory.craft_type_defaults(craft.type, {}) + local craft_type = ui.registered_craft_types[craft.type] or + ui.craft_type_defaults(craft.type, {}) if craft_type.icon then - fs[#fs + 1] = string.format("image[%f,%f;%f,%f;%s]", - 5.7, (formspecy + 0.05), 0.5, 0.5, craft_type.icon) + formspec[n] = string.format("image[%f,%f;%f,%f;%s]", + craftguidearrowx+0.35, craftguidey, 0.5, 0.5, craft_type.icon) + n = n + 1 end - fs[#fs + 1] = "label[5.5,"..(formspecy + 1)..";" .. F(craft_type.description).."]" - fs[#fs + 1] = stack_image_button(6.5, formspecy, 1.1, 1.1, - "item_button_usage_", ItemStack(craft.output)) + formspec[n] = string.format("label[%f,%f;%s]", craftguidearrowx + 0.15, craftguidey + 1.4, F(craft_type.description)) + n = n + 1 local display_size = craft_type.dynamic_display_size and craft_type.dynamic_display_size(craft) @@ -341,11 +364,12 @@ unified_inventory.register_page("craftguide", { -- This keeps recipes aligned to the right, -- so that they're close to the arrow. - local xoffset = 5.5 + local xoffset = craftguidex+3.75 + local bspc = 1.25 -- Offset factor for crafting grids with side length > 4 local of = (3/math.max(3, math.max(display_size.width, display_size.height))) local od = 0 - -- Minimum grid size at which size optimazation measures kick in + -- Minimum grid size at which size optimization measures kick in local mini_craft_size = 6 if display_size.width >= mini_craft_size then od = math.max(1, display_size.width - 2) @@ -354,12 +378,12 @@ unified_inventory.register_page("craftguide", { -- Size modifier factor local sf = math.min(1, of * (1.05 + 0.05*od)) -- Button size - local bsize_h = 1.1 * sf - local bsize_w = bsize_h - if display_size.width >= mini_craft_size then - bsize_w = 1.175 * sf + local bsize = 1.2 * sf + + if display_size.width >= mini_craft_size then -- it's not a normal 3x3 grid + bsize = 0.8 * sf end - if (bsize_h > 0.35 and display_size.width) then + if (bsize > 0.35 and display_size.width) then for y = 1, display_size.height do for x = 1, display_size.width do local item @@ -369,48 +393,53 @@ unified_inventory.register_page("craftguide", { -- Flipped x, used to build formspec buttons from right to left local fx = display_size.width - (x-1) -- x offset, y offset - local xof = (fx-1) * of + of - local yof = (y-1) * of + 1 + local xof = ((fx-1) * of + of) * bspc + local yof = ((y-1) * of + 1) * bspc if item then - fs[#fs + 1] = stack_image_button( - xoffset - xof, formspecy - 1 + yof, bsize_w, bsize_h, + formspec[n] = stack_image_button( + xoffset - xof, craftguidey - 1.25 + yof, bsize, bsize, "item_button_recipe_", ItemStack(item)) else -- Fake buttons just to make grid - fs[#fs + 1] = string.format("image_button[%f,%f;%f,%f;ui_blank_image.png;;]", - xoffset - xof, formspecy - 1 + yof, bsize_w, bsize_h) + formspec[n] = string.format("image_button[%f,%f;%f,%f;ui_blank_image.png;;]", + xoffset - xof, craftguidey - 1.25 + yof, bsize, bsize) end + n = n + 1 end end else -- Error - fs[#fs + 1] = string.format("label[2,%f;%s]", - formspecy, F(S("This recipe is too@nlarge to be displayed."))) + formspec[n] = string.format("label[2,%f;%s]", + craftguidey, F(S("This recipe is too@nlarge to be displayed."))) + n = n + 1 end if craft_type.uses_crafting_grid and display_size.width <= 3 then - fs[#fs + 1] = "label[0," .. (formspecy + 0.9) .. ";" .. F(S("To craft grid:")) .. "]" - .. "button[0, " .. (formspecy + 1.5) .. ";0.6,0.5;craftguide_craft_1;1]" - .. "button[0.6," .. (formspecy + 1.5) .. ";0.7,0.5;craftguide_craft_10;10]" - .. "button[1.3," .. (formspecy + 1.5) .. ";0.8,0.5;craftguide_craft_max;" .. F(S("All")) .. "]" + formspec[n] = "label["..(give_x+0.1)..",".. (craftguidey + 1.7) .. ";" .. F(S("To craft grid:")) .. "]" + formspec[n+1] = "button[".. (give_x)..",".. (craftguidey + 1.9) .. ";0.75,0.5;craftguide_craft_1;1]" + formspec[n+2] = "button[".. (give_x+0.8)..",".. (craftguidey + 1.9) .. ";0.75,0.5;craftguide_craft_10;10]" + formspec[n+3] = "button[".. (give_x+1.6)..",".. (craftguidey + 1.9) .. ";0.75,0.5;craftguide_craft_max;" .. F(S("All")) .. "]" + n = n + 4 end + if has_give then - fs[#fs + 1] = "label[0," .. (formspecy + 2.1) .. ";" .. F(S("Give me:")) .. "]" - .. "button[0, " .. (formspecy + 2.7) .. ";0.6,0.5;craftguide_giveme_1;1]" - .. "button[0.6," .. (formspecy + 2.7) .. ";0.7,0.5;craftguide_giveme_10;10]" - .. "button[1.3," .. (formspecy + 2.7) .. ";0.8,0.5;craftguide_giveme_99;99]" + formspec[n] = giveme_form + n = n + 1 end if alternates and alternates > 1 then - fs[#fs + 1] = "label[5.5," .. (formspecy + 1.6) .. ";" - .. F(S(recipe_text[dir], alternate, alternates)) .. "]" - .. "image_button[5.5," .. (formspecy + 2) .. ";1,1;ui_left_icon.png;alternate_prev;]" - .. "image_button[6.5," .. (formspecy + 2) .. ";1,1;ui_right_icon.png;alternate;]" - .. "tooltip[alternate_prev;" .. F(prev_alt_text[dir]) .. "]" - .. "tooltip[alternate;" .. F(next_alt_text[dir]) .. "]" + formspec[n] = string.format("label[%f,%f;%s]", + craftguidex+4, craftguidey + 2.3, F(S(recipe_text[dir], alternate, alternates))) + formspec[n+1] = string.format("image_button[%f,%f;1.1,1.1;ui_left_icon.png;alternate_prev;]", + craftguidearrowx+0.2, craftguidey + 2.6) + formspec[n+2] = string.format("image_button[%f,%f;1.1,1.1;ui_right_icon.png;alternate;]", + craftguidearrowx+1.35, craftguidey + 2.6) + formspec[n+3] = "tooltip[alternate_prev;" .. F(prev_alt_text[dir]) .. "]" + formspec[n+4] = "tooltip[alternate;" .. F(next_alt_text[dir]) .. "]" end - return { formspec = table.concat(fs) } + + return { formspec = table.concat(formspec) } end, }) @@ -418,7 +447,7 @@ local function craftguide_giveme(player, formname, fields) local player_name = player:get_player_name() local player_privs = minetest.get_player_privs(player_name) if not player_privs.give and - not unified_inventory.is_creative(player_name) then + not ui.is_creative(player_name) then minetest.log("action", "[unified_inventory] Denied give action to player " .. player_name) return @@ -433,7 +462,7 @@ local function craftguide_giveme(player, formname, fields) amount = tonumber(amount) or 0 if amount == 0 then return end - local output = unified_inventory.current_item[player_name] + local output = ui.current_item[player_name] if (not output) or (output == "") then return end local player_inv = player:get_inventory() @@ -454,21 +483,21 @@ local function craftguide_craft(player, formname, fields) local player_name = player:get_player_name() - local output = unified_inventory.current_item[player_name] or "" + local output = ui.current_item[player_name] or "" if output == "" then return end - local crafts = unified_inventory.crafts_for[ - unified_inventory.current_craft_direction[player_name]][output] or {} + local crafts = ui.crafts_for[ + ui.current_craft_direction[player_name]][output] or {} if #crafts == 0 then return end - local alternate = unified_inventory.alternate[player_name] + local alternate = ui.alternate[player_name] local craft = crafts[alternate] if craft.width > 3 then return end - unified_inventory.craftguide_match_craft(player, "main", "craft", craft, amount) + ui.craftguide_match_craft(player, "main", "craft", craft, amount) - unified_inventory.set_inventory_formspec(player, "craft") + ui.set_inventory_formspec(player, "craft") end minetest.register_on_player_receive_fields(function(player, formname, fields) diff --git a/mods/unified_inventory/textures/ui_craftguide_form.png b/mods/unified_inventory/textures/ui_craftguide_form.png deleted file mode 100644 index d9be53f7dd54cad096c80fb9d7a784ba09bb7078..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 962 zcmeAS@N?(olHy`uVBq!ia0y~yU;;834sb97N!N?op$rU+VF5lNu0U=^MuwM{*VL&~ zTUuJ8qM{NL6RoYSKYsjJQBeUDkB^T}N=gFCCL|;@G&ERQS=rj!nwy(jT3P~?LC86C z<^WaN+1UX_GBY#(|Nrmi=Jw~$pTfdI3k!>?sw!7k*S&l9&YU?DD0Sh&h3V6$&jy3{ z@8AFZ`}fP2FFC&Zb+qMBM1zNFg-MYBAxE(uo zT)TEHKR^Hb_wT;GzCfn}-5eSkdh6D$($dnhva+>n*S5B{-nemN(xgd1m)P6ecXoDe z*|KHRrcDbMF5IEakt5%>0vYjH@RK*PmzE^3^O67SyW z<*TgQv3vLL|K@3qj-g?bSy}hkr5FD{5FT58S@tw2lA++hiHsDtuW2dAKHPZa(ZhQ^ zZ++*U6@K^kZnV9$=+}dbtNEP+)z+-v@+Ca)Z`jH|HPc?*w~Vcct`SN-H0@-PrIc~{ zb+gE|{^qyfXNSYQv&$TO!0WITMQhe4QOUahm;sKg-WAUuTYdS2nD=@0K>lLh`>U z%x_@&Mb{OHjw=y@D>rKWqMth^|`6r5!k z7#JMFmmG8WlX`>uKpcY_S>__#V%_+~C9A|Gi^nbN%TakYpy>>M7?>Cv4hjF;KN-aH MboFyt=akR{0KFTassI20 diff --git a/mods/unified_inventory/textures/ui_crafting_arrow.png b/mods/unified_inventory/textures/ui_crafting_arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..6901c58888398695f07f51a97b6815b92c7c482e GIT binary patch literal 788 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H0wgodS2{2-Fx~caaSW-r_4dYDZ;?b9_7CsR zXuQ@t|7O?ajGihj8yCSVXT3{GBwyJJbl%&rNZjbeo1<|$hSiEX!m1q?irN1P{}SF) za+S|fV2au_WB>NT;On8~->;l`|9hui@sGOi55MnWaKQ$?*jr~@`!;vx6sB+fWml#g z_3~moZqJrmohG*BhG@c~r(3M=C3fg4G;~ihes?=ddxf_b$@YX$p7wwy!O+_y> zl`Tm)vaDrS{X+Aw1SbDK1!X(hm|iWM(D_rR;~cxhr~0#fU6M`F#}n_}_`RyYF@fJ-mFPvvN_uw6FVuBla0>%gOy2Yg&=#QBN>|8!^VS#^6s zlkDPRhXzrWXfwO*7QeRaTXJmG9zJ;oYpEomde-}9xp{$qmVNy({p##h_nG^Y_>IN* zmG*yRjsGaj>oK*Pzc#q{+6RS20!lqcAH^R~uW4(pefs$O%7=6J-QU)5_+uq6GegPi zO&@<>y^t5aw1tCF!sB3^eC>tpS0CSf-^F?Bd+>>cl6pY5?9SRS>2y(2-rtv7fApR> z)UC6k(zs~wEk4~SE zsn=z1m(QX5V0YZ5ZsDZI%%`ggi|)0=c)xc!&i*XrxVjPs(0Z=#c479d8~ZI*15-PL Mr>mdKI;Vst09D^+`v3p{ literal 0 HcmV?d00001 diff --git a/mods/unified_inventory/textures/ui_formbg_9_sliced.png b/mods/unified_inventory/textures/ui_formbg_9_sliced.png new file mode 100644 index 0000000000000000000000000000000000000000..0b8463cac7019cb7d7c4fc7775fed914958eba81 GIT binary patch literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpUt?Vc`hAEqTvQwx!j0YudUN$|)(WHJ$o&?biGTx0bEnKC^xM zaxZj>`LUXMr{g)dx0O^rzw=(wV)?aQDV6X4{t)O7@`_wl!;x6WeRfiD+@hME!e4Ln zPB8QB;6nF*O&_{;F8RxS``=pF{`i~x z+k@=v{a-fPy*gNB*=u-n->VPt8qNzRwF}{qAXli1`@R$bvOk~-Or^4xUp4Xcsw&aH zghm+4VpK`r1f;JoK{s>Ixucnm3S<8N@Bab<<3`^+lZ`IzNhFxYz!-#!fsL(MiNh^; zkow@ro4@oGyHWYkwY1vPg=WjQU%zC$VKGwTHW-)ICZ_GhGzg;Wds=QUx0~oF2PiU3HGZBTAmtn4X zA8+kXX}ZGJidG}R)@f?ZILZ5f{$e+=x}mG`BVrgEVH7^oDWJvcpcjPgiW&Zp-}=d0#wp{ZoUqy4O1WO9kYkYf_x#l zQ>n}Bb`Zyw{e&5jzzPHQOJH0r3`1_uV+gX_3v|hLAW^S2o4}66H>glk5hhUL)0php zJh}KX;p_N#%;**t0RZ<38<$+?#tfM2^RaTx z9C})hn=QJ~OMBD_mh1DCCSP_)K8>k!B6Wb5EK7M&h81|+-n>KR9br8HDWrkHzNhW; z?AJWEHoNEJ7B@qtgVIrsyoVi)r>qMrQRtHt1(fp^;tV-!=mQxRpuu%{P44-4 z6LWw(biV%8nJ{YdnGl&wzP9k_^jK{-%J*cT)F$rrrVC-Y;_kv}ZD=Ui7Qnic=Ac7d zX4_L%$H}46?+&l_K{J%a^P2GKah*MwyR2CGzGu7M+{ncWNm=U{7BTCmccj#fP_M=X zUaufORq`>DpWyYg@G|W${qU(~0+d3r=-KUQGsXl999at=q(f1MA z2=6w(n)`7TLMtGWJRCF6mR$E-o@}vHaGT1f1?n9d^~$`+Lm!-d${pD5f(DJnJ;*!d z`}jk#wW@Zo_$+zXFe3|PHy_ED^bgs;x+!eH^m+KD|3|yS35#t!8V@k2W^Fw4``5N9 zB7K(CsdOIFsq&-c-ru!8JL;pPqW|ZcHJ?x1k%7OUOq;397oLE^C39`z>wafKsYpMd&F$q%KvCPFSH6JO$P>_DfZ+e5H zG6V{iR-{w&xSV=P9ju+M_~`QV(>E!Y(QkLBwsCZ)9r{C0q9NC!X6c(ZMI)iAY{w8d z%TF6c&KP?`5Alp%<8F%PNqDcRc#qDNARirB_Z1x!Ikgl}3olFxM8I>NW67YoRY6tU zbtk7SDoj?A4M)S#Pbc1&)rgsz@;Rpn9H_yglgrPL`dTnusv&JRmy^$4eGPyW$FO!` zJAx?~lU4M&B7gL1V~yvQseFyAC+`gKcF(kayww^f$>7FGLrTq4A|k{^9-UzE6^jm+ z>O)KnG^`ZxBQ#L2A{jBG>wCHgN`yf1WCH;SVQSrxMyo4(S1vcPiB|J7G8Is|E?Y2H zV$!^P&5!3rTgG>P)!9wk(cMy7hn8LD({8I8v41+-9volU1J`Lj=Q<=W``ku8-5~Tc zy{-VdUu>uN8CFE!O|QEb*yxbAO=a<*$5V@q7ePMBxauYUC^uUoV#uF77$-`s3ou?k z_GWaMn#$PD6#SkbP4#}31?a{uN8zc8wDwkD8L{L)(_4TdJLvFkSfEFYLku{_V~OKi z!?>IB_tYPPPxK>qopyB8NZ}ngKB6P+vb;F|`F#i``Apq*cAOr6(G)egw*hd?4a~i7 zsAj*ML#dC9=d>L8cu^VlFmLe9$7aiCrp187VuSP!>WBP1rh>>{B_e_?CO7%^KN%!! zbuR8k<8QPzhmRjH%?9*EXH2JbazMj*m#h;n-aD8t+_}?Y@*ChoG^2H_#e!S6Ft`-= z8-2u`aO-B=#>!K9l#CczGbbDc#K$vat4j;!Y_YI8q*KI0nq)F58mT@n6xiTb{KVvX z3IAtsBME@>eT;qckr{g!EPBg%rV{06jGupTgJhf1U?8C6GJ;|T&DL7>aJ_c|Jx|)E z1@o|2+Ik??DL_5R;TdT(e-kdhNUEWVz3+Xfy1dh0*{y(LZ5n7En_9Q; zdld6v84czQ`;+hc{cXrK0f)`co)L+Lby5w`Em+ddRv0N~%#QV35 zMwcs+Jyqijn9+CsHni1uCR!UI?7Bii7#(nfgNVAG8q=}B?h5!vt>)-GA*vmS=iU(z zhx~{nva#`PUG(V#1xTM&QTf4Qz-Y&9Cu+_K8`COLl+<7o0ZE-`H8*!X6A`7T^jt6s zc~3qo(qYX#5f1;%eml1>K#;jam7< zW?<{)MNn@xV?b;Zau6rdihJ3(ET&F7krAf6G|#kPIsVcro0N+)q%L}k$B!S*o(CK? z!N=Qc63;o+()bt~O>$c3|2Snbi2zY?zmIoE&eb%waMUnjZ|bm<{`Hd;cAy z?<>Y(%O@nX9$XqrT1A+ZX9X*=DL4^!Y}$O6HuRhVey)aTo2THW!w0}MrHGj77#{= zSsm{Ft3xzoY0RsrQbfub$A_qOU7wV*B?`rA*3Cz-J+8y#UH5bKfJ;$(RuP`q7rK{_ zwX&Z1=7+t|zf*@~Fftzw8tv6a<LBXDG(% z%HF;$YUuTM6qUj=^{)WqN{K&kznE`H5>A^8v=rnUn1wf$|OP2M`G<%#))HbBxYNEmy7@&dA{vam5*BeWu z+K2j9Vbw9Ttr#%Gf}{{b;b3@;9R4!epX~(8;;g;GE@2W+@0;qF{~)lssczkXXpgoUnNy&<0ilzgDz(i0ro_snlGsNOP-*KoZgkGHV6 zh_Gvv)#r?jBa2N2{zwwssMF14Alh4a$P_@A%@4^vhyIl&jGZ=gZATGtk=c3p>Eo=nWl|ND(|{MlYwtupK10aL*YNaO>LuJ<3<+jld6!whN_!+NNI4ZpyDx%0H( zU;6B_sv7fKKTy2EZOxq+PU2fp9`~<2iG4_m-hL9YBT828ohaK0RwGECnOQ{gDy}|q z;?ZbWPv@m5x6N+j`IkGx@)d`Ra^axmoYxN(858fA>ekz@2jnnz`$XTpF`FGn;(YT7 zUgo%DuE5Azp;dO!zTQ*T9f~mL75kjLI;71#G5b4E;gJ~J8T3N}9V^t5-$k#INkkK3 zSP#^;VK~IsMBoeU+hAn8$Og5--ii*Y~Zh- z%|@S0boM7_Jka&K5dNG$v@S)rY=jj6q#5%l5f-OI-j5UyuvCH}ZS4ay_|+KT} z9=;$+HI0;@Kjl$TnG2YYbaN<&uGIAv#fMnXPVA`3xTiSoFV-L5*OR~Ab8@@O&KmJu J>7|?h`B$Kb45I)5 diff --git a/mods/unified_inventory/textures/ui_single_slot.png b/mods/unified_inventory/textures/ui_single_slot.png new file mode 100644 index 0000000000000000000000000000000000000000..2451623c93dec16b8c9c7d9a1c156857930ec58a GIT binary patch literal 648 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 diff --git a/mods/unified_inventory/textures/ui_xyz_on_icon.png b/mods/unified_inventory/textures/ui_xyz_on_icon.png deleted file mode 100644 index 003ea63344be5dbf1f7a2b5da8eb6911e4aeb329..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2182 zcmaKu`9Bkm1I8!i*i}f5ZKO}BIX{lcIoHV9D9W9jIhyO!T5^R*V#<~KEZd7*ZTL=fbaM9dYI!>XEw ztCMvHMkKG;PZ*znC}1cLB4Eo>@xVRciLTcv(<;n!RWltG$_bA<0x~RF7ieNZ=Kfpl zq|4kD1F3~VR=RTa^e%qj>yN6IZKsDdE!$KD!&Arqx8iGr1wte%E*7fC>v5hgyDdF& zIMepR$}?Cp8||xR91h9NIHJdi5BOof!n9 zNr{YjQ913cMtkkT;kcjka&pVNMlwaxhP)1E6x#)-Hcl%hL1@Ax!7+Bf#E6VB-LY43 zLK#YukOBwmpojFXGFk*h#On0|d07SVJWvzTGi5)MZO!X^IOlBBZ&tLQsW{HsD=m;H z3nu9*t_mKe60XZfBo%69txNRJ2}fy@eGx(ICYAj&0|5pes~~JJZ`NWs zXfGc@WgS{3{qo)L@4;|pkr*B+; zpl__~81Q_Y6M6lKltEtB=6&Dgvlh`JML)7q{0om}8-1=LZw+^>wHM`Yn1hmhi{mqI zkUlEWXx5Q@E#*^fAp8FLsDw;n$^-^Mpk4?7VCCLBS0ioxefJQph}Y8WDxHYKC%DaQ z;S}S{SxnxrX!9e)2O$3D(a}s)^K?Fsnr)dgYAEgs*N+MRAcFhsAtt+nKqn3tX!>A| z1ov$oM*^>J27j`N+!YN9YUgUVDi7_^D2K1$;313Dr4NYEy>ZC!n*?sr4bU`n7X_G# zK{&~O*Kj((kKI=w2WB+EPWcc2#H<)eJ^{NJXi}UR;}%KD1hd!U zrzlkqN2*Y`%i5Uh*xC->5p`nn-txzl!Q3n>dHca*Bh5TYHps&g{ozy;zTt|o>Edl1 zGZb36Bo{vk=IC2nMpmFtP|UePYO|={)YE6oFFjRlt+Ky3`lS|;{=(+14mjMnLPXRb z=%$uxJ8-$2t1#y^7}V6~%B{VevlrJm-VD{LLA%dpIAwU1e_iR|;d?CfdWxB= zbsW0u$iNG4;z#+L&BAYpyDkSmLkQhz!>PXr4Wh^EF6jZqi?k>6M9#OAM$mg?TH!|z zmtluqC?B?WV@!9!nCU3Log)4<+f4e6Xv<*!cX^+(t@wu;i^$T0m~&{ch3VWE>q%i@ z1|2ucYMEm`;RBBJz*}ENv~w%L)W*&Tt-A_Vmb=pl`O3pB)+I4u19?_`g6$m=UUoOV zJ4iCLa6=0jw*LJ2E|pO;mt)v>qz=b(0&q-;>~<%wlal}}*J=NwXP!y~Ka7dufwZCc zol_l@ld4hwn4up9~Ohll2w^?KZn@|4IqM>?o2sYWdzV=I#HaV4u@Z%+cb-$ls zJ)&m>qI_b9TkysleiNE|}Mrvu3O^xpPCH&hbs5@O@OD1J2IZc;z z;MeFgh5WE#L^LQRpJxS@BKg;*Nw~$Ij%|EYr!}tbnB~J73wyNN;N&?QgghL{OL2?S zhrvSmF>G}ayjIFgH+X8geB)a`}fF^>uc>{K*ChO1tmvbO|6}R z=ezexO#6VrJKM+E49hPQJ7>FqzH(^hYZ`_~!CVW9*%J`$*eCXwJFz5zxb3$#)ykbT z8x$eyO*@5UW=Xu=kbUHN!4sfUzG_eqvaXeQ%fZknc{kp6`(02^9}=Vt8$F-7VM|5< z7(1@))*4XvhUK9jV?b^@>u>ToJDB%?ucy?n2yfYnknr z@#~Cu(b|LlVuc*tWFK}5W9f4z>(x#N>SFM8^>bP0l+XkK4gDLg literal 0 HcmV?d00001