summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorthe lemons <citrons@mondecitronne.com>2022-02-13 21:28:49 -0600
committerthe lemons <citrons@mondecitronne.com>2022-02-13 21:28:49 -0600
commitc0018b81daf328ae45e93acafdf36d7be877b4a1 (patch)
tree01d74d09e86dd6ca607c2df63b5a691b94ad8dbd
parent399ea8f2310e319bcfb604714f72f1b6e57669a4 (diff)
parentcd8c910aec7be15f548ca6ec3f492b4065440e5c (diff)
Merge branch 'master' of citrons.xyz:vzxv
-rw-r--r--mods/vzxv/nodes.lua9
-rw-r--r--mods/vzxv/textures/vzxvgrassseeds.pngbin0 -> 670 bytes
-rw-r--r--mods/vzxv/textures/vzxvmetalpick.pngbin0 -> 927 bytes
-rw-r--r--mods/vzxv/textures/vzxvplanks.pngbin0 -> 1110 bytes
-rw-r--r--mods/vzxv/textures/vzxvstonepick.pngbin0 -> 927 bytes
-rw-r--r--mods/vzxv/textures/vzxvwoodpick.pngbin0 -> 943 bytes
-rw-r--r--mods/vzxv/tools.lua4
-rw-r--r--mods/vzxv_gravity/init.lua4
-rw-r--r--mods/vzxv_pummel/init.lua71
-rw-r--r--mods/vzxv_pummel/recipes.lua66
10 files changed, 115 insertions, 39 deletions
diff --git a/mods/vzxv/nodes.lua b/mods/vzxv/nodes.lua
index 9df1f2f..c09fa17 100644
--- a/mods/vzxv/nodes.lua
+++ b/mods/vzxv/nodes.lua
@@ -22,6 +22,10 @@ vzxv.slabs("vzxv:grass","Grass",{dry_grass,"vzxvdirt.png",dry_grass},{groups={
plant=1,crumbly=2,soil=1,grassy=1
}})
+vzxv.mundane_block("vzxv:planks","Planks",nil,{groups={
+ choppy=1,
+}})
+
vzxv.mundane_block("vzxv:stick","Stick",{"vzxvlog.png","vzxvlog.png","vzxvbark.png"},{
groups={
choppy=1,handy=3
@@ -72,3 +76,8 @@ minetest.register_craftitem("vzxv:apioform", {
minetest.chat_send_player(user:get_player_name(), "metadata: "..dump(meta))
end,
})
+
+minetest.register_craftitem("vzxv:grassseeds", {
+ description = "Grass seeds",
+ inventory_image = "vzxvgrassseeds.png",
+})
diff --git a/mods/vzxv/textures/vzxvgrassseeds.png b/mods/vzxv/textures/vzxvgrassseeds.png
new file mode 100644
index 0000000..3d7ef26
--- /dev/null
+++ b/mods/vzxv/textures/vzxvgrassseeds.png
Binary files differ
diff --git a/mods/vzxv/textures/vzxvmetalpick.png b/mods/vzxv/textures/vzxvmetalpick.png
new file mode 100644
index 0000000..5076b86
--- /dev/null
+++ b/mods/vzxv/textures/vzxvmetalpick.png
Binary files differ
diff --git a/mods/vzxv/textures/vzxvplanks.png b/mods/vzxv/textures/vzxvplanks.png
new file mode 100644
index 0000000..3a9f813
--- /dev/null
+++ b/mods/vzxv/textures/vzxvplanks.png
Binary files differ
diff --git a/mods/vzxv/textures/vzxvstonepick.png b/mods/vzxv/textures/vzxvstonepick.png
new file mode 100644
index 0000000..d22e4de
--- /dev/null
+++ b/mods/vzxv/textures/vzxvstonepick.png
Binary files differ
diff --git a/mods/vzxv/textures/vzxvwoodpick.png b/mods/vzxv/textures/vzxvwoodpick.png
new file mode 100644
index 0000000..fbd2296
--- /dev/null
+++ b/mods/vzxv/textures/vzxvwoodpick.png
Binary files differ
diff --git a/mods/vzxv/tools.lua b/mods/vzxv/tools.lua
index 319c1e9..26307ec 100644
--- a/mods/vzxv/tools.lua
+++ b/mods/vzxv/tools.lua
@@ -66,7 +66,9 @@ woodaxe.groups.axe = 1
minetest.register_item("vzxv:woodaxe",woodaxe)
local woodadze = deepclone(base_tool)
-woodadze.tool_capabilities.groupcaps = {choppy = {times = {4,16}}, crumbly = {times ={1.5, 3}}}
+woodadze.tool_capabilities.groupcaps = {
+ choppy = {times = {4,16}}, crumbly = {times ={1.5, 3}}
+}
woodadze.inventory_image = "vzxvwoodadze.png"
woodadze.description = "Adze"
woodadze.groups.axe = 1
diff --git a/mods/vzxv_gravity/init.lua b/mods/vzxv_gravity/init.lua
index 62b73a7..5541f91 100644
--- a/mods/vzxv_gravity/init.lua
+++ b/mods/vzxv_gravity/init.lua
@@ -29,7 +29,9 @@ end
minetest.register_globalstep(function()
local players = minetest.get_connected_players()
- local brightness = math.max(0,math.min(1,3-((math.abs(-12000+minetest:get_timeofday()*24000))/3000)))
+ local brightness = math.max(0,math.min(1,3-((
+ math.abs(-12000+minetest:get_timeofday()*24000)
+ )/3000)))
for _,player in ipairs(players) do
local pos = player:get_pos()
player:set_physics_override({
diff --git a/mods/vzxv_pummel/init.lua b/mods/vzxv_pummel/init.lua
index 2515758..77652e8 100644
--- a/mods/vzxv_pummel/init.lua
+++ b/mods/vzxv_pummel/init.lua
@@ -28,29 +28,41 @@ local function toolcheck(tools,tool)
local itgroup = minetest.get_item_group(tool,st:sub(8))
return num <= itgroup
else
- return tools == st
+ return tool == st
end
end
if not tools then return true end
if type(tools) == "table" then
for i,v in ipairs(tools) do
- if singletoolcheck(v) then return v end
+ if singletoolcheck(v.item) then return v end
end
return false
end
- return singletoolcheck(tools)
+ return singletoolcheck(tool)
end
function vzxv.can_pummel(pos,node,tool,side)
if vzxv_pummel_recipes[node.name] then
for _,r in ipairs(vzxv_pummel_recipes[node.name]) do
- if toolcheck(r.tool,tool) then
- if sidecheck(r.side,sidename(side)) then
- if r.constraint(pos,node,tool,side) then
- return r
+ if not sidecheck(r.side,sidename(side)) then return false end
+ if not toolcheck(r.tool,tool) then return false end
+ if r.othernodes then
+ for _,node in ipairs(r.othernodes) do
+ local outputpos = deepclone(pos)
+ outputpos.x = outputpos.x + (node.x or 0)
+ outputpos.y = outputpos.y + (node.y or 0)
+ outputpos.z = outputpos.z + (node.z or 0)
+ if node.item then
+ error("sorry no item inputs yet")
+ else
+ local node_at = minetest.get_node(outputpos).name
+ if not toolcheck(node.node,node_at) then
+ return false
+ end
end
end
end
+ return r
end
end
return false
@@ -59,17 +71,46 @@ end
function vzxv.pummel(pos,node,tool,side)
local recipe = vzxv.can_pummel(pos,node,tool,side)
if not recipe then return false end
- recipe.func(pos,node,tool,side)
+ if recipe.func then recipe.func(pos,node,tool,side) end
+ local nodes_involved = {recipe.node or recipe.item}
+ for _,node in ipairs(recipe.othernodes or {}) do
+ table.insert(nodes_involved,node)
+ end
+
+ for _,node in ipairs(nodes_involved) do
+ local outputpos = deepclone(pos)
+ outputpos.x = outputpos.x + (node.x or 0)
+ outputpos.y = outputpos.y + (node.y or 0)
+ outputpos.z = outputpos.z + (node.z or 0)
+ if node.item then
+ error("no item inputs yet sorry")
+ else
+ if node.consume then
+ minetest.set_node(outputpos,{name="air"})
+ end
+ end
+ end
+
+
+ if recipe.outputs then
+ for _,output in ipairs(recipe.outputs) do
+ local outputpos = deepclone(pos)
+ outputpos.x = outputpos.x + (output.x or 0)
+ outputpos.y = outputpos.y + (output.y or 0)
+ outputpos.z = outputpos.z + (output.z or 0)
+ if output.item then
+ vzxv.drop(outputpos,ItemStack(output.item))
+ else
+ minetest.set_node(outputpos,{name=output.node})
+ end
+ end
+ end
end
-function vzxv.add_pummel_recipe(nodetype,tool,side,constraint,func)
- local r = {}
- r.tool = tool
- r.side = side
- r.constraint = constraint or function() return true end
- r.func = func
+function vzxv.add_pummel_recipe(settings)
+ local nodetype = settings.node.node or settings.node.item
vzxv_pummel_recipes[nodetype] = vzxv_pummel_recipes[nodetype] or {}
- table.insert(vzxv_pummel_recipes[nodetype],r)
+ table.insert(vzxv_pummel_recipes[nodetype],settings)
end
minetest.register_on_punchnode(function(pos, node, puncher, pointed_thing)
diff --git a/mods/vzxv_pummel/recipes.lua b/mods/vzxv_pummel/recipes.lua
index fd4e345..892b03b 100644
--- a/mods/vzxv_pummel/recipes.lua
+++ b/mods/vzxv_pummel/recipes.lua
@@ -1,22 +1,44 @@
-vzxv.add_pummel_recipe("vzxv:moistgrass",nil,{1,3,4,5,6},nil,function(pos,node)
- minetest.set_node(pos,{name="vzxv:moistdirt"})
-end)
-
-vzxv.add_pummel_recipe("vzxv:grass",nil,{1,3,4,5,6},nil,function(pos,node)
- minetest.set_node(pos,{name="vzxv:dirt"})
-end)
-
-vzxv.add_pummel_recipe("vzxv_trees:trunk","group1:axe",{1,2},nil,function(pos,node)
- minetest.set_node(pos,{name="vzxv:moistdirt"})
-end)
-
-vzxv.add_pummel_recipe("vzxv:stick",nil,{1},function(pos,node,tool,side)
- return minetest.get_node({x=pos.x,y=pos.y-1,z=pos.z}).name == "vzxv:stick"
-end,function(pos,node)
- minetest.set_node(pos,{name="air"})
- minetest.set_node({x=pos.x,y=pos.y-1,z=pos.z},{name="vzxv_trees:trunk"})
-end)
-
-vzxv.add_pummel_recipe("vzxv:stone","group1:pick",nil,nil,function(pos,node)
- minetest.set_node(pos,{name="vzxv:cobblestone"})
-end) \ No newline at end of file
+vzxv.add_pummel_recipe{
+ node = {node="vzxv:moistgrass"},
+ outputs = {{node="vzxv:moistdirt"}}
+}
+
+vzxv.add_pummel_recipe{
+ node = {node="vzxv:grass"},
+ outputs = {{node="vzxv:dirt"}}
+}
+
+vzxv.add_pummel_recipe{
+ node = {node="vzxv:stone"},
+ tool = {{item="group1:pick"}},
+ outputs = {{node="vzxv:cobblestone"}}
+}
+
+vzxv.add_pummel_recipe{
+ node = {node="vzxv_trees:trunk"},
+ side = 1,
+ tool = {{item="group1:axe"}},
+ outputs = {{node="vzxv:moistdirt"}}
+}
+
+vzxv.add_pummel_recipe{
+ node = {node="vzxv:stick",consume=true},
+ side = 1,
+ othernodes = {{node="vzxv:stick",y=-1,consume=true}},
+ outputs = {{item="vzxv:woodadze",y=-1}}
+}
+
+-- seed planting
+
+vzxv.add_pummel_recipe{
+ node = {node="vzxv:moistdirt"},
+ tool = {{item="vzxv:grassseeds",consume=true}},
+ outputs = {{node="vzxv:moistgrass"}}
+}
+
+vzxv.add_pummel_recipe{
+ node = {node="vzxv:dirt"},
+ tool = {{item="vzxv:grassseeds",consume=true}},
+ outputs = {{node="vzxv:grass"}}
+}
+