summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVanessa Ezekowitz <vanessaezekowitz@gmail.com>2017-03-04 23:58:38 -0500
committerVanessa Ezekowitz <vanessaezekowitz@gmail.com>2017-03-04 23:58:38 -0500
commita46f07cbfbd9ae59b7b1cc2fc32f68c39ae34de0 (patch)
tree5358ecc88cd634e7277bf04e51be8e9ddd37b2aa
parent3eb0b959da58a153e4b9fc7f70eb513b1cf0e5fd (diff)
downloaddreambuilder_modpack-a46f07cbfbd9ae59b7b1cc2fc32f68c39ae34de0.tar
dreambuilder_modpack-a46f07cbfbd9ae59b7b1cc2fc32f68c39ae34de0.tar.gz
dreambuilder_modpack-a46f07cbfbd9ae59b7b1cc2fc32f68c39ae34de0.tar.bz2
dreambuilder_modpack-a46f07cbfbd9ae59b7b1cc2fc32f68c39ae34de0.tar.xz
dreambuilder_modpack-a46f07cbfbd9ae59b7b1cc2fc32f68c39ae34de0.zip
updated digilines, framedglass, mesecons, pipeworks, quartz
technic, unifiedinventory, and unifiedbricks
-rw-r--r--digilines/init.lua2
-rw-r--r--digilines/internal.lua67
-rw-r--r--digilines/util.lua89
-rw-r--r--framedglass/init.lua14
-rw-r--r--mesecons_movestones/doc/movestone_sticky/recipe.pngbin10190 -> 9870 bytes
-rw-r--r--mesecons_movestones/init.lua2
-rw-r--r--pipeworks/default_settings.txt1
-rw-r--r--pipeworks/filter-injector.lua19
-rw-r--r--pipeworks/item_transport.lua25
-rw-r--r--quartz/depends.txt1
-rw-r--r--quartz/init.lua26
-rw-r--r--quartz/intllib.lua45
-rw-r--r--quartz/locale/es.po59
-rw-r--r--quartz/locale/template.pot57
-rw-r--r--technic/machines/LV/water_mill.lua4
-rw-r--r--unified_inventory/bags.lua7
-rw-r--r--unified_inventory/init.lua3
-rw-r--r--unified_inventory/register.lua7
-rw-r--r--unified_inventory/settingtypes.txt4
-rw-r--r--unified_inventory/textures/ui_crafting_form.pngbin2658 -> 2962 bytes
-rw-r--r--unifiedbricks/init.lua2
21 files changed, 376 insertions, 58 deletions
diff --git a/digilines/init.lua b/digilines/init.lua
index 2f48a73..bffd4e7 100644
--- a/digilines/init.lua
+++ b/digilines/init.lua
@@ -9,7 +9,7 @@ dofile(modpath .. "/wire_std.lua")
function digiline:receptor_send(pos, rules, channel, msg)
local checked = {}
- checked[tostring(pos.x).."_"..tostring(pos.y).."_"..tostring(pos.z)] = true -- exclude itself
+ checked[minetest.hash_node_position(pos)] = true -- exclude itself
for _,rule in ipairs(rules) do
if digiline:rules_link(pos, digiline:addPosRule(pos, rule)) then
digiline:transmit(digiline:addPosRule(pos, rule), channel, msg, checked)
diff --git a/digilines/internal.lua b/digilines/internal.lua
index 2319c16..45cd5d7 100644
--- a/digilines/internal.lua
+++ b/digilines/internal.lua
@@ -14,7 +14,7 @@ function digiline:importrules(spec, node)
end
function digiline:getAnyInputRules(pos)
- local node = minetest.get_node(pos)
+ local node = digiline:get_node_force(pos)
local spec = digiline:getspec(node)
if not spec then return end
@@ -27,7 +27,7 @@ function digiline:getAnyInputRules(pos)
end
function digiline:getAnyOutputRules(pos)
- local node = minetest.get_node(pos)
+ local node = digiline:get_node_force(pos)
local spec = digiline:getspec(node)
if not spec then return end
@@ -63,28 +63,57 @@ function digiline:rules_link_anydir(output, input)
or digiline:rules_link(input, output)
end
-function digiline:transmit(pos, channel, msg, checked)
- local checkedid = tostring(pos.x).."_"..tostring(pos.y).."_"..tostring(pos.z)
- if checked[checkedid] then return end
- checked[checkedid] = true
+local function queue_new()
+ return {nextRead = 1, nextWrite = 1}
+end
- local node = minetest.get_node(pos)
- local spec = digiline:getspec(node)
- if not spec then return end
+local function queue_empty(queue)
+ return queue.nextRead == queue.nextWrite
+end
+local function queue_enqueue(queue, object)
+ local nextWrite = queue.nextWrite
+ queue[nextWrite] = object
+ queue.nextWrite = nextWrite + 1
+end
- -- Effector actions --> Receive
- if spec.effector then
- spec.effector.action(pos, node, channel, msg)
- end
+local function queue_dequeue(queue)
+ local nextRead = queue.nextRead
+ local object = queue[nextRead]
+ queue[nextRead] = nil
+ queue.nextRead = nextRead + 1
+ return object
+end
- -- Cable actions --> Transmit
- if spec.wire then
- local rules = digiline:importrules(spec.wire.rules, node)
- for _,rule in ipairs(rules) do
- if digiline:rules_link(pos, digiline:addPosRule(pos, rule)) then
- digiline:transmit(digiline:addPosRule(pos, rule), channel, msg, checked)
+function digiline:transmit(pos, channel, msg, checked)
+ digiline:vm_begin()
+ local queue = queue_new()
+ queue_enqueue(queue, pos)
+ while not queue_empty(queue) do
+ local curPos = queue_dequeue(queue)
+ local node = digiline:get_node_force(curPos)
+ local spec = digiline:getspec(node)
+ if spec then
+ -- Effector actions --> Receive
+ if spec.effector then
+ spec.effector.action(curPos, node, channel, msg)
+ end
+
+ -- Cable actions --> Transmit
+ if spec.wire then
+ local rules = digiline:importrules(spec.wire.rules, node)
+ for _, rule in ipairs(rules) do
+ local nextPos = digiline:addPosRule(curPos, rule)
+ if digiline:rules_link(curPos, nextPos) then
+ local checkedID = minetest.hash_node_position(nextPos)
+ if not checked[checkedID] then
+ checked[checkedID] = true
+ queue_enqueue(queue, nextPos)
+ end
+ end
+ end
end
end
end
+ digiline:vm_end()
end
diff --git a/digilines/util.lua b/digilines/util.lua
index d138d63..cec75be 100644
--- a/digilines/util.lua
+++ b/digilines/util.lua
@@ -65,3 +65,92 @@ function digiline:tablecopy(table) -- deep table copy
return newtable
end
+
+
+
+-- VoxelManipulator-based node access functions:
+
+-- Maps from a hashed mapblock position (as returned by hash_blockpos) to a
+-- table.
+--
+-- Contents of the table are:
+-- “va” → the VoxelArea
+-- “data” → the data array
+-- “param1” → the param1 array
+-- “param2” → the param2 array
+--
+-- Nil if no bulk-VM operation is in progress.
+local vm_cache = nil
+
+-- Starts a bulk-VoxelManipulator operation.
+--
+-- During a bulk-VoxelManipulator operation, calls to get_node_force operate
+-- directly on VM-loaded arrays, which should be faster for reading many nodes
+-- in rapid succession. However, the cache must be flushed with vm_end once the
+-- scan is finished, to avoid using stale data in future.
+function digiline:vm_begin()
+ vm_cache = {}
+end
+
+-- Ends a bulk-VoxelManipulator operation, freeing the cached data.
+function digiline:vm_end()
+ vm_cache = nil
+end
+
+-- The dimension of a mapblock in nodes.
+local MAPBLOCKSIZE = 16
+
+-- Converts a node position into a hash of a mapblock position.
+local function vm_hash_blockpos(pos)
+ return minetest.hash_node_position({
+ x = math.floor(pos.x / MAPBLOCKSIZE),
+ y = math.floor(pos.y / MAPBLOCKSIZE),
+ z = math.floor(pos.z / MAPBLOCKSIZE)
+ })
+end
+
+-- Gets the cache entry covering a position, populating it if necessary.
+local function vm_get_or_create_entry(pos)
+ local hash = vm_hash_blockpos(pos)
+ local tbl = vm_cache[hash]
+ if not tbl then
+ local vm = minetest.get_voxel_manip(pos, pos)
+ local min_pos, max_pos = vm:get_emerged_area()
+ local va = VoxelArea:new{MinEdge = min_pos, MaxEdge = max_pos}
+ tbl = {va = va, data = vm:get_data(), param1 = vm:get_light_data(), param2 = vm:get_param2_data()}
+ vm_cache[hash] = tbl
+ end
+ return tbl
+end
+
+-- Gets the node at a position during a bulk-VoxelManipulator operation.
+local function vm_get_node(pos)
+ local tbl = vm_get_or_create_entry(pos)
+ local index = tbl.va:indexp(pos)
+ local node_value = tbl.data[index]
+ local node_param1 = tbl.param1[index]
+ local node_param2 = tbl.param2[index]
+ return {name = minetest.get_name_from_content_id(node_value), param1 = node_param1, param2 = node_param2}
+end
+
+-- Gets the node at a given position, regardless of whether it is loaded or
+-- not.
+--
+-- Outside a bulk-VoxelManipulator operation, if the mapblock is not loaded, it
+-- is pulled into the server’s main map data cache and then accessed from
+-- there.
+--
+-- Inside a bulk-VoxelManipulator operation, the operation’s VM cache is used.
+function digiline:get_node_force(pos)
+ if vm_cache then
+ return vm_get_node(pos)
+ end
+ local node = minetest.get_node(pos)
+ if node.name == "ignore" then
+ -- Node is not currently loaded; use a VoxelManipulator to prime
+ -- the mapblock cache and try again.
+ minetest.get_voxel_manip(pos, pos)
+ node = minetest.get_node(pos)
+ end
+ return node
+end
diff --git a/framedglass/init.lua b/framedglass/init.lua
index 90bd6c5..d42a07b 100644
--- a/framedglass/init.lua
+++ b/framedglass/init.lua
@@ -100,16 +100,8 @@ function framedglass.color_on_punch(pos, node, puncher, pointed_thing)
local itemstack = puncher:get_wielded_item()
local itemname = itemstack:get_name()
- if not string.find(itemname, "dye:") then
- if minetest.registered_nodes[node.name] then
- local pos2 = select_node(pointed_thing)
- if pos2 and is_buildable_to(puncher, pos2) then
- minetest.set_node(pos2, { name = itemname })
- if not creative_mode then
- itemstack:take_item()
- end
- end
- end
+ if not string.find(itemname, "dye:")
+ and not string.find(itemname, "unifieddyes:") then
return itemstack
end
@@ -138,8 +130,6 @@ function framedglass.color_on_punch(pos, node, puncher, pointed_thing)
local inv = puncher:get_inventory()
local prevdye = "dye:"..oldcolor2
- print(oldcolor, oldcolor2, newcolor, newcolor2, prevdye)
-
if not (inv:contains_item("main", prevdye) and creative_mode) and minetest.registered_items[prevdye] then
if inv:room_for_item("main", prevdye) then
inv:add_item("main", prevdye)
diff --git a/mesecons_movestones/doc/movestone_sticky/recipe.png b/mesecons_movestones/doc/movestone_sticky/recipe.png
index bbf0a94..55338f4 100644
--- a/mesecons_movestones/doc/movestone_sticky/recipe.png
+++ b/mesecons_movestones/doc/movestone_sticky/recipe.png
Binary files differ
diff --git a/mesecons_movestones/init.lua b/mesecons_movestones/init.lua
index 9e9dce6..f4b6f58 100644
--- a/mesecons_movestones/init.lua
+++ b/mesecons_movestones/init.lua
@@ -145,7 +145,7 @@ mesecon.register_movestone("mesecons_movestones:sticky_movestone", {
}, true)
minetest.register_craft({
- output = "mesecons_movestones:sticky_movestone 2",
+ output = "mesecons_movestones:sticky_movestone",
recipe = {
{"mesecons_materials:glue", "mesecons_movestones:movestone", "mesecons_materials:glue"},
}
diff --git a/pipeworks/default_settings.txt b/pipeworks/default_settings.txt
index 41a3f7a..b1aa331 100644
--- a/pipeworks/default_settings.txt
+++ b/pipeworks/default_settings.txt
@@ -19,5 +19,6 @@ pipeworks.enable_mese_sand_tube = true
pipeworks.enable_one_way_tube = true
pipeworks.enable_priority_tube = true
pipeworks.enable_cyclic_mode = true
+pipeworks.drop_on_routing_fail = false
pipeworks.delete_item_on_clearobject = true
diff --git a/pipeworks/filter-injector.lua b/pipeworks/filter-injector.lua
index 3427894..6f3271f 100644
--- a/pipeworks/filter-injector.lua
+++ b/pipeworks/filter-injector.lua
@@ -175,6 +175,25 @@ local function punch_filter(data, filtpos, filtnode, msg)
local fromdef = minetest.registered_nodes[fromnode.name]
if not fromdef then return end
local fromtube = fromdef.tube
+ local input_special_cases = {
+ ["technic:mv_furnace"] = "dst",
+ ["technic:mv_furnace_active"] = "dst",
+ ["technic:mv_electric_furnace"] = "dst",
+ ["technic:mv_electric_furnace_active"] = "dst",
+ ["technic:mv_alloy_furnace"] = "dst",
+ ["technic:mv_alloy_furnace_active"] = "dst",
+ ["technic:mv_centrifuge"] = "dst",
+ ["technic:mv_centrifuge_active"] = "dst",
+ ["technic:mv_compressor"] = "dst",
+ ["technic:mv_compressor_active"] = "dst",
+ ["technic:mv_extractor"] = "dst",
+ ["technic:mv_extractor_active"] = "dst",
+ ["technic:mv_grinder"] = "dst",
+ ["technic:mv_grinder_active"] = "dst",
+ ["technic:tool_workshop"] = "src",
+ }
+
+ if fromtube then fromtube.input_inventory = input_special_cases[fromnode.name] or fromtube.input_inventory end
if not (fromtube and fromtube.input_inventory) then return end
local slotseq_mode
diff --git a/pipeworks/item_transport.lua b/pipeworks/item_transport.lua
index ee17611..ab1ce55 100644
--- a/pipeworks/item_transport.lua
+++ b/pipeworks/item_transport.lua
@@ -246,15 +246,24 @@ luaentity.register_entity("pipeworks:tubed_item", {
if moved then
local found_next, new_velocity = go_next(self.start_pos, velocity, stack) -- todo: color
+ local rev_vel = vector.multiply(velocity, -1)
+ local rev_dir = vector.direction(self.start_pos,vector.add(self.start_pos,rev_vel))
+ local rev_node = minetest.get_node(vector.round(vector.add(self.start_pos,rev_dir)))
+ local tube_present = minetest.get_item_group(rev_node.name,"tubedevice") == 1
if not found_next then
- drop_pos = minetest.find_node_near(vector.add(self.start_pos, velocity), 1, "air")
- if drop_pos then
- -- Using add_item instead of item_drop since this makes pipeworks backward
- -- compatible with Minetest 0.4.13.
- -- Using item_drop here makes Minetest 0.4.13 crash.
- minetest.add_item(drop_pos, stack)
- self:remove()
- return
+ if pipeworks.drop_on_routing_fail or not tube_present then
+ drop_pos = minetest.find_node_near(vector.add(self.start_pos, velocity), 1, "air")
+ if drop_pos then
+ -- Using add_item instead of item_drop since this makes pipeworks backward
+ -- compatible with Minetest 0.4.13.
+ -- Using item_drop here makes Minetest 0.4.13 crash.
+ minetest.add_item(drop_pos, stack)
+ self:remove()
+ return
+ end
+ else
+ velocity = vector.multiply(velocity, -1)
+ self:setvelocity(velocity)
end
end
diff --git a/quartz/depends.txt b/quartz/depends.txt
index 4451908..c2a3e1b 100644
--- a/quartz/depends.txt
+++ b/quartz/depends.txt
@@ -1,3 +1,4 @@
default
stairs
moreblocks?
+intllib? \ No newline at end of file
diff --git a/quartz/init.lua b/quartz/init.lua
index 63be0c5..c2870a7 100644
--- a/quartz/init.lua
+++ b/quartz/init.lua
@@ -1,16 +1,20 @@
local settings = Settings(minetest.get_modpath("quartz").."/settings.txt")
+-- internationalization boilerplate
+local MP = minetest.get_modpath(minetest.get_current_modname())
+local S, NS = dofile(MP.."/intllib.lua")
+
--
-- Item Registration
--
-- Quartz Crystal
minetest.register_craftitem("quartz:quartz_crystal", {
- description = "Quartz Crystal",
+ description = S("Quartz Crystal"),
inventory_image = "quartz_crystal_full.png",
})
minetest.register_craftitem("quartz:quartz_crystal_piece", {
- description = "Quartz Crystal Piece",
+ description = S("Quartz Crystal Piece"),
inventory_image = "quartz_crystal_piece.png",
})
@@ -20,7 +24,7 @@ minetest.register_craftitem("quartz:quartz_crystal_piece", {
-- Ore
minetest.register_node("quartz:quartz_ore", {
- description = "Quartz Ore",
+ description = S("Quartz Ore"),
tiles = {"default_stone.png^quartz_ore.png"},
groups = {cracky=3, stone=1},
drop = 'quartz:quartz_crystal',
@@ -40,7 +44,7 @@ minetest.register_ore({
-- Quartz Block
minetest.register_node("quartz:block", {
- description = "Quartz Block",
+ description = S("Quartz Block"),
tiles = {"quartz_block.png"},
groups = {cracky=3, oddly_breakable_by_hand=1},
sounds = default.node_sound_glass_defaults(),
@@ -48,7 +52,7 @@ minetest.register_node("quartz:block", {
-- Chiseled Quartz
minetest.register_node("quartz:chiseled", {
- description = "Chiseled Quartz",
+ description = S("Chiseled Quartz"),
tiles = {"quartz_chiseled.png"},
groups = {cracky=3, oddly_breakable_by_hand=1},
sounds = default.node_sound_glass_defaults(),
@@ -56,7 +60,7 @@ minetest.register_node("quartz:chiseled", {
-- Quartz Pillar
minetest.register_node("quartz:pillar", {
- description = "Quartz Pillar",
+ description = S("Quartz Pillar"),
paramtype2 = "facedir",
tiles = {"quartz_pillar_top.png", "quartz_pillar_top.png", "quartz_pillar_side.png"},
groups = {cracky=3, oddly_breakable_by_hand=1},
@@ -68,15 +72,15 @@ minetest.register_node("quartz:pillar", {
stairs.register_stair_and_slab("quartzblock", "quartz:block",
{cracky=3, oddly_breakable_by_hand=1},
{"quartz_block.png"},
- "Quartz stair",
- "Quartz slab",
+ S("Quartz stair"),
+ S("Quartz slab"),
default.node_sound_glass_defaults())
-stairs.register_slab("quartzstair", "quartz:pillar",
+stairs.register_stair_and_slab("quartzstair", "quartz:pillar",
{cracky=3, oddly_breakable_by_hand=1},
{"quartz_pillar_top.png", "quartz_pillar_top.png", "quartz_pillar_side.png"},
- "Quartz Pillar stair",
- "Quartz Pillar slab",
+ S("Quartz Pillar stair"),
+ S("Quartz Pillar slab"),
default.node_sound_glass_defaults())
--
diff --git a/quartz/intllib.lua b/quartz/intllib.lua
new file mode 100644
index 0000000..6669d72
--- /dev/null
+++ b/quartz/intllib.lua
@@ -0,0 +1,45 @@
+
+-- Fallback functions for when `intllib` is not installed.
+-- Code released under Unlicense <http://unlicense.org>.
+
+-- Get the latest version of this file at:
+-- https://raw.githubusercontent.com/minetest-mods/intllib/master/lib/intllib.lua
+
+local function format(str, ...)
+ local args = { ... }
+ local function repl(escape, open, num, close)
+ if escape == "" then
+ local replacement = tostring(args[tonumber(num)])
+ if open == "" then
+ replacement = replacement..close
+ end
+ return replacement
+ else
+ return "@"..open..num..close
+ end
+ end
+ return (str:gsub("(@?)@(%(?)(%d+)(%)?)", repl))
+end
+
+local gettext, ngettext
+if minetest.get_modpath("intllib") then
+ if intllib.make_gettext_pair then
+ -- New method using gettext.
+ gettext, ngettext = intllib.make_gettext_pair()
+ else
+ -- Old method using text files.
+ gettext = intllib.Getter()
+ end
+end
+
+-- Fill in missing functions.
+
+gettext = gettext or function(msgid, ...)
+ return format(msgid, ...)
+end
+
+ngettext = ngettext or function(msgid, msgid_plural, n, ...)
+ return format(n==1 and msgid or msgid_plural, ...)
+end
+
+return gettext, ngettext
diff --git a/quartz/locale/es.po b/quartz/locale/es.po
new file mode 100644
index 0000000..ee67dc3
--- /dev/null
+++ b/quartz/locale/es.po
@@ -0,0 +1,59 @@
+# Spanish translations for PACKAGE package
+# Traducciones al español para el paquete PACKAGE.
+# Copyright (C) 2017 THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# Diego Martínez <kaeza@users.noreply.github.com>, 2017.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-02-19 21:50-0700\n"
+"PO-Revision-Date: 2017-02-20 15:03-0300\n"
+"Last-Translator: Diego Martínez <kaeza@users.noreply.github.com>\n"
+"Language-Team: Spanish\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: es\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: init.lua:13
+msgid "Quartz Crystal"
+msgstr "Cristal de cuarzo"
+
+#: init.lua:17
+msgid "Quartz Crystal Piece"
+msgstr "Trozo de cristal de cuarzo"
+
+#: init.lua:27
+msgid "Quartz Ore"
+msgstr "Mineral de cuarzo"
+
+#: init.lua:47
+msgid "Quartz Block"
+msgstr "Bloque de cuarzo"
+
+#: init.lua:55
+msgid "Chiseled Quartz"
+msgstr "Cuarzo cincelado"
+
+#: init.lua:63
+msgid "Quartz Pillar"
+msgstr "Pilar de cuarzo"
+
+#: init.lua:75
+msgid "Quartz stair"
+msgstr "Escaleras de cuarzo"
+
+#: init.lua:76
+msgid "Quartz slab"
+msgstr "Losa de cuarzo"
+
+#: init.lua:82
+msgid "Quartz Pillar stair"
+msgstr "Escaleras de pilar de cuarzo"
+
+#: init.lua:83
+msgid "Quartz Pillar slab"
+msgstr "Losa de pilar de cuarzo"
diff --git a/quartz/locale/template.pot b/quartz/locale/template.pot
new file mode 100644
index 0000000..9c78dda
--- /dev/null
+++ b/quartz/locale/template.pot
@@ -0,0 +1,57 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-02-19 21:50-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: init.lua:13
+msgid "Quartz Crystal"
+msgstr ""
+
+#: init.lua:17
+msgid "Quartz Crystal Piece"
+msgstr ""
+
+#: init.lua:27
+msgid "Quartz Ore"
+msgstr ""
+
+#: init.lua:47
+msgid "Quartz Block"
+msgstr ""
+
+#: init.lua:55
+msgid "Chiseled Quartz"
+msgstr ""
+
+#: init.lua:63
+msgid "Quartz Pillar"
+msgstr ""
+
+#: init.lua:75
+msgid "Quartz stair"
+msgstr ""
+
+#: init.lua:76
+msgid "Quartz slab"
+msgstr ""
+
+#: init.lua:82
+msgid "Quartz Pillar stair"
+msgstr ""
+
+#: init.lua:83
+msgid "Quartz Pillar slab"
+msgstr ""
diff --git a/technic/machines/LV/water_mill.lua b/technic/machines/LV/water_mill.lua
index 56b3abd..acb778c 100644
--- a/technic/machines/LV/water_mill.lua
+++ b/technic/machines/LV/water_mill.lua
@@ -30,7 +30,7 @@ local run = function(pos, node)
local lava_nodes = 0
local production_level = 0
local eu_supply = 0
- local max_output = 50 * 45 -- four param2's at 15 makes 60, cap it lower for "overload protection"
+ local max_output = 35 * 45 -- four param2's at 15 makes 60, cap it lower for "overload protection"
-- (plus we want the gen to report 100% if three sides have full flow)
local positions = {
@@ -47,7 +47,7 @@ local run = function(pos, node)
end
end
- eu_supply = math.min(50 * water_flow, max_output)
+ eu_supply = math.min(35 * water_flow, max_output)
production_level = math.floor(100 * eu_supply / max_output)
if production_level > 0 then
diff --git a/unified_inventory/bags.lua b/unified_inventory/bags.lua
index 4af4ff5..3923dab 100644
--- a/unified_inventory/bags.lua
+++ b/unified_inventory/bags.lua
@@ -51,8 +51,11 @@ for i = 1, 4 do
elseif slots == 24 then
formspec = formspec.."background[0.06,0.99;7.92,7.52;ui_bags_lg_form.png]"
end
- formspec = (formspec.."background[6.06,0;0.92,0.92;ui_bags_trash.png]"
- .."list[detached:trash;main;6,0.1;1,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
+ formspec = (formspec.."background[6.06,0;0.92,0.92;ui_bags_trash.png]"
+ .."list[detached:trash;main;6,0.1;1,1;]")
+ end
return {formspec=formspec}
end,
})
diff --git a/unified_inventory/init.lua b/unified_inventory/init.lua
index 67bc56e..6929600 100644
--- a/unified_inventory/init.lua
+++ b/unified_inventory/init.lua
@@ -45,6 +45,9 @@ unified_inventory = {
-- "Lite" mode
lite_mode = minetest.setting_getbool("unified_inventory_lite"),
+
+ -- Trash enabled
+ trash_enabled = (minetest.setting_getbool("unified_inventory_trash") ~= false),
pagecols = 8,
pagerows = 10,
diff --git a/unified_inventory/register.lua b/unified_inventory/register.lua
index 127df7e..bd6a13b 100644
--- a/unified_inventory/register.lua
+++ b/unified_inventory/register.lua
@@ -175,8 +175,11 @@ unified_inventory.register_page("craft", {
formspec = formspec.."listcolors[#00000000;#00000000]"
formspec = formspec.."list[current_player;craftpreview;6,"..formspecy..";1,1;]"
formspec = formspec.."list[current_player;craft;2,"..formspecy..";3,3;]"
- formspec = formspec.."label[7,"..(formspecy + 1.5)..";" .. F("Trash:") .. "]"
- formspec = formspec.."list[detached:trash;main;7,"..(formspecy + 2)..";1,1;]"
+ 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("Trash:") .. "]"
+ formspec = formspec.."background[7,"..(formspecy + 2)..";1,1;ui_single_slot.png]"
+ formspec = formspec.."list[detached:trash;main;7,"..(formspecy + 2)..";1,1;]"
+ end
formspec = formspec.."listring[current_name;craft]"
formspec = formspec.."listring[current_player;main]"
if unified_inventory.is_creative(player_name) then
diff --git a/unified_inventory/settingtypes.txt b/unified_inventory/settingtypes.txt
index 1054fa9..910989f 100644
--- a/unified_inventory/settingtypes.txt
+++ b/unified_inventory/settingtypes.txt
@@ -5,3 +5,7 @@ unified_inventory_lite (Lite mode) bool false
#If enabled, bags will be made available which can be used to extend
#inventory storage size.
unified_inventory_bags (Enable bags) bool true
+
+#If enabled, the trash slot can be used by those without both creative
+#and the give privilege.
+unified_inventory_trash (Enable trash) bool true
diff --git a/unified_inventory/textures/ui_crafting_form.png b/unified_inventory/textures/ui_crafting_form.png
index 02d337d..8c980ac 100644
--- a/unified_inventory/textures/ui_crafting_form.png
+++ b/unified_inventory/textures/ui_crafting_form.png
Binary files differ
diff --git a/unifiedbricks/init.lua b/unifiedbricks/init.lua
index e3d37d7..a089a5c 100644
--- a/unifiedbricks/init.lua
+++ b/unifiedbricks/init.lua
@@ -113,6 +113,7 @@ minetest.register_node("unifiedbricks:brickblock", {
minetest.override_item("default:brick", {
ud_replacement_node = "unifiedbricks:brickblock",
+ palette = "unifieddyes_palette_extended.png",
groups = {cracky = 3, ud_param2_colorable = 1}
})
@@ -136,6 +137,7 @@ minetest.register_node("unifiedbricks:clayblock", {
minetest.override_item("default:clay", {
ud_replacement_node = "unifiedbricks:clayblock",
+ palette = "unifieddyes_palette_extended.png",
groups = {crumbly = 3, ud_param2_colorable = 1}
})