123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- -- LUALOCALS < ---------------------------------------------------------
- local minetest, nodecore
- = minetest, nodecore
- -- LUALOCALS > ---------------------------------------------------------
- local modname = minetest.get_current_modname()
- function nodecore.register_concrete(def)
- def = nodecore.underride(def, {
- name = def.description:lower():gsub("%W", "_"),
- groups_powder = {
- falling_node = 1,
- falling_repose = 1,
- concrete_powder = 1
- },
- groups_wet = {concrete_wet = 1},
- swim_color = {a = 240, r = 32, g = 32, b = 32}
- })
- local basename = modname .. ":" .. def.name
- def.basename = basename
- if def.register_dry ~= false then
- minetest.register_node(":" .. basename, {
- description = def.description,
- tiles = {def.tile_powder},
- groups = def.groups_powder,
- crush_damage = 1,
- sounds = nodecore.sounds(def.sound),
- concrete_def = def
- })
- end
- if def.register_wet ~= false then
- local wetdef = {
- description = "Wet " .. def.description,
- tiles = {def.tile_wet},
- special_tiles = {def.tile_wet, def.tile_wet},
- paramtype = "light",
- liquid_viscosity = 15,
- liquid_renewable = false,
- liquid_range = 1,
- liquid_alternative_flowing = basename .. "_wet_flowing",
- liquid_alternative_source = basename .. "_wet_source",
- walkable = false,
- drowning = 2,
- post_effect_color = def.swim_color,
- groups = def.groups_wet,
- sounds = nodecore.sounds(def.sound),
- concrete_def = def
- }
- minetest.register_node(":" .. basename .. "_wet_source", nodecore.underride({
- liquidtype = "source",
- groups = {concrete_source = 1}
- }, wetdef))
- minetest.register_node(basename .. "_wet_flowing", nodecore.underride({
- drawtype = "flowingliquid",
- liquidtype = "flowing",
- paramtype2 = "flowingliquid",
- groups = {concrete_flow = 1}
- }, wetdef))
- end
- if def.craft_mix ~= false then
- nodecore.register_craft({
- label = "mix " .. def.name .. " (fail)",
- action = "pummel",
- priority = 2,
- toolgroups = {thumpy = 1},
- normal = {y = 1},
- indexkeys = def.craft_from_keys,
- nodes = {
- {
- match = def.craft_from
- },
- {
- x = 1,
- y = -1,
- match = {buildable_to = true}
- },
- {
- y = -1,
- match = "nc_fire:ash",
- replace = "air"
- }
- },
- before = function(pos)
- nodecore.item_disperse(pos, "nc_fire:lump_ash", 8)
- end
- })
- nodecore.register_craft({
- label = "mix " .. def.name,
- action = "pummel",
- priority = 1,
- toolgroups = {thumpy = 1},
- normal = {y = 1},
- indexkeys = def.craft_from_keys,
- nodes = {
- {
- match = def.craft_from,
- replace = "air"
- },
- {
- y = -1,
- match = "nc_fire:ash",
- replace = basename
- }
- }
- })
- end
- end
|