Make logistica machines non-movable by pistons

This commit is contained in:
Zenon Seth 2024-04-08 10:59:37 +01:00
parent b12a7efd02
commit 140db80062
25 changed files with 40 additions and 4 deletions

View File

@ -111,6 +111,7 @@ function logistica.register_access_point(desc, name, tiles)
}
minetest.register_node(access_point_name, def)
logistica.register_non_pushable(access_point_name)
local def_disabled = table.copy(def)
local tiles_disabled = {}

View File

@ -156,6 +156,7 @@ function logistica.register_bucket_emptier(desc, name, tiles)
}
minetest.register_node(emptier_name, def)
logistica.register_non_pushable(emptier_name)
local def_disabled = table.copy(def)
local tiles_disabled = {}

View File

@ -165,6 +165,7 @@ function logistica.register_bucket_filler(desc, name, tiles)
}
minetest.register_node(filler_name, def)
logistica.register_non_pushable(filler_name)
local def_disabled = table.copy(def)
local tiles_disabled = {}

View File

@ -57,6 +57,7 @@ function logistica.register_cable(desc, name, customNodeBox, customTiles, custom
end
minetest.register_node(cable_name, def)
logistica.register_non_pushable(cable_name)
local def_broken = {}
for k, v in pairs(def) do def_broken[k] = v end

View File

@ -87,6 +87,7 @@ function logistica.register_cable_toggleable(desc, name, tilesOn, tilesOff)
end
minetest.register_node(cable_name, def)
logistica.register_non_pushable(cable_name)
local def_broken = table.copy(def)
def_broken.tiles = logistica.table_map(tiles, function(s) return s.."^logistica_broken.png" end)

View File

@ -209,6 +209,7 @@ function logistica.register_cobble_generator_supplier(desc, name, tiles)
}
minetest.register_node(supplier_name, def)
logistica.register_non_pushable(supplier_name)
local def_disabled = table.copy(def)
local tiles_disabled = {}

View File

@ -105,6 +105,7 @@ function logistica.register_controller(name, def)
def._mcl_blast_resistance = 10
minetest.register_node(controller_name, def)
logistica.register_non_pushable(controller_name)
local def_disabled = table.copy(def)
local tiles_disabled = def.tiles_disabled

View File

@ -171,6 +171,8 @@ function logistica.register_autocrafter(desc, name, tiles)
_mcl_blast_resistance = 15
}
minetest.register_node("logistica:"..lname, def)
local autocrafterName = "logistica:"..lname
minetest.register_node(autocrafterName, def)
logistica.register_non_pushable(autocrafterName)
end

View File

@ -185,6 +185,7 @@ function logistica.register_crafting_supplier(desc, name, tiles)
}
minetest.register_node(supplier_name, def)
logistica.register_non_pushable(supplier_name)
local def_disabled = table.copy(def)
local tiles_disabled = {}

View File

@ -167,6 +167,7 @@ function logistica.register_injector(description, name, transferRate, tiles)
}
minetest.register_node(injectorName, def)
logistica.register_non_pushable(injectorName)
local def_disabled = table.copy(def)
local tiles_disabled = {}

View File

@ -135,6 +135,7 @@ function logistica.register_item_storage(desc, name, tiles)
}
minetest.register_node(item_storage_name, def)
logistica.register_non_pushable(item_storage_name)
local def_disabled = table.copy(def)
local tiles_disabled = {}

View File

@ -383,7 +383,9 @@ function logistica.register_lava_furnace(desc, name, lavaCapacity, combinedTiles
_mcl_blast_resistance = 15
}
minetest.register_node("logistica:"..lname, def)
local lavaFurnaceName = "logistica:"..lname
minetest.register_node(lavaFurnaceName, def)
logistica.register_non_pushable(lavaFurnaceName)
local defActive = table.copy(def)
@ -391,6 +393,6 @@ function logistica.register_lava_furnace(desc, name, lavaCapacity, combinedTiles
defActive.groups.not_in_creative_inventory = 1
defActive.light_source = 9
minetest.register_node("logistica:"..lname.."_active", defActive)
minetest.register_node(lavaFurnaceName.."_active", defActive)
end

View File

@ -155,6 +155,7 @@ function logistica.register_lava_furnace_fueler(description, name, tiles)
}
minetest.register_node(fuelerName, def)
logistica.register_non_pushable(fuelerName)
local def_disabled = table.copy(def)
local tiles_disabled = {}

View File

