304 lines
9.2 KiB
Lua
304 lines
9.2 KiB
Lua
|
|
-------------------
|
|
-- Virtual Nodes --
|
|
-------------------
|
|
|
|
-- These nodes are used as "fluids"
|
|
-- They do not actually exist as nodes that should be placed.
|
|
|
|
minetest.register_node("elepower_nuclear:tritium", {
|
|
description = "Tritium Gas",
|
|
groups = {not_in_creative_inventory = 1, oddly_breakable_by_hand = 1, gas = 1},
|
|
tiles = {"elenuclear_gas.png"},
|
|
})
|
|
|
|
minetest.register_node("elepower_nuclear:deuterium", {
|
|
description = "Deuterium Gas",
|
|
groups = {not_in_creative_inventory = 1, oddly_breakable_by_hand = 1, gas = 1},
|
|
tiles = {"elenuclear_gas.png"},
|
|
})
|
|
|
|
minetest.register_node("elepower_nuclear:helium", {
|
|
description = "Helium Gas",
|
|
groups = {not_in_creative_inventory = 1, oddly_breakable_by_hand = 1, gas = 1},
|
|
tiles = {"elenuclear_helium.png"},
|
|
})
|
|
|
|
minetest.register_node("elepower_nuclear:helium_plasma", {
|
|
description = "Helium Plasma\nSuperheated",
|
|
groups = {not_in_creative_inventory = 1, oddly_breakable_by_hand = 1, gas = 1},
|
|
tiles = {"elenuclear_helium_plasma.png"},
|
|
})
|
|
|
|
ele.register_gas(nil, "Tritium", "elepower_nuclear:tritium")
|
|
ele.register_gas(nil, "Deuterium", "elepower_nuclear:deuterium")
|
|
ele.register_gas("elepower_nuclear:helium_container", "Helium",
|
|
"elepower_nuclear:helium", "elepower_gas_helium.png")
|
|
ele.register_gas(nil, "Helium Plasma", "elepower_nuclear:helium_plasma")
|
|
|
|
-------------
|
|
-- Liquids --
|
|
-------------
|
|
|
|
-- Heavy Water
|
|
minetest.register_node("elepower_nuclear:heavy_water_source", {
|
|
description = "Heavy Water Source",
|
|
drawtype = "liquid",
|
|
tiles = {
|
|
{
|
|
name = "elenuclear_heavy_water_source_animated.png",
|
|
animation = {
|
|
type = "vertical_frames",
|
|
aspect_w = 16,
|
|
aspect_h = 16,
|
|
length = 2.0,
|
|
},
|
|
},
|
|
},
|
|
special_tiles = {
|
|
{
|
|
name = "elenuclear_heavy_water_source_animated.png",
|
|
animation = {
|
|
type = "vertical_frames",
|
|
aspect_w = 16,
|
|
aspect_h = 16,
|
|
length = 2.0,
|
|
},
|
|
backface_culling = false,
|
|
},
|
|
},
|
|
alpha = 160,
|
|
paramtype = "light",
|
|
walkable = false,
|
|
pointable = false,
|
|
diggable = false,
|
|
buildable_to = true,
|
|
is_ground_content = false,
|
|
drop = "",
|
|
drowning = 1,
|
|
liquidtype = "source",
|
|
liquid_alternative_flowing = "elepower_nuclear:heavy_water_flowing",
|
|
liquid_alternative_source = "elepower_nuclear:heavy_water_source",
|
|
liquid_viscosity = 4,
|
|
post_effect_color = {a = 103, r = 13, g = 69, b = 121},
|
|
groups = {heavy_water = 3, liquid = 3, puts_out_fire = 1, cools_lava = 1},
|
|
sounds = default.node_sound_water_defaults(),
|
|
})
|
|
|
|
minetest.register_node("elepower_nuclear:heavy_water_flowing", {
|
|
description = "Flowing Heavy Water",
|
|
drawtype = "flowingliquid",
|
|
tiles = {"elenuclear_heavy_water.png"},
|
|
special_tiles = {
|
|
{
|
|
name = "elenuclear_heavy_water_flowing_animated.png",
|
|
backface_culling = false,
|
|
animation = {
|
|
type = "vertical_frames",
|
|
aspect_w = 16,
|
|
aspect_h = 16,
|
|
length = 0.8,
|
|
},
|
|
},
|
|
{
|
|
name = "elenuclear_heavy_water_flowing_animated.png",
|
|
backface_culling = true,
|
|
animation = {
|
|
type = "vertical_frames",
|
|
aspect_w = 16,
|
|
aspect_h = 16,
|
|
length = 0.8,
|
|
},
|
|
},
|
|
},
|
|
alpha = 160,
|
|
paramtype = "light",
|
|
paramtype2 = "flowingliquid",
|
|
walkable = false,
|
|
pointable = false,
|
|
diggable = false,
|
|
buildable_to = true,
|
|
is_ground_content = false,
|
|
drop = "",
|
|
drowning = 1,
|
|
liquidtype = "flowing",
|
|
liquid_alternative_flowing = "elepower_nuclear:heavy_water_flowing",
|
|
liquid_alternative_source = "elepower_nuclear:heavy_water_source",
|
|
liquid_viscosity = 4,
|
|
post_effect_color = {a = 103, r = 13, g = 69, b = 121},
|
|
groups = {heavy_water = 3, liquid = 3, puts_out_fire = 1,
|
|
not_in_creative_inventory = 1, cools_lava = 1},
|
|
sounds = default.node_sound_water_defaults(),
|
|
})
|
|
|
|
-- Cold coolant
|
|
|
|
minetest.register_node("elepower_nuclear:coolant_source", {
|
|
description = "Cold Coolant Source",
|
|
drawtype = "liquid",
|
|
tiles = {"elenuclear_cold_coolant.png"},
|
|
alpha = 200,
|
|
paramtype = "light",
|
|
walkable = false,
|
|
pointable = false,
|
|
diggable = false,
|
|
buildable_to = true,
|
|
is_ground_content = false,
|
|
drop = "",
|
|
drowning = 1,
|
|
liquidtype = "source",
|
|
liquid_alternative_source = "elepower_nuclear:coolant_source",
|
|
liquid_alternative_flowing = "elepower_nuclear:coolant_flowing",
|
|
liquid_viscosity = 2,
|
|
post_effect_color = {a = 128, r = 36, g = 150, b = 255},
|
|
groups = {liquid = 3, coolant = 1},
|
|
sounds = default.node_sound_water_defaults(),
|
|
})
|
|
|
|
minetest.register_node("elepower_nuclear:coolant_flowing", {
|
|
description = "Cold Coolant Flowing",
|
|
drawtype = "flowingliquid",
|
|
tiles = {"elenuclear_cold_coolant.png"},
|
|
special_tiles = {"elenuclear_cold_coolant.png", "elenuclear_cold_coolant.png"},
|
|
alpha = 200,
|
|
paramtype = "light",
|
|
paramtype2 = "flowingliquid",
|
|
walkable = false,
|
|
pointable = false,
|
|
diggable = false,
|
|
buildable_to = true,
|
|
is_ground_content = false,
|
|
drop = "",
|
|
drowning = 1,
|
|
liquidtype = "flowing",
|
|
liquid_alternative_flowing = "elepower_nuclear:coolant_flowing",
|
|
liquid_alternative_source = "elepower_nuclear:coolant_source",
|
|
liquid_viscosity = 2,
|
|
post_effect_color = {a = 128, r = 36, g = 150, b = 255},
|
|
groups = {coolant = 3, liquid = 3, not_in_creative_inventory = 1},
|
|
sounds = default.node_sound_water_defaults(),
|
|
})
|
|
|
|
-- Hot coolant
|
|
|
|
minetest.register_node("elepower_nuclear:hot_coolant_source", {
|
|
description = "Hot Coolant Source",
|
|
drawtype = "liquid",
|
|
tiles = {"elenuclear_hot_coolant.png"},
|
|
alpha = 200,
|
|
paramtype = "light",
|
|
walkable = false,
|
|
pointable = false,
|
|
diggable = false,
|
|
buildable_to = true,
|
|
is_ground_content = false,
|
|
damage_per_second = 4 * 2,
|
|
drop = "",
|
|
drowning = 1,
|
|
liquidtype = "source",
|
|
liquid_alternative_source = "elepower_nuclear:hot_coolant_source",
|
|
liquid_alternative_flowing = "elepower_nuclear:hot_coolant_flowing",
|
|
liquid_viscosity = 2,
|
|
post_effect_color = {a = 128, r = 136, g = 100, b = 158},
|
|
groups = {liquid = 3, coolant = 1, hot = 1},
|
|
sounds = default.node_sound_water_defaults(),
|
|
})
|
|
|
|
minetest.register_node("elepower_nuclear:hot_coolant_flowing", {
|
|
description = "Hot Coolant Flowing",
|
|
drawtype = "flowingliquid",
|
|
tiles = {"elenuclear_hot_coolant.png"},
|
|
special_tiles = {"elenuclear_hot_coolant.png", "elenuclear_hot_coolant.png"},
|
|
alpha = 200,
|
|
paramtype = "light",
|
|
paramtype2 = "flowingliquid",
|
|
walkable = false,
|
|
pointable = false,
|
|
diggable = false,
|
|
buildable_to = true,
|
|
is_ground_content = false,
|
|
damage_per_second = 4 * 2,
|
|
drop = "",
|
|
drowning = 1,
|
|
liquidtype = "flowing",
|
|
liquid_alternative_flowing = "elepower_nuclear:hot_coolant_flowing",
|
|
liquid_alternative_source = "elepower_nuclear:hot_coolant_source",
|
|
liquid_viscosity = 2,
|
|
post_effect_color = {a = 128, r = 136, g = 100, b = 158},
|
|
groups = {coolant = 3, liquid = 3, not_in_creative_inventory = 1, hot = 1},
|
|
sounds = default.node_sound_water_defaults(),
|
|
})
|
|
|
|
-- Brine
|
|
|
|
minetest.register_node("elepower_nuclear:brine_source", {
|
|
description = "Brine Source",
|
|
drawtype = "liquid",
|
|
tiles = {"elenuclear_brine.png"},
|
|
special_tiles = {"elenuclear_brine.png"},
|
|
alpha = 240,
|
|
paramtype = "light",
|
|
walkable = false,
|
|
pointable = false,
|
|
diggable = false,
|
|
buildable_to = true,
|
|
is_ground_content = false,
|
|
drop = "",
|
|
drowning = 1,
|
|
liquidtype = "source",
|
|
liquid_alternative_flowing = "elepower_nuclear:brine_flowing",
|
|
liquid_alternative_source = "elepower_nuclear:brine_source",
|
|
liquid_viscosity = 7,
|
|
post_effect_color = {a = 200, r = 215, g = 221, b = 187},
|
|
groups = {brine = 3, saline = 1, liquid = 3, puts_out_fire = 1, cools_lava = 1},
|
|
sounds = default.node_sound_water_defaults(),
|
|
})
|
|
|
|
minetest.register_node("elepower_nuclear:brine_flowing", {
|
|
description = "Flowing Brine",
|
|
drawtype = "flowingliquid",
|
|
tiles = {"elenuclear_brine.png"},
|
|
special_tiles = {"elenuclear_brine.png", "elenuclear_brine.png"},
|
|
alpha = 240,
|
|
paramtype = "light",
|
|
paramtype2 = "flowingliquid",
|
|
walkable = false,
|
|
pointable = false,
|
|
diggable = false,
|
|
buildable_to = true,
|
|
is_ground_content = false,
|
|
drop = "",
|
|
drowning = 1,
|
|
liquidtype = "flowing",
|
|
liquid_alternative_flowing = "elepower_nuclear:brine_flowing",
|
|
liquid_alternative_source = "elepower_nuclear:brine_source",
|
|
liquid_viscosity = 7,
|
|
post_effect_color = {a = 200, r = 215, g = 221, b = 187},
|
|
groups = {brine = 3, saline = 1, liquid = 3, puts_out_fire = 1,
|
|
not_in_creative_inventory = 1, cools_lava = 1},
|
|
sounds = default.node_sound_water_defaults(),
|
|
})
|
|
|
|
if minetest.get_modpath("bucket") ~= nil then
|
|
bucket.register_liquid("elepower_nuclear:coolant_source", "elepower_nuclear:hot_coolant_flowing",
|
|
"elepower_nuclear:bucket_coolant", "#2497ff", "Coolant (Cold)")
|
|
|
|
bucket.register_liquid("elepower_nuclear:hot_coolant_source", "elepower_nuclear:hot_coolant_flowing",
|
|
"elepower_nuclear:bucket_hot_coolant", "#88649e", "Coolant (Hot)")
|
|
|
|
bucket.register_liquid("elepower_nuclear:heavy_water_source", "elepower_nuclear:heavy_water_flowing",
|
|
"elepower_nuclear:bucket_heavy_water", "#0d4579", "Heavy Water Bucket")
|
|
|
|
bucket.register_liquid("elepower_nuclear:brine_source", "elepower_nuclear:brine_flowing",
|
|
"elepower_nuclear:bucket_heavy_water", "#d7ddbb", "Brine Bucket")
|
|
|
|
fluid_tanks.register_tank(":elepower_dynamics:portable_tank", {
|
|
description = "Portable Tank",
|
|
capacity = 8000,
|
|
accepts = true,
|
|
tiles = {
|
|
"elepower_tank_base.png", "elepower_tank_side.png", "elepower_tank_base.png^elepower_power_port.png",
|
|
}
|
|
})
|
|
end
|