Klein stars work now

This commit is contained in:
ThePython 2024-02-12 17:20:48 -08:00
parent 255af53e15
commit 4f7c081a32
8 changed files with 98 additions and 28 deletions

View File

@ -29,24 +29,6 @@ minetest.register_craftitem("exchangeclone:aeternalis_fuel", {
groups = { craftitem=1},
})
minetest.register_craft({
type = "fuel",
recipe = "exchangeclone:alchemical_coal",
burntime = 320,
})
minetest.register_craft({
type = "fuel",
recipe = "exchangeclone:mobius_fuel",
burntime = 1280,
})
minetest.register_craft({
type = "fuel",
recipe = "exchangeclone:aeternalis_fuel",
burntime = 5120,
})
minetest.register_node("exchangeclone:alchemical_coal_block", {
description = S("Alchemical Coal Block"),
tiles = {"exchangeclone_alchemical_coal_block.png"},
@ -77,6 +59,84 @@ minetest.register_node("exchangeclone:aeternalis_fuel_block", {
_mcl_hardness = 8,
})
minetest.register_craft({
type = "fuel",
recipe = "exchangeclone:alchemical_coal",
burntime = 320,
})
minetest.register_craft({
type = "fuel",
recipe = "exchangeclone:mobius_fuel",
burntime = 1280,
})
minetest.register_craft({
type = "fuel",
recipe = "exchangeclone:aeternalis_fuel",
burntime = 5120,
})
minetest.register_craft({
type = "fuel",
recipe = "exchangeclone:alchemical_coal_block",
burntime = 3200,
})
minetest.register_craft({
type = "fuel",
recipe = "exchangeclone:mobius_fuel_block",
burntime = 12800,
})
minetest.register_craft({
type = "fuel",
recipe = "exchangeclone:aeternalis_fuel_block",
burntime = 51200,
})
minetest.register_craft({
output = "exchangeclone:alchemical_coal_block",
recipe = {
{"exchangeclone:alchemical_coal","exchangeclone:alchemical_coal","exchangeclone:alchemical_coal"},
{"exchangeclone:alchemical_coal","exchangeclone:alchemical_coal","exchangeclone:alchemical_coal"},
{"exchangeclone:alchemical_coal","exchangeclone:alchemical_coal","exchangeclone:alchemical_coal"}
}
})
minetest.register_craft({
output = "exchangeclone:alchemical_coal 9",
recipe = {{"exchangeclone:alchemical_coal_block"}}
})
minetest.register_craft({
output = "exchangeclone:aeternalis_fuel_block",
recipe = {
{"exchangeclone:aeternalis_fuel","exchangeclone:aeternalis_fuel","exchangeclone:aeternalis_fuel"},
{"exchangeclone:aeternalis_fuel","exchangeclone:aeternalis_fuel","exchangeclone:aeternalis_fuel"},
{"exchangeclone:aeternalis_fuel","exchangeclone:aeternalis_fuel","exchangeclone:aeternalis_fuel"}
}
})
minetest.register_craft({
output = "exchangeclone:aeternalis_fuel 9",
recipe = {{"exchangeclone:aeternalis_fuel_block"}}
})
minetest.register_craft({
output = "exchangeclone:mobius_fuel_block",
recipe = {
{"exchangeclone:mobius_fuel","exchangeclone:mobius_fuel","exchangeclone:mobius_fuel"},
{"exchangeclone:mobius_fuel","exchangeclone:mobius_fuel","exchangeclone:mobius_fuel"},
{"exchangeclone:mobius_fuel","exchangeclone:mobius_fuel","exchangeclone:mobius_fuel"}
}
})
minetest.register_craft({
output = "exchangeclone:mobius_fuel 9",
recipe = {{"exchangeclone:mobius_fuel_block"}}
})
minetest.register_craftitem("exchangeclone:dark_matter", {
description = S("Dark Matter Orb"),
wield_image = "exchangeclone_dark_matter.png",

View File

@ -30,16 +30,21 @@ minetest.register_alias("exchangeclone:exchange_orb", "exchangeclone:klein_star_
for i, name in ipairs(names) do
local codified_name = name:lower():gsub(" ", "_")
local capacity = 50000*math.pow(4,i-1)
minetest.register_tool("exchangeclone:"..codified_name, {
description = S(name).."\n"..S("Current Charge: @1", 0),
description = S(name).."\n"..S("Current Charge: @1/@2", 0, exchangeclone.format_number(capacity)),
inventory_image = "exchangeclone_"..codified_name..".png",
wield_image = "exchangeclone_"..codified_name..".png",
on_secondary_use = read_star_charge,
on_place = read_star_charge,
groups = {klein_star = i, disable_repair = 1, fire_immune = 1},
max_capacity = 50000*math.pow(4,i-1),
max_capacity = capacity,
_mcl_generate_description = function(itemstack)
return name.."\n"..S("Current Charge: @1", exchangeclone.get_star_itemstack_energy(itemstack))
return name.."\n"..S(
"Current Charge: @1/@2",
exchangeclone.format_number(exchangeclone.get_star_itemstack_energy(itemstack)),
exchangeclone.format_number(capacity)
)
end
})
@ -60,7 +65,7 @@ for i, name in ipairs(names) do
minetest.register_craft({ -- Making it fuel so old versions of MCL's hoppers will work with (de)constructors
type = "fuel",
recipe = "exchangeclone:"..codified_name,
burntime = 24000 --Basically 30 coal blocks...
burntime = 800*i
})
end

Binary file not shown.

After

Width:  |  Height:  |  Size: 265 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 559 B

After

Width:  |  Height:  |  Size: 142 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 288 B

View File

Before

Width:  |  Height:  |  Size: 311 B

After

Width:  |  Height:  |  Size: 311 B

View File

@ -338,8 +338,8 @@ end)
minetest.register_tool("exchangeclone:transmutation_tablet", {
description = "Transmutation Tablet",
groups = {disable_repair = 1, fire_immune = 1},
wield_image = "exchangeclone_transmutation_table.png",
inventory_image = "exchangeclone_transmutation_table.png",
wield_image = "exchangeclone_transmutation_tablet.png",
inventory_image = "exchangeclone_transmutation_tablet.png",
on_secondary_use = function(itemstack, player, pointed_thing)
local click_test = exchangeclone.check_on_rightclick(itemstack, player, pointed_thing)
if click_test ~= false then
@ -359,7 +359,11 @@ minetest.register_tool("exchangeclone:transmutation_tablet", {
minetest.register_node("exchangeclone:transmutation_table", {
description = "Transmutation Table",
paramtype2 = "wallmounted",
tiles = {"exchangeclone_transmutation_table.png", "exchangeclone_transmutation_table.png", "exchangeclone_transmutation_table_side.png"},
tiles = {
"exchangeclone_transmutation_table_top.png",
"exchangeclone_transmutation_table_bottom.png",
"exchangeclone_transmutation_table_side.png"
},
groups = {cracky = 3, pickaxey = 1, handy = 1, oddly_breakable_by_hand = 1},
drawtype = "nodebox",
node_box = {

View File

@ -112,15 +112,16 @@ end
function exchangeclone.set_star_itemstack_energy(itemstack, amount)
if not itemstack or not amount then return end
if itemstack:get_name() ~= "exchangeclone:exchange_orb" then return end
if minetest.get_item_group(itemstack:get_name(), "klein_star") < 1 then return end
local old_energy = exchangeclone.get_star_itemstack_energy(itemstack)
local max = exchangeclone.get_star_max(itemstack)
if amount > old_energy and old_energy > max then return end -- don't allow more energy to be put into an over-filled star
local meta = itemstack:get_meta()
meta:set_float("stored_energy", amount)
meta:set_string("description", itemstack:_mcl_generate_description())
local wear = math.min(1, math.max(65535, 65535 - 65535*amount/max))
meta:set_string("description", itemstack:get_definition()._mcl_generate_description(itemstack))
local wear = math.max(1, math.min(65535, 65535 - 65535*amount/max))
minetest.log(65535 - 65535*amount/max)
itemstack:set_wear(wear)
return itemstack
end