Add support for several other liquids from MCL and mods, and add liquid source registration
This commit is contained in:
parent
b4dfa3fef9
commit
df2b00da19
@ -167,10 +167,11 @@ end
|
||||
`liquidDesc`: a human readable liquid description, e.g. "Water"<br>
|
||||
`bucketItemName` : the name of the bucket that holds the liquid<br>
|
||||
`liquidTexture` : a single texture to use for the liquid<br>
|
||||
`sourceBlockName` : the name of the minetest liquid source node
|
||||
`optLight` : optional, if nil assumed 0. How much a non-empty reservoir will glow
|
||||
`emptyBucketName` : optional, if nil, bucket:bucket_empty will be used - the "empty" container to use<br>
|
||||
]]
|
||||
function logistica.register_reservoir(liquidName, liquidDesc, bucketItemName, liquidTexture, optLight, optEmptyBucketName)
|
||||
function logistica.register_reservoir(liquidName, liquidDesc, bucketItemName, liquidTexture, sourceNodeName, optLight, optEmptyBucketName)
|
||||
local lname = string.lower(liquidName:gsub(" ", "_"))
|
||||
|
||||
for _, variantName in ipairs(variants) do
|
||||
@ -186,6 +187,6 @@ function logistica.register_reservoir(liquidName, liquidDesc, bucketItemName, li
|
||||
minetest.register_node(nodeName, def)
|
||||
logistica.reservoirs[nodeName] = true
|
||||
|
||||
logistica.reservoir_register_names(lname, bucketItemName, optEmptyBucketName, liquidDesc, liquidTexture)
|
||||
logistica.reservoir_register_names(lname, bucketItemName, optEmptyBucketName, liquidDesc, liquidTexture, sourceNodeName)
|
||||
end
|
||||
end
|
||||
|
@ -5,6 +5,8 @@ local NAME_TO_BUCKET = {}
|
||||
local NAME_TO_EMPTY_BUCKET = {}
|
||||
local NAME_TO_DESC = {}
|
||||
local NAME_TO_TEXTURE = {}
|
||||
local NAME_TO_SOURCE = {}
|
||||
local SOURCE_TO_NAME = {}
|
||||
|
||||
local EMPTY_BUCKET = logistica.itemstrings.empty_bucket
|
||||
local EMPTY_SUFFIX = "_empty"
|
||||
@ -76,7 +78,7 @@ function logistica.reservoir_get_description(currBuckets, maxBuckets, liquidName
|
||||
return strDescription.."\n"..getStrContains(currBuckets, maxBuckets, liquidName)
|
||||
end
|
||||
|
||||
function logistica.reservoir_register_names(liquidName, bucketName, emptyBucketName, liquidDesc, liquidTexture)
|
||||
function logistica.reservoir_register_names(liquidName, bucketName, emptyBucketName, liquidDesc, liquidTexture, sourceNodeName)
|
||||
BUCKET_TO_NAME[bucketName] = liquidName
|
||||
NAME_TO_BUCKET[liquidName] = bucketName
|
||||
if emptyBucketName then
|
||||
@ -84,6 +86,10 @@ function logistica.reservoir_register_names(liquidName, bucketName, emptyBucketN
|
||||
end
|
||||
NAME_TO_DESC[liquidName] = liquidDesc
|
||||
NAME_TO_TEXTURE[liquidName] = liquidTexture
|
||||
if sourceNodeName then
|
||||
NAME_TO_SOURCE[liquidName] = sourceNodeName
|
||||
SOURCE_TO_NAME[sourceNodeName] = liquidName
|
||||
end
|
||||
end
|
||||
|
||||
-- returns nil if item had no effect<br>
|
||||
|
2
mod.conf
2
mod.conf
@ -1,5 +1,5 @@
|
||||
name = logistica
|
||||
optional_depends = default, bucket, i3, mcl_core, mcl_buckets, unified_inventory
|
||||
optional_depends = default, bucket, i3, mcl_core, mcl_buckets, unified_inventory, mcl_mobitems, animalia, ethereal
|
||||
min_minetest_version = 5.4.0
|
||||
author = ZenonSeth
|
||||
description = On-demand item transportation
|
||||
|
@ -254,9 +254,19 @@ elseif mcl2 then
|
||||
river_water_texture = "mcl_core_water_source_animation.png^[sheet:1x16:0,0^[multiply:#0084FF"
|
||||
end
|
||||
|
||||
logistica.register_reservoir("lava", "Lava", itemstrings.lava_bucket, lava_texture, 8)
|
||||
logistica.register_reservoir("water", "Water", itemstrings.water_bucket, water_texture)
|
||||
logistica.register_reservoir("river_water", "River Water", itemstrings.river_water_bucket, river_water_texture)
|
||||
logistica.register_reservoir("lava", "Lava", itemstrings.lava_bucket, lava_texture, itemstrings.lava_source, 8)
|
||||
logistica.register_reservoir("water", "Water", itemstrings.water_bucket, water_texture, itemstrings.water_source)
|
||||
logistica.register_reservoir("river_water", "River Water", itemstrings.river_water_bucket, river_water_texture, itemstrings.river_water_source)
|
||||
-- milk buckets
|
||||
if minetest.registered_items["mcl_mobitems:milk_bucket"] then
|
||||
logistica.register_reservoir("milk", "Milk", "mcl_mobitems:milk_bucket", "logistica_milk_liquid.png")
|
||||
end
|
||||
if minetest.registered_items["animalia:bucket_milk"] then
|
||||
logistica.register_reservoir("milk", "Milk", "animalia:bucket_milk", "logistica_milk_liquid.png")
|
||||
end
|
||||
if minetest.registered_items["ethereal:bucket_cactus"] then
|
||||
logistica.register_reservoir("cactus_pulp", "Cactus Pulp", "ethereal:bucket_cactus", "logistica_milk_liquid.png^[colorize:#697600:227")
|
||||
end
|
||||
|
||||
--------------------------------
|
||||
-- Passive Supply Chest
|
||||
|
BIN
textures/logistica_milk_liquid.png
Normal file
BIN
textures/logistica_milk_liquid.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.0 KiB |
@ -2,6 +2,12 @@ local mcl = minetest.get_modpath("mcl_core")
|
||||
|
||||
logistica.sound_mod = mcl and mcl_sounds or default
|
||||
|
||||
local function get_mcl_river_water_source()
|
||||
if minetest.registered_nodes["mcl_core:river_water_source"] then return "mcl_core:river_water_source"
|
||||
elseif minetest.registered_nodes["mclx_core:river_water_source"] then return "mclx_core:river_water_source"
|
||||
else return "" end
|
||||
end
|
||||
|
||||
-- Returns a player's inventory formspec with the correct width and hotbar position for the current game
|
||||
function logistica.player_inv_formspec(x,y)
|
||||
local formspec
|
||||
@ -41,4 +47,7 @@ logistica.itemstrings = {
|
||||
ice = mcl and "mcl_core:ice" or "default:ice",
|
||||
glass = mcl and "mcl_core:glass" or "default:glass",
|
||||
cobble = mcl and "mcl_core:cobble" or "default:cobble",
|
||||
water_source = mcl and "mcl_core:water_source" or "default:water_source",
|
||||
river_water_source = mcl and get_mcl_river_water_source() or "default:river_water_source",
|
||||
lava_source = mcl and "mcl_core:lava_source" or "default:lava_source",
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user