@ -410,6 +410,7 @@ function logistica.register_mass_storage(simpleName, description, numSlots, numI
}
minetest.register_node(storageName, def)
logistica.register_non_pushable(storageName)
local def_disabled = {}
for k, v in pairs(def) do def_disabled[k] = v end

View File

@ -171,12 +171,14 @@ function logistica.register_pump(desc, name, tiles, tilesOn)
}
minetest.register_node(pump_name, def)
logistica.register_non_pushable(pump_name)
local def_on = table.copy(def)
def_on.tiles = tilesOn
def_on.groups.not_in_creative_inventory = 1
minetest.register_node(pump_name_on, def_on)
logistica.register_non_pushable(pump_name_on)
local def_disabled = table.copy(def)
local tiles_disabled = {}

View File

@ -168,6 +168,7 @@ function logistica.register_requester(description, name, transferRate, tiles)
}
minetest.register_node(requester_name, def)
logistica.register_non_pushable(requester_name)
local def_disabled = table.copy(def)
local tiles_disabled = {}

View File

@ -159,6 +159,7 @@ for _, variantName in ipairs(variants) do
def.drops = nodeName
def.logistica.liquidName = LIQUID_NONE
minetest.register_node(nodeName, def)
logistica.register_non_pushable(nodeName)
logistica.GROUPS.reservoirs.register(nodeName)
end
@ -185,6 +186,7 @@ function logistica.register_reservoir(liquidName, liquidDesc, bucketItemName, li
def.inventory_image = make_inv_image(variantName, liquidTexture)
minetest.register_node(nodeName, def)
logistica.register_non_pushable(nodeName)
logistica.GROUPS.reservoirs.register(nodeName)
logistica.reservoir_register_names(lname, bucketItemName, optEmptyBucketName, liquidDesc, liquidTexture, sourceNodeName)

View File

@ -137,6 +137,7 @@ function logistica.register_supplier(desc, name, inventorySize, tiles)
}
minetest.register_node(supplier_name, def)
logistica.register_non_pushable(supplier_name)
local def_disabled = table.copy(def)
local tiles_disabled = {}

View File

@ -62,4 +62,5 @@ function logistica.register_synchronizer(description, name, tiles)
}
minetest.register_node(syncName, def)
logistica.register_non_pushable(syncName)
end

View File

@ -97,6 +97,7 @@ function logistica.register_trashcan(desc, name, tiles)
}
minetest.register_node(trashcan_name, def)
logistica.register_non_pushable(trashcan_name)
local def_disabled = table.copy(def)
local tiles_disabled = {}

View File

@ -139,6 +139,7 @@ function logistica.register_vaccuum_chest(desc, name, inventorySize, tiles)
}
minetest.register_node(vaccuum_name, def)
logistica.register_non_pushable(vaccuum_name)
local def_disabled = table.copy(def)
local tiles_disabled = {}

View File

@ -301,6 +301,7 @@ function logistica.insert_item_in_network(itemstack, networkId, dryRun, ignoreTr
end
for hash, _ in pairs(storages) do
local pos = h2p(hash)
logistica.load_position(pos)
local inv = get_meta(pos):get_inventory()
local remainingStack = addFunc(pos, inv, workingStack, dryRun)
if remainingStack:is_empty() then return 0 end -- we took all items

View File

@ -1,5 +1,5 @@
name = logistica
optional_depends = default, bucket, i3, mcl_core, mcl_buckets, unified_inventory, mcl_mobitems, animalia, ethereal
optional_depends = default, bucket, i3, mcl_core, mcl_buckets, unified_inventory, mcl_mobitems, animalia, ethereal, mesecons_mvps
min_minetest_version = 5.4.0
author = ZenonSeth
description = On-demand Item Transportation + Powerful Item and Liquid Storage

9
util/compat_mesecons.lua Normal file
View File

@ -0,0 +1,9 @@
local mesecon_pushers = minetest.get_modpath("mesecons_mvps")
local register_stopper = function(name, func) end
if mesecon_pushers then register_stopper = mesecon.register_mvps_stopper end
function logistica.register_non_pushable(nodeName)
register_stopper(nodeName)
end

View File

@ -1,6 +1,7 @@
local path = logistica.MODPATH.."/util"
dofile(path.."/compat_mcl.lua")
dofile(path.."/compat_mesecons.lua")
dofile(path.."/settings.lua")
dofile(path.."/common.lua")
dofile(path.."/rotations.lua")