From ffa9d2d0fd7ba72a84d9a2f754ac7aa22b657779 Mon Sep 17 00:00:00 2001
From: AFCMS <afcm.contact@gmail.com>
Date: Tue, 8 Feb 2022 10:58:25 +0100
Subject: [PATCH] add basic chains and lantern model and API

---
 mods/ITEMS/mcl_lanterns/init.lua              | 161 ++++++++++++++++++
 mods/ITEMS/mcl_lanterns/mod.conf              |   6 +
 .../models/mcl_lanterns_chain.obj             |  24 +++
 .../models/mcl_lanterns_lantern_floor.obj     | 106 ++++++++++++
 mods/ITEMS/mcl_lanterns/register.lua          |   8 +
 .../textures/mcl_lanterns_chain.png           | Bin 0 -> 224 bytes
 .../textures/mcl_lanterns_chain_inv.png       | Bin 0 -> 217 bytes
 .../textures/mcl_lanterns_lantern.png         | Bin 0 -> 8789 bytes
 .../textures/mcl_lanterns_lantern_inv.png     | Bin 0 -> 5736 bytes
 9 files changed, 305 insertions(+)
 create mode 100644 mods/ITEMS/mcl_lanterns/init.lua
 create mode 100644 mods/ITEMS/mcl_lanterns/mod.conf
 create mode 100644 mods/ITEMS/mcl_lanterns/models/mcl_lanterns_chain.obj
 create mode 100644 mods/ITEMS/mcl_lanterns/models/mcl_lanterns_lantern_floor.obj
 create mode 100644 mods/ITEMS/mcl_lanterns/register.lua
 create mode 100755 mods/ITEMS/mcl_lanterns/textures/mcl_lanterns_chain.png
 create mode 100755 mods/ITEMS/mcl_lanterns/textures/mcl_lanterns_chain_inv.png
 create mode 100755 mods/ITEMS/mcl_lanterns/textures/mcl_lanterns_lantern.png
 create mode 100755 mods/ITEMS/mcl_lanterns/textures/mcl_lanterns_lantern_inv.png

