Skip to content

Commit

Permalink
HL Stuff, add in buckets
Browse files Browse the repository at this point in the history
increased hl viscosity, added buckets and hl bucket, removed surface HL,
added HL as a generated ore.
  • Loading branch information
HeroOfTheWinds committed May 28, 2014
1 parent de5b937 commit fd5e680
Show file tree
Hide file tree
Showing 10 changed files with 245 additions and 3 deletions.
26 changes: 26 additions & 0 deletions mods/bucket/README.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
Minetest 0.4 mod: bucket
=========================

License of source code:
-----------------------
Copyright (C) 2011-2012 Kahrl <kahrl@gmx.net>
Copyright (C) 2011-2012 celeron55, Perttu Ahola <celeron55@gmail.com>

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

http://www.gnu.org/licenses/lgpl-2.1.html

License of media (textures and sounds)
--------------------------------------
Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)
http://creativecommons.org/licenses/by-sa/3.0/

Authors of media files
-----------------------
Everything not listed in here:
Copyright (C) 2010-2012 celeron55, Perttu Ahola <celeron55@gmail.com>


2 changes: 2 additions & 0 deletions mods/bucket/depends.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
default

191 changes: 191 additions & 0 deletions mods/bucket/init.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,191 @@
-- Minetest 0.4 mod: bucket
-- See README.txt for licensing and other information.

local LIQUID_MAX = 8 --The number of water levels when liquid_finite is enabled

minetest.register_alias("bucket", "bucket:bucket_empty")
minetest.register_alias("bucket_water", "bucket:bucket_water")
minetest.register_alias("bucket_lava", "bucket:bucket_lava")
minetest.register_alias("bucket_hl", "bucket:bucket_hl")

minetest.register_craft({
output = 'bucket:bucket_empty 1',
recipe = {
{'default:steel_ingot', '', 'default:steel_ingot'},
{'', 'default:steel_ingot', ''},
}
})

bucket = {}
bucket.liquids = {}

local function check_protection(pos, name, text)
if minetest.is_protected(pos, name) then
minetest.log("action", (name ~= "" and name or "A mod")
.. " tried to " .. text
.. " at protected position "
.. minetest.pos_to_string(pos)
.. " with a bucket")
minetest.record_protection_violation(pos, name)
return true
end
return false
end

-- Register a new liquid
-- source = name of the source node
-- flowing = name of the flowing node
-- itemname = name of the new bucket item (or nil if liquid is not takeable)
-- inventory_image = texture of the new bucket item (ignored if itemname == nil)
-- This function can be called from any mod (that depends on bucket).
function bucket.register_liquid(source, flowing, itemname, inventory_image, name)
bucket.liquids[source] = {
source = source,
flowing = flowing,
itemname = itemname,
}
bucket.liquids[flowing] = bucket.liquids[source]

if itemname ~= nil then
minetest.register_craftitem(itemname, {
description = name,
inventory_image = inventory_image,
stack_max = 1,
liquids_pointable = true,
groups = {not_in_creative_inventory=1},
on_place = function(itemstack, user, pointed_thing)
-- Must be pointing to node
if pointed_thing.type ~= "node" then
return
end

local node = minetest.get_node_or_nil(pointed_thing.under)
local ndef
if node then
ndef = minetest.registered_nodes[node.name]
end
-- Call on_rightclick if the pointed node defines it
if ndef and ndef.on_rightclick and
user and not user:get_player_control().sneak then
return ndef.on_rightclick(
pointed_thing.under,
node, user,
itemstack) or itemstack
end

local place_liquid = function(pos, node, source, flowing, fullness)
if check_protection(pos,
user and user:get_player_name() or "",
"place "..source) then
return
end
if math.floor(fullness/128) == 1 or
not minetest.setting_getbool("liquid_finite") then
minetest.add_node(pos, {name=source,
param2=fullness})
return
elseif node.name == flowing then
fullness = fullness + node.param2
elseif node.name == source then
fullness = LIQUID_MAX
end

if fullness >= LIQUID_MAX then
minetest.add_node(pos, {name=source,
param2=LIQUID_MAX})
else
minetest.add_node(pos, {name=flowing,
param2=fullness})
end
end

-- Check if pointing to a buildable node
local fullness = tonumber(itemstack:get_metadata())
if not fullness then fullness = LIQUID_MAX end

if ndef and ndef.buildable_to then
-- buildable; replace the node
place_liquid(pointed_thing.under, node,
source, flowing, fullness)
else
-- not buildable to; place the liquid above
-- check if the node above can be replaced
local node = minetest.get_node_or_nil(pointed_thing.above)
if node and minetest.registered_nodes[node.name].buildable_to then
place_liquid(pointed_thing.above,
node, source,
flowing, fullness)
else
-- do not remove the bucket with the liquid
return
end
end
return {name="bucket:bucket_empty"}
end
})
end
end

minetest.register_craftitem("bucket:bucket_empty", {
description = "Empty Bucket",
inventory_image = "bucket.png",
stack_max = 1,
liquids_pointable = true,
on_use = function(itemstack, user, pointed_thing)
-- Must be pointing to node
if pointed_thing.type ~= "node" then
return
end
-- Check if pointing to a liquid source
node = minetest.get_node(pointed_thing.under)
liquiddef = bucket.liquids[node.name]
if liquiddef ~= nil and liquiddef.itemname ~= nil and
(node.name == liquiddef.source or
(node.name == liquiddef.flowing and
minetest.setting_getbool("liquid_finite"))) then
if check_protection(pointed_thing.under,
user:get_player_name(),
"take ".. node.name) then
return
end

minetest.add_node(pointed_thing.under, {name="air"})

if node.name == liquiddef.source then
node.param2 = LIQUID_MAX
end
return ItemStack({name = liquiddef.itemname,
metadata = tostring(node.param2)})
end
end,
})

bucket.register_liquid(
"default:water_source",
"default:water_flowing",
"bucket:bucket_water",
"bucket_water.png",
"Water Bucket"
)

bucket.register_liquid(
"default:lava_source",
"default:lava_flowing",
"bucket:bucket_lava",
"bucket_lava.png",
"Lava Bucket"
)
bucket.register_liquid(
"moontest:hlsource",
"moontest:hlflowing",
"bucket:bucket_hl",
"bucket_hl.png",
"Hydroponic Liquid Bucket"
)

minetest.register_craft({
type = "fuel",
recipe = "bucket:bucket_lava",
burntime = 60,
replacements = {{"bucket:bucket_lava", "bucket:bucket_empty"}},
})
Binary file added mods/bucket/textures/bucket.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added mods/bucket/textures/bucket_hl.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added mods/bucket/textures/bucket_lava.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added mods/bucket/textures/bucket_water.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 0 additions & 1 deletion mods/mapgen/init.lua
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,6 @@ minetest.register_biome({
-- Aliases

minetest.register_alias("mapgen_lava_source", "default:lava_source")
minetest.register_alias("mapgen_water_source", "moontest:hlsource")
minetest.register_alias("mapgen_stone", "moontest:stone")
minetest.register_alias("mapgen_dirt", "moontest:dust")

Expand Down
24 changes: 24 additions & 0 deletions mods/mapgen/ores.lua
Original file line number Diff line number Diff line change
Expand Up @@ -160,3 +160,27 @@ minetest.register_ore({
height_max = -1024,
flags = "absheight",
})

minetest.register_ore({
ore_type = "scatter",
ore = "moontest:hlsource",
wherein = "default:stone",
clust_scarcity = 17*17*17,
clust_num_ores = 5,
clust_size = 2,
height_min = -255,
height_max = -128,
flags = "absheight",
})

minetest.register_ore({
ore_type = "scatter",
ore = "moontest:hlsource",
wherein = "default:stone",
clust_scarcity = 15*15*15,
clust_num_ores = 8,
clust_size = 3,
height_min = -31000,
height_max = -256,
flags = "absheight",
})
4 changes: 2 additions & 2 deletions mods/moontest/nodes.lua
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,7 @@ minetest.register_node("moontest:hlflowing", {
liquidtype = "flowing",
liquid_alternative_flowing = "moontest:hlflowing",
liquid_alternative_source = "moontest:hlsource",
liquid_viscosity = 1,
liquid_viscosity = 7,
post_effect_color = {a=224, r=115, g=55, b=24},
groups = {water=3, liquid=3, puts_out_fire=1, not_in_creative_inventory=1},
})
Expand Down Expand Up @@ -260,7 +260,7 @@ minetest.register_node("moontest:hlsource", {
liquidtype = "source",
liquid_alternative_flowing = "moontest:hlflowing",
liquid_alternative_source = "moontest:hlsource",
liquid_viscosity = 1,
liquid_viscosity = 7,
post_effect_color = {a=224, r=115, g=55, b=24},
groups = {water=3, liquid=3, puts_out_fire=1},
})
Expand Down

0 comments on commit fd5e680

Please sign in to comment.