diff --git a/mods/ITEMS/mcl_lanterns/init.lua b/mods/ITEMS/mcl_lanterns/init.lua
new file mode 100644
index 000000000..d59bb558e
--- /dev/null
+++ b/mods/ITEMS/mcl_lanterns/init.lua
@@ -0,0 +1,161 @@
+local S = minetest.get_translator("mcl_lanterns")
+local modpath = minetest.get_modpath("mcl_lanterns")
+
+mcl_lanterns = {}
+
+
+function mcl_lanterns.register_lantern(name, def)
+	local itemstring_floor = "mcl_lanterns:"..name.."_floor"
+	local itemstring_ceiling = "mcl_lanterns:"..name.."_ceiling"
+
+	minetest.register_node(itemstring_floor, {
+		description = def.description,
+		drawtype = "mesh",
+		mesh = "mcl_lanterns_lantern_floor.obj",
+		inventory_image = def.texture_inv,
+		wield_image = def.texture_inv,
+		tiles = {{
+				name = def.texture,
+				animation = {type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 3.3}
+		}},
+		use_texture_alpha = "clip",
+		paramtype = "light",
+		paramtype2 = "wallmounted",
+		sunlight_propagates = true,
+		light_source = def.light_level,
+		groups = {choppy=2, dig_immediate=3, flammable=1, attached_node=1, torch=1},
+		selection_box = {
+			type = "fixed",
+			fixed = {
+				{-0.1875, -0.5, -0.1875, 0.1875, -0.0625, 0.1875},
+				{-0.125, -0.0625, -0.125, 0.125, 0.0625, 0.125},
+				{-0.0625, -0.5, -0.0625, 0.0625, 0.1875, 0.0625},
+			},
+		},
+		collision_box = {
+			type = "fixed",
+			fixed = {
+				{-0.1875, -0.5, -0.1875, 0.1875, -0.0625, 0.1875},
+				{-0.125, -0.0625, -0.125, 0.125, 0.0625, 0.125},
+				{-0.0625, -0.5, -0.0625, 0.0625, 0.1875, 0.0625},
+			},
+		},
+		--sounds = default.node_sound_wood_defaults(),
+		on_place = function(itemstack, placer, pointed_thing)
+			local under = pointed_thing.under
+			local node = minetest.get_node(under)
+			local def = minetest.registered_nodes[node.name]
+			if def and def.on_rightclick and
+				not (placer and placer:is_player() and
+				placer:get_player_control().sneak) then
+				return def.on_rightclick(under, node, placer, itemstack,
+					pointed_thing) or itemstack
+			end
+
+			local above = pointed_thing.above
+			local wdir = minetest.dir_to_wallmounted(vector.subtract(under, above))
+			local fakestack = itemstack
+			if wdir == 0 then
+				fakestack:set_name(itemstring_ceiling)
+			elseif wdir == 1 then
+				fakestack:set_name(itemstring_floor)
+			end
+
+			itemstack = minetest.item_place(fakestack, placer, pointed_thing, wdir)
+			itemstack:set_name(itemstring_floor)
+
+			return itemstack
+		end,
+		--floodable = true,
+		--on_flood = on_flood,
+		on_rotate = false
+	})
+
+	minetest.register_node(itemstring_ceiling, {
+		drawtype = "mesh",
+		mesh = "mcl_lanterns_lantern_floor.obj",
+		tiles = {{
+				name = def.texture,
+				animation = {type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 3.3}
+		}},
+		use_texture_alpha = "clip",
+		paramtype = "light",
+		paramtype2 = "wallmounted",
+		sunlight_propagates = true,
+		light_source = def.light_level,
+		groups = {dig_immediate=3, not_in_creative_inventory=1},
+		drop = itemstring_floor,
+		selection_box = {
+			type = "wallmounted",
+			wall_top = {-1/8, -1/16, -5/16, 1/8, 1/2, 1/8},
+		},
+		--sounds = default.node_sound_wood_defaults(),
+		--floodable = true,
+		--on_flood = on_flood,
+		on_rotate = false
+	})
+end
+
+minetest.register_node("mcl_lanterns:chain", {
+	description = S("Chain"),
+	_doc_items_longdesc = S("Chains are metallic decoration blocks."),
+	inventory_image = "mcl_lanterns_chain_inv.png",
+	tiles = {"mcl_lanterns_chain.png"},
+	drawtype = "mesh",
+	paramtype = "light",
+	paramtype2 = "facedir",
+	use_texture_alpha = "clip",
+	mesh = "mcl_lanterns_chain.obj",
+	is_ground_content = false,
+	sunlight_propagates = true,
+	collision_box = {
+		type = "fixed",
+		fixed = {
+			{-0.0625, -0.5, -0.0625, 0.0625, 0.5, 0.0625},
+		}
+	},
+	selection_box = {
+		type = "fixed",
+		fixed = {
+			{-0.0625, -0.5, -0.0625, 0.0625, 0.5, 0.0625},
+		}
+	},
+	groups = {pickaxey = 1, deco_block = 1},
+	on_place = function(itemstack, placer, pointed_thing)
+		if pointed_thing.type ~= "node" then
+			return itemstack
+		end
+
+		local p0 = pointed_thing.under
+		local p1 = pointed_thing.above
+		local param2 = 0
+
+		local placer_pos = placer:get_pos()
+		if placer_pos then
+			local dir = {
+				x = p1.x - placer_pos.x,
+				y = p1.y - placer_pos.y,
+				z = p1.z - placer_pos.z
+			}
+			param2 = minetest.dir_to_facedir(dir)
+		end
+
+		if p0.y - 1 == p1.y then
+			param2 = 20
+		elseif p0.x - 1 == p1.x then
+			param2 = 16
+		elseif p0.x + 1 == p1.x then
+			param2 = 12
+		elseif p0.z - 1 == p1.z then
+			param2 = 8
+		elseif p0.z + 1 == p1.z then
+			param2 = 4
+		end
+
+		return minetest.item_place(itemstack, placer, pointed_thing, param2)
+	end,
+	_mcl_blast_resistance = 6,
+	_mcl_hardness = 5,
+})
+
+dofile(modpath.."/register.lua")
\ No newline at end of file
diff --git a/mods/ITEMS/mcl_lanterns/mod.conf b/mods/ITEMS/mcl_lanterns/mod.conf
new file mode 100644
index 000000000..104722123
--- /dev/null
+++ b/mods/ITEMS/mcl_lanterns/mod.conf
@@ -0,0 +1,6 @@
+name = mcl_lanterns
+description = Add lanterns and chains to MineClone2
+depends = 
+optional_depends = 
+author = AFCMS
+title = MineClone2 Lanterns
\ No newline at end of file
diff --git a/mods/ITEMS/mcl_lanterns/models/mcl_lanterns_chain.obj b/mods/ITEMS/mcl_lanterns/models/mcl_lanterns_chain.obj
new file mode 100644
index 000000000..94a7b8971
--- /dev/null
+++ b/mods/ITEMS/mcl_lanterns/models/mcl_lanterns_chain.obj
@@ -0,0 +1,24 @@
+# Blender v3.0.1 OBJ File: 'chain.blend'
+# www.blender.org
+o Plane
+v 0.066291 0.500000 0.066291
+v 0.066291 -0.500000 0.066291
+v -0.066291 0.500000 -0.066291
+v -0.066291 -0.500000 -0.066291
+v -0.066291 0.500000 0.066291
+v -0.066291 -0.500000 0.066291
+v 0.066291 0.500000 -0.066291
+v 0.066291 -0.500000 -0.066291
+vt -0.000000 1.000000
+vt 0.000000 -0.000000
+vt 0.187500 0.000000
+vt 0.187500 1.000000
+vt 0.187500 1.000000
+vt 0.187500 -0.000000
+vt 0.375000 -0.000000
+vt 0.375000 1.000000
+vn 0.7071 0.0000 -0.7071
+vn 0.7071 0.0000 0.7071
+s off
+f 1/1/1 2/2/1 4/3/1 3/4/1
+f 5/5/2 6/6/2 8/7/2 7/8/2
diff --git a/mods/ITEMS/mcl_lanterns/models/mcl_lanterns_lantern_floor.obj b/mods/ITEMS/mcl_lanterns/models/mcl_lanterns_lantern_floor.obj
new file mode 100644
index 000000000..a6125886a
--- /dev/null
+++ b/mods/ITEMS/mcl_lanterns/models/mcl_lanterns_lantern_floor.obj
@@ -0,0 +1,106 @@
+# Blender v3.0.1 OBJ File: 'lantern.blend'
+# www.blender.org
+o Cube
+v 0.187500 -0.062500 -0.187500
+v 0.187500 -0.500000 -0.187500
+v 0.187500 -0.062500 0.187500
+v 0.187500 -0.500000 0.187500
+v -0.187500 -0.062500 -0.187500
+v -0.187500 -0.500000 -0.187500
+v -0.187500 -0.062500 0.187500
+v -0.187500 -0.500000 0.187500
+v 0.125000 0.062500 -0.125000
+v 0.125000 -0.062500 -0.125000
+v 0.125000 0.062500 0.125000
+v 0.125000 -0.062500 0.125000
+v -0.125000 0.062500 -0.125000
+v -0.125000 -0.062500 -0.125000
+v -0.125000 0.062500 0.125000
+v -0.125000 -0.062500 0.125000
+v 0.066291 0.187500 0.066291
+v 0.066291 0.062500 0.066291
+v -0.066291 0.187500 -0.066291
+v -0.066291 0.062500 -0.066291
+v -0.066291 0.187500 0.066291
+v -0.066291 0.062500 0.066291
+v 0.066291 0.187500 -0.066291
+v 0.066291 0.062500 -0.066291
+vt 0.000000 0.062500
+vt 0.375000 0.062500
+vt 0.375000 0.437500
+vt 0.000000 0.437500
+vt 0.375000 0.437500
+vt 0.375000 0.875000
+vt -0.000000 0.875000
+vt -0.000000 0.437500
+vt 0.375000 0.437500
+vt 0.375000 0.875000
+vt -0.000000 0.875000
+vt 0.000000 0.437500
+vt 0.562500 0.125000
+vt 0.937500 0.125000
+vt 0.937500 0.250000
+vt 0.562500 0.250000
+vt 0.375000 0.437500
+vt 0.375000 0.875000
+vt -0.000000 0.875000
+vt 0.000000 0.437500
+vt 0.375000 0.437500
+vt 0.375000 0.875000
+vt -0.000000 0.875000
+vt -0.000000 0.437500
+vt 0.062500 0.125000
+vt 0.312500 0.125000
+vt 0.312500 0.375000
+vt 0.062500 0.375000
+vt 0.312500 0.875000
+vt 0.312500 1.000000
+vt 0.062500 1.000000
+vt 0.062500 0.875000
+vt 0.312500 0.875000
+vt 0.312500 1.000000
+vt 0.062500 1.000000
+vt 0.062500 0.875000
+vt 0.500000 0.770833
+vt 0.500000 0.770833
+vt 0.500000 0.770833
+vt 0.500000 0.770833
+vt 0.312500 0.875000
+vt 0.312500 1.000000
+vt 0.062500 1.000000
+vt 0.062500 0.875000
+vt 0.312500 0.875000
+vt 0.312500 1.000000
+vt 0.062500 1.000000
+vt 0.062500 0.875000
+vt 0.687500 0.937500
+vt 0.687500 0.812500
+vt 0.875000 0.812500
+vt 0.875000 0.937500
+vt 0.687500 0.937500
+vt 0.687500 0.812500
+vt 0.875000 0.812500
+vt 0.875000 0.937500
+vn 0.0000 1.0000 0.0000
+vn 0.0000 0.0000 1.0000
+vn -1.0000 0.0000 0.0000
+vn 0.0000 -1.0000 0.0000
+vn 1.0000 0.0000 0.0000
+vn 0.0000 0.0000 -1.0000
+vn 0.7071 0.0000 -0.7071
+vn 0.7071 0.0000 0.7071
+s off
+f 1/1/1 5/2/1 7/3/1 3/4/1
+f 4/5/2 3/6/2 7/7/2 8/8/2
+f 8/9/3 7/10/3 5/11/3 6/12/3
+f 6/13/4 2/14/4 4/15/4 8/16/4
+f 2/17/5 1/18/5 3/19/5 4/20/5
+f 6/21/6 5/22/6 1/23/6 2/24/6
+f 9/25/1 13/26/1 15/27/1 11/28/1
+f 12/29/2 11/30/2 15/31/2 16/32/2
+f 16/33/3 15/34/3 13/35/3 14/36/3
+f 14/37/4 10/38/4 12/39/4 16/40/4
+f 10/41/5 9/42/5 11/43/5 12/44/5
+f 14/45/6 13/46/6 9/47/6 10/48/6
+f 17/49/7 18/50/7 20/51/7 19/52/7
+f 21/53/8 22/54/8 24/55/8 23/56/8
diff --git a/mods/ITEMS/mcl_lanterns/register.lua b/mods/ITEMS/mcl_lanterns/register.lua
new file mode 100644
index 000000000..a2c513eb2
--- /dev/null
+++ b/mods/ITEMS/mcl_lanterns/register.lua
@@ -0,0 +1,8 @@
+local S = minetest.get_translator("mcl_lanterns")
+
+mcl_lanterns.register_lantern("lantern", {
+	description = S("Lantern"),
+	texture = "mcl_lanterns_lantern.png",
+	texture_inv = "mcl_lanterns_lantern_inv.png",
+	light_level = 15,
+})
\ No newline at end of file
diff --git a/mods/ITEMS/mcl_lanterns/textures/mcl_lanterns_chain.png b/mods/ITEMS/mcl_lanterns/textures/mcl_lanterns_chain.png
new file mode 100755
index 0000000000000000000000000000000000000000..ee523c9226d618aa4cb6c31a11a3130f5a464495
GIT binary patch
literal 224
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^Rm@
z;DWu&Cj&(|3p^r=85p>QL70(Y)*K0-AbW|YuPgf#7JeZ`siwX6RDnVXo-U3d7N_4%
zGUPj8z`;CsMfd%Kv!?#9Z`yBgiL-NQ(21bXSGpaHIf)HT9WHCFV^&GM<6|f&@9>y#
z#4LO5wye}A3Z4^Ob{THIc(3eH+BLPS)_dxYR3`m4Y&|vq(Db;UY@TJFH$qyTPX*e=
N;OXk;vd$@?2>^Y{PSyYb

literal 0
HcmV?d00001

diff --git a/mods/ITEMS/mcl_lanterns/textures/mcl_lanterns_chain_inv.png b/mods/ITEMS/mcl_lanterns/textures/mcl_lanterns_chain_inv.png
new file mode 100755
index 0000000000000000000000000000000000000000..61a300fede1736bbafa7e07d7b106756b9c18edf
GIT binary patch
literal 217
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^Rm@
z;DWu&Cj&(|3p^r=85p>QL70(Y)*K0-AbW|YuPgf#7JeZa;fbAk_CTRXPZ!4!i_^&o
z3q%9L!v6L9JZAFwq2lZ7`#<;zm#nO86Pv-q&3}J?f6u~uF!R9o_xB~=-P?Qm$KT)O
zY@2u$*mxc}s9clwX~|Ky7L$;WVDr=|C@Q*SCZ@s0AaqOnZ|K_d(}0#Rc)I$ztaD0e
F0swHxMOpv=

literal 0
HcmV?d00001

diff --git a/mods/ITEMS/mcl_lanterns/textures/mcl_lanterns_lantern.png b/mods/ITEMS/mcl_lanterns/textures/mcl_lanterns_lantern.png
new file mode 100755
index 0000000000000000000000000000000000000000..c9cc5b9958c962387a6ee72e277c225a5673fb7a
GIT binary patch
literal 8789
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

literal 0
HcmV?d00001

diff --git a/mods/ITEMS/mcl_lanterns/textures/mcl_lanterns_lantern_inv.png b/mods/ITEMS/mcl_lanterns/textures/mcl_lanterns_lantern_inv.png
new file mode 100755
index 0000000000000000000000000000000000000000..1e81819ba95fb37c446bc5b37278432023322031
GIT binary patch
literal 5736
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

literal 0
HcmV?d00001