Updated homedecor
| Before Width: | Height: | Size: 947 B After Width: | Height: | Size: 766 B | 
| Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 1.8 KiB | 
| Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 1.7 KiB | 
| Before Width: | Height: | Size: 356 B After Width: | Height: | Size: 344 B | 
| Before Width: | Height: | Size: 441 B After Width: | Height: | Size: 390 B | 
| Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.5 KiB | 
| Before Width: | Height: | Size: 398 B After Width: | Height: | Size: 386 B | 
| Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.5 KiB | 
| Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.3 KiB | 
| @@ -1,21 +1,21 @@ | ||||
|  | ||||
| -- Amiga 500 lookalike | ||||
| computer.register("computer:shefriendSOO", { | ||||
| 	description = "SheFriendSOO"; | ||||
| 	tiles_off = { front=true; }; | ||||
| 	description = "SheFriendSOO", | ||||
| 	tiles_off = { front=true }, | ||||
| 	node_box = computer.pixelnodebox(32, { | ||||
| 		-- X   Y   Z   W   H   L | ||||
| 		{  0,  0, 17, 32, 32, 12 },   -- Monitor Screen | ||||
| 		{  3,  3, 29, 26, 26,  3 },   -- Monitor Tube | ||||
| 		{  0,  0,  0, 32,  4, 17 },   -- Keyboard | ||||
| 	}); | ||||
| }); | ||||
| 		{  0,  0,  0, 32,  4, 17 }   -- Keyboard | ||||
| 	}) | ||||
| }) | ||||
|  | ||||
| -- Some generic laptop | ||||
| minetest.register_node("computer:vanio", { | ||||
| 	drawtype = "mesh", | ||||
| 	mesh = "computer_laptop.obj", | ||||
| 	description = "Pony Vanio", | ||||
| 	inventory_image = "computer_laptop_inv.png", | ||||
| 	tiles = {"computer_laptop.png"}, | ||||
| 	paramtype = "light", | ||||
| 	paramtype2 = "facedir", | ||||
| @@ -26,7 +26,7 @@ minetest.register_node("computer:vanio", { | ||||
| 		type = "fixed", | ||||
| 		fixed = {-0.35, -0.5, -0.35, 0.35, 0.05, 0.35}, | ||||
| 	}, | ||||
| 	on_rightclick = function (pos, node, clicker, itemstack) | ||||
| 	on_rightclick = function(pos, node, clicker, itemstack) | ||||
| 		node.name = "computer:vanio_off" | ||||
| 		minetest.set_node(pos, node) | ||||
| 	end | ||||
| @@ -45,7 +45,7 @@ minetest.register_node("computer:vanio_off", { | ||||
| 		fixed = {-0.35, -0.5, -0.35, 0.35, -0.4, 0.25}, | ||||
| 	}, | ||||
| 	drop = "computer:vanio", | ||||
| 	on_rightclick = function (pos, node, clicker, itemstack) | ||||
| 	on_rightclick = function(pos, node, clicker, itemstack) | ||||
| 		node.name = "computer:vanio" | ||||
| 		minetest.set_node(pos, node) | ||||
| 	end | ||||
| @@ -53,8 +53,9 @@ minetest.register_node("computer:vanio_off", { | ||||
|  | ||||
| -- Sony PlayStation lookalike | ||||
| computer.register("computer:slaystation", { | ||||
| 	description = "Pony SlayStation"; | ||||
| 	tiles_off = { top=true; }; | ||||
| 	description = "Pony SlayStation", | ||||
| 	inventory_image = "computer_ps1_inv.png", | ||||
| 	tiles_off = { top=true }, | ||||
| 	node_box = computer.pixelnodebox(32, { | ||||
| 		-- X   Y   Z   W   H   L | ||||
| 		{  0,  0, 11, 32,  6, 21 },   -- Console | ||||
| @@ -63,14 +64,15 @@ computer.register("computer:slaystation", { | ||||
| 		{  5,  0,  4,  5,  2,  5 },   -- Controller 1 Center | ||||
| 		{ 18,  0,  1,  4,  2,  9 },   -- Controller 2 L Grip | ||||
| 		{ 27,  0,  1,  4,  2,  9 },   -- Controller 2 R Grip | ||||
| 		{ 22,  0,  4,  5,  2,  5 },   -- Controller 2 Center | ||||
| 	}); | ||||
| }); | ||||
| 		{ 22,  0,  4,  5,  2,  5 }   -- Controller 2 Center | ||||
| 	}) | ||||
| }) | ||||
|  | ||||
| -- Sony PlayStation 2 lookalike | ||||
| computer.register("computer:slaystation2", { | ||||
| 	description = "Pony SlayStation 2"; | ||||
| 	tiles_off = { front=true; }; | ||||
| 	description = "Pony SlayStation 2", | ||||
| 	inventory_image = "computer_ps2_inv.png", | ||||
| 	tiles_off = { front=true }, | ||||
| 	node_box = computer.pixelnodebox(32, { | ||||
| 		-- X   Y   Z   W   H   L | ||||
| 		{  2,  2, 11, 28,  3, 19 },   -- Console (Upper part) | ||||
| @@ -80,31 +82,33 @@ computer.register("computer:slaystation2", { | ||||
| 		{  5,  0,  1,  5,  2,  8 },   -- Controller 1 Center | ||||
| 		{ 18,  0,  1,  4,  2,  9 },   -- Controller 2 L Grip | ||||
| 		{ 27,  0,  1,  4,  2,  9 },   -- Controller 2 R Grip | ||||
| 		{ 22,  0,  1,  5,  2,  8 },   -- Controller 2 Center | ||||
| 	}); | ||||
| }); | ||||
| 		{ 22,  0,  1,  5,  2,  8 }   -- Controller 2 Center | ||||
| 	}) | ||||
| }) | ||||
|  | ||||
| -- Sinclair ZX Spectrum lookalike | ||||
| computer.register("computer:specter", { | ||||
| 	description = "SX Specter"; | ||||
| 	tiles_off = { }; | ||||
| 	description = "SX Specter", | ||||
| 	inventory_image = "computer_specter_inv.png", | ||||
| 	tiles_off = { }, | ||||
| 	node_box = computer.pixelnodebox(32, { | ||||
| 		-- X   Y   Z   W   H   L | ||||
| 		{  3,  0,  0, 26,  4, 17 },   -- Keyboard | ||||
| 		{ 18,  0, 18, 12,  6, 14 },   -- Tape Player | ||||
| 	}); | ||||
| }); | ||||
| 		{ 18,  0, 18, 12,  6, 14 }   -- Tape Player | ||||
| 	}) | ||||
| }) | ||||
|  | ||||
| -- Nintendo Wii lookalike | ||||
| computer.register("computer:wee", { | ||||
| 	description = "Nientiendo Wee"; | ||||
| 	tiles_off = { front=true; }; | ||||
| 	description = "Nientiendo Wee", | ||||
| 	inventory_image = "computer_wii_inv.png", | ||||
| 	tiles_off = { front=true }, | ||||
| 	node_box = computer.pixelnodebox(32, { | ||||
| 		-- X   Y   Z   W   H   L | ||||
| 		{ 11,  0,  3, 10,  6, 26 },   -- Base | ||||
| 		{ 12,  6,  4,  8, 22, 24 },   -- Top | ||||
| 	}); | ||||
| }); | ||||
| 		{ 12,  6,  4,  8, 22, 24 }   -- Top | ||||
| 	}) | ||||
| }) | ||||
|  | ||||
| -- Apple iPad lookalike | ||||
| minetest.register_node("computer:piepad", { | ||||
| @@ -113,214 +117,92 @@ minetest.register_node("computer:piepad", { | ||||
| 	tiles = {"computer_piepad_inv.png"}, | ||||
| 	inventory_image = "computer_piepad_inv.png", | ||||
| 	wield_image = "computer_piepad_inv.png", | ||||
| 	sunlight_propagates = false, | ||||
| 	paramtype = "light", | ||||
| 	paramtype2 = "wallmounted", | ||||
| 	light_source = 10, | ||||
| 	light_source = 8, | ||||
| 	walkable = false, | ||||
| 	groups = { snappy=3, cracky=3, choppy=3, oddly_breakable_by_hand=3}, | ||||
| 	groups = {oddly_breakable_by_hand=2}, | ||||
| 	selection_box = {type = "wallmounted"}, | ||||
| 	sounds = default.node_sound_wood_defaults() | ||||
| }) | ||||
|  | ||||
| -- Commodore 64 lookalike | ||||
| computer.register("computer:admiral64", { | ||||
| 	description = "Admiral64"; | ||||
| 	tiles_off = { }; | ||||
| 	description = "Admiral64", | ||||
| 	inventory_image = "computer_ad64_inv.png", | ||||
| 	tiles_off = { }, | ||||
| 	node_box = computer.pixelnodebox(32, { | ||||
| 		-- X   Y   Z   W   H   L | ||||
| 		{  0,  0,  0, 32,  4, 18 },   -- Keyboard | ||||
| 	}); | ||||
| }); | ||||
| 		{  0,  0,  0, 32,  4, 18 }   -- Keyboard | ||||
| 	}) | ||||
| }) | ||||
|  | ||||
| -- Commodore 128 lookalike | ||||
| computer.register("computer:admiral128", { | ||||
| 	description = "Admiral128"; | ||||
| 	tiles_off = { }; | ||||
| 	description = "Admiral128", | ||||
| 	inventory_image = "computer_ad128_inv.png", | ||||
| 	tiles_off = { }, | ||||
| 	node_box = computer.pixelnodebox(32, { | ||||
| 		-- X   Y   Z   W   H   L | ||||
| 		{  0,  0,  0, 32,  4, 27 },   -- Keyboard | ||||
| 	}); | ||||
| }); | ||||
|  | ||||
| --------------------------------------------------------------------------------- | ||||
| ----------------------------added by crazyginger72------------------------------- | ||||
| --------------------------------------------------------------------------------- | ||||
| 		{  0,  0,  0, 32,  4, 27 }   -- Keyboard | ||||
| 	}) | ||||
| }) | ||||
|  | ||||
| -- Generic Flat Screen LCD (16x9) with keyboard | ||||
| minetest.register_node("computer:monitor_on", { | ||||
| 	description = "Monitor and keyboard", | ||||
| 	tiles = {"computer_monitor_t.png","computer_monitor_bt.png", | ||||
| 		 "computer_monitor_l.png","computer_monitor_r.png", | ||||
| 		 "computer_monitor_b.png","computer_monitor_f_desktop.png"}, --"computer_monitor_f_on.png"}, --till i get a boot abm inplace | ||||
| 	paramtype = "light", | ||||
| 	light_source = 4, | ||||
| 	paramtype2 = "facedir", | ||||
| 	walkable = false, | ||||
| 	is_ground_content = true, | ||||
| 	groups = {snappy=3,not_in_creative_inventory=1}, | ||||
| 	sounds = default.node_sound_wood_defaults(), | ||||
| 	drawtype = "nodebox", | ||||
| 	node_box = { | ||||
| 		type = "fixed", | ||||
| 		fixed = { | ||||
| 			{-0.5, -0.3125, 0.1875, 0.5, 0.375, 0.223116}, | ||||
| 			{-0.25, -0.5, 0.125, 0.25, -0.466981, 0.5}, | ||||
| 			{-0.125, -0.5, 0.3125, 0.125, 0.0283019, 0.346698}, | ||||
| 			{-0.375, -0.3125, 0.208965, 0.375, 0.240566, 0.3125}, | ||||
| 			{-0.4375, -0.5, -0.4375, 0.4375, -0.4375, -0.125}, | ||||
| 			{-0.1875, -0.5, 0.25, 0.1875, -0.410377, 0.375}, | ||||
| 			}, | ||||
| 		}, | ||||
| 	drop = 'computer:monitor', | ||||
| 	on_rightclick = function ( pos, node, clicker, itemstack) | ||||
| 		node.name = "computer:monitor"; | ||||
| 		minetest.set_node(pos, node); | ||||
| 	end | ||||
| }) | ||||
|  | ||||
| minetest.register_node("computer:monitor_bios", { | ||||
| 	description = "Monitor and keyboard", | ||||
| 	tiles = {"computer_monitor_t.png","computer_monitor_bt.png","computer_monitor_l.png", | ||||
| 		"computer_monitor_r.png","computer_monitor_b.png","computer_monitor_f_bios.png"}, | ||||
| 	paramtype = "light", | ||||
| 	light_source = 4, | ||||
| 	paramtype2 = "facedir", | ||||
| 	walkable = false, | ||||
| 	is_ground_content = true, | ||||
| 	groups = {snappy=3,not_in_creative_inventory=1}, | ||||
| 	sounds = default.node_sound_wood_defaults(), | ||||
| 	drawtype = "nodebox", | ||||
| 	node_box = { | ||||
| 		type = "fixed", | ||||
| 		fixed = { | ||||
| 			{-0.5, -0.3125, 0.1875, 0.5, 0.375, 0.223116}, | ||||
| 			{-0.25, -0.5, 0.125, 0.25, -0.466981, 0.5}, | ||||
| 			{-0.125, -0.5, 0.3125, 0.125, 0.0283019, 0.346698}, | ||||
| 			{-0.375, -0.3125, 0.208965, 0.375, 0.240566, 0.3125}, | ||||
| 			{-0.4375, -0.5, -0.4375, 0.4375, -0.4375, -0.125}, | ||||
| 			{-0.1875, -0.5, 0.25, 0.1875, -0.410377, 0.375}, | ||||
| 			}, | ||||
| 		}, | ||||
| 	drop = 'computer:monitor', | ||||
| }) | ||||
|  | ||||
| minetest.register_node("computer:monitor_loading", { | ||||
| 	description = "Monitor and keyboard", | ||||
| 	tiles = {"computer_monitor_t.png","computer_monitor_bt.png","computer_monitor_l.png", | ||||
| 			"computer_monitor_r.png","computer_monitor_b.png","computer_monitor_f_loading.png"}, | ||||
| 	paramtype = "light", | ||||
| 	light_source = 4, | ||||
| 	paramtype2 = "facedir", | ||||
| 	walkable = false, | ||||
| 	is_ground_content = true, | ||||
| 	groups = {snappy=3,not_in_creative_inventory=1}, | ||||
| 	sounds = default.node_sound_wood_defaults(), | ||||
| 	drawtype = "nodebox", | ||||
| 	node_box = { | ||||
| 		type = "fixed", | ||||
| 		fixed = { | ||||
| 			{-0.5, -0.3125, 0.1875, 0.5, 0.375, 0.223116}, | ||||
| 			{-0.25, -0.5, 0.125, 0.25, -0.466981, 0.5}, | ||||
| 			{-0.125, -0.5, 0.3125, 0.125, 0.0283019, 0.346698}, | ||||
| 			{-0.375, -0.3125, 0.208965, 0.375, 0.240566, 0.3125}, | ||||
| 			{-0.4375, -0.5, -0.4375, 0.4375, -0.4375, -0.125}, | ||||
| 			{-0.1875, -0.5, 0.25, 0.1875, -0.410377, 0.375}, | ||||
| 			}, | ||||
| 		}, | ||||
| 	drop = 'computer:monitor', | ||||
| }) | ||||
|  | ||||
| minetest.register_node("computer:monitor_login", { | ||||
| 	description = "Monitor and keyboard", | ||||
| 	tiles = {"computer_monitor_t.png","computer_monitor_bt.png","computer_monitor_l.png", | ||||
| 			"computer_monitor_r.png","computer_monitor_b.png","computer_monitor_f_login.png"}, | ||||
| 	paramtype = "light", | ||||
| 	light_source = 4, | ||||
| 	paramtype2 = "facedir", | ||||
| 	walkable = false, | ||||
| 	is_ground_content = true, | ||||
| 	groups = {snappy=3,not_in_creative_inventory=1}, | ||||
| 	sounds = default.node_sound_wood_defaults(), | ||||
| 	drawtype = "nodebox", | ||||
| 	node_box = { | ||||
| 		type = "fixed", | ||||
| 		fixed = { | ||||
| 			{-0.5, -0.3125, 0.1875, 0.5, 0.375, 0.223116}, | ||||
| 			{-0.25, -0.5, 0.125, 0.25, -0.466981, 0.5}, | ||||
| 			{-0.125, -0.5, 0.3125, 0.125, 0.0283019, 0.346698}, | ||||
| 			{-0.375, -0.3125, 0.208965, 0.375, 0.240566, 0.3125}, | ||||
| 			{-0.4375, -0.5, -0.4375, 0.4375, -0.4375, -0.125}, | ||||
| 			{-0.1875, -0.5, 0.25, 0.1875, -0.410377, 0.375}, | ||||
| 			}, | ||||
| 		}, | ||||
| 	drop = 'computer:monitor', | ||||
| }) | ||||
|  | ||||
| minetest.register_node("computer:monitor_desktop", { | ||||
| 	description = "Monitor and keyboard", | ||||
| 	tiles = {"computer_monitor_t.png","computer_monitor_bt.png","computer_monitor_l.png", | ||||
| 			"computer_monitor_r.png","computer_monitor_b.png","computer_monitor_f_desktop.png"}, | ||||
| 	paramtype = "light", | ||||
| 	light_source = 4, | ||||
| 	paramtype2 = "facedir", | ||||
| 	walkable = false, | ||||
| 	is_ground_content = true, | ||||
| 	groups = {snappy=3,not_in_creative_inventory=1}, | ||||
| 	sounds = default.node_sound_wood_defaults(), | ||||
| 	drawtype = "nodebox", | ||||
| 	node_box = { | ||||
| 		type = "fixed", | ||||
| 		fixed = { | ||||
| 			{-0.5, -0.3125, 0.1875, 0.5, 0.375, 0.223116}, | ||||
| 			{-0.25, -0.5, 0.125, 0.25, -0.466981, 0.5}, | ||||
| 			{-0.125, -0.5, 0.3125, 0.125, 0.0283019, 0.346698}, | ||||
| 			{-0.375, -0.3125, 0.208965, 0.375, 0.240566, 0.3125}, | ||||
| 			{-0.4375, -0.5, -0.4375, 0.4375, -0.4375, -0.125}, | ||||
| 			{-0.1875, -0.5, 0.25, 0.1875, -0.410377, 0.375}, | ||||
| 			}, | ||||
| 		}, | ||||
| 	drop = 'computer:monitor', | ||||
| }) | ||||
| local mo_sbox = { | ||||
| 	type = "fixed", | ||||
| 	fixed = { -0.5, -0.5, -0.43, 0.5, 0.2, 0.25 } | ||||
| } | ||||
|  | ||||
| minetest.register_node("computer:monitor", { | ||||
| 	description = "Monitor and keyboard", | ||||
| 	tiles = {"computer_monitor_t_off.png","computer_monitor_bt.png","computer_monitor_l.png", | ||||
| 		 "computer_monitor_r.png","computer_monitor_b.png","computer_monitor_f_off.png"}, | ||||
| 	inventory_image = "computer_monitor_inv.png", | ||||
| 	drawtype = "mesh", | ||||
| 	mesh = "computer_monitor.obj", | ||||
| 	tiles = {"computer_black.png", "monitor_plastic.png", "computer_black.png", "monitor_plastic.png"}, | ||||
| 	paramtype = "light", | ||||
| 	light_source = 4, | ||||
| 	paramtype2 = "facedir", | ||||
| 	walkable = false, | ||||
| 	is_ground_content = true, | ||||
| 	groups = {snappy=3}, | ||||
| 	sound = default.node_sound_wood_defaults(), | ||||
| 	drawtype = "nodebox", | ||||
| 	node_box = { | ||||
| 		type = "fixed", | ||||
| 		fixed = { | ||||
| 			{-0.5, -0.3125, 0.1875, 0.5, 0.375, 0.223116}, | ||||
| 			{-0.25, -0.5, 0.125, 0.25, -0.466981, 0.5}, | ||||
| 			{-0.125, -0.5, 0.3125, 0.125, 0.0283019, 0.346698}, | ||||
| 			{-0.375, -0.3125, 0.208965, 0.375, 0.240566, 0.3125}, | ||||
| 			{-0.4375, -0.5, -0.4375, 0.4375, -0.4375, -0.125}, | ||||
| 			{-0.1875, -0.5, 0.25, 0.1875, -0.410377, 0.375}, | ||||
| 			}, | ||||
| 		}, | ||||
| 	on_rightclick = function ( pos, node, clicker, itemstack) | ||||
| 		node.name = "computer:monitor_on"; | ||||
| 		minetest.set_node(pos, node); | ||||
| 	selection_box = mo_sbox, | ||||
| 	on_rightclick = function(pos, node, clicker, itemstack) | ||||
| 		node.name = "computer:monitor_on" | ||||
| 		minetest.set_node(pos, node) | ||||
| 	end | ||||
| }) | ||||
|  | ||||
| minetest.register_node("computer:monitor_on", { | ||||
| 	description = "Monitor and keyboard", | ||||
| 	drawtype = "mesh", | ||||
| 	mesh = "computer_monitor.obj", | ||||
| 	tiles = {"monitor_display.png^[transformFX", "monitor_plastic.png", "computer_black.png", "monitor_plastic.png"}, | ||||
| 	paramtype = "light", | ||||
| 	paramtype2 = "facedir", | ||||
| 	light_source = 9, | ||||
| 	walkable = false, | ||||
| 	groups = {snappy=3, not_in_creative_inventory=1}, | ||||
| 	selection_box = mo_sbox, | ||||
| 	drop = "computer:monitor", | ||||
| 	on_rightclick = function(pos, node, clicker, itemstack) | ||||
| 		node.name = "computer:monitor" | ||||
| 		minetest.set_node(pos, node) | ||||
| 	end | ||||
| }) | ||||
|  | ||||
| minetest.register_alias("computer:monitor_bios", "computer:monitor") | ||||
| minetest.register_alias("computer:monitor_loading", "computer:monitor") | ||||
| minetest.register_alias("computer:monitor_login", "computer:monitor") | ||||
| minetest.register_alias("computer:monitor_desktop", "computer:monitor") | ||||
|  | ||||
| --WIFI Router (linksys look-a-like) | ||||
| minetest.register_node("computer:router", { | ||||
| 	description = "WIFI Router", | ||||
| 	inventory_image = "computer_router_inv.png", | ||||
| 	tiles = {"computer_router_t.png","computer_router_bt.png","computer_router_l.png","computer_router_r.png","computer_router_b.png", | ||||
| 			{name="computer_router_f_animated.png", animation={type="vertical_frames", aspect_w=32, aspect_h=32, length=1.0}},}, --"computer_router_f.png"}, | ||||
| 	paramtype = "light", | ||||
| 	paramtype2 = "facedir", | ||||
| 	walkable = false, | ||||
| 	is_ground_content = true, | ||||
| 	groups = {snappy=3}, | ||||
| 	sound = default.node_sound_wood_defaults(), | ||||
| 	drawtype = "nodebox", | ||||
| @@ -330,84 +212,42 @@ minetest.register_node("computer:router", { | ||||
| 			{-0.25, -0.5, -0.0625, 0.25, -0.375, 0.3125}, | ||||
| 			{-0.1875, -0.4375, 0.3125, -0.125, -0.1875, 0.375}, | ||||
| 			{0.125, -0.4375, 0.3125, 0.1875, -0.1875, 0.375}, | ||||
| 			{-0.0625, -0.4375, 0.3125, 0.0625, -0.25, 0.375}, | ||||
| 			}, | ||||
| 		}, | ||||
| 			{-0.0625, -0.4375, 0.3125, 0.0625, -0.25, 0.375} | ||||
| 		} | ||||
| 	} | ||||
| }) | ||||
|  | ||||
| local pct_cbox = { | ||||
| 	type = "fixed", | ||||
| 	fixed = { -0.1875, -0.5, -0.36, 0.1875, 0.34, 0.46 } | ||||
| } | ||||
|  | ||||
| --Modern PC Tower | ||||
| minetest.register_node("computer:tower_on", { | ||||
| 	description = "Computer Tower", | ||||
| 	tiles = {"computer_tower_t.png","computer_tower_bt.png","computer_tower_l.png", | ||||
| 			"computer_tower_r.png","computer_tower_b.png","computer_tower_f_on.png"}, | ||||
| 	paramtype = "light", | ||||
| 	paramtype2 = "facedir", | ||||
| 	walkable = true, | ||||
| 	is_ground_content = true, | ||||
| 	groups = {snappy=3,not_in_creative_inventory=1}, | ||||
| 	sound = default.node_sound_wood_defaults(), | ||||
| 	drawtype = "nodebox", | ||||
| 	node_box = { | ||||
| 		type = "fixed", | ||||
| 		fixed = { | ||||
| 			{-0.1875, -0.5, -0.3125, 0.1875, 0.3125, 0.4375}, | ||||
| 			{-0.1875, -0.5, -0.353774, 0.1875, 0, -0.0625}, | ||||
| 			{-0.1875, 0.247641, -0.353774, 0.1875, 0.3125, 0.1875}, | ||||
| 			}, | ||||
| 		}, | ||||
| 	selection_box = { | ||||
| 		type = "fixed", | ||||
| 		fixed = { | ||||
| 			{-0.1875, -0.5, -0.3125, 0.1875, 0.3125, 0.4375}, | ||||
| 			}, | ||||
| 		}, | ||||
| 	drop = 'computer:tower', | ||||
| 	on_rightclick = function ( pos, node, clicker, itemstack) | ||||
| 		node.name = "computer:tower"; | ||||
| 		minetest.set_node(pos, node); | ||||
| 	end | ||||
| }) | ||||
|  | ||||
| minetest.register_node("computer:tower", { | ||||
| 	description = "Computer Tower", | ||||
| 	tiles = {"computer_tower_t.png","computer_tower_bt.png","computer_tower_l.png","computer_tower_r.png", | ||||
| 			"computer_tower_b.png","computer_tower_f_off.png"}, | ||||
| 	inventory_image = "computer_tower_inv.png", | ||||
| 	drawtype = "mesh", | ||||
| 	mesh = "computer_tower.obj", | ||||
| 	tiles = {"computer_tower.png"}, | ||||
| 	paramtype = "light", | ||||
| 	paramtype2 = "facedir", | ||||
| 	walkable = true, | ||||
| 	is_ground_content = true, | ||||
| 	groups = {snappy=3}, | ||||
| 	sound = default.node_sound_wood_defaults(), | ||||
| 	drawtype = "nodebox", | ||||
| 	node_box = { | ||||
| 		type = "fixed", | ||||
| 		fixed = { | ||||
| 			{-0.1875, -0.5, -0.3125, 0.1875, 0.3125, 0.4375}, | ||||
| 			{-0.1875, -0.5, -0.353774, 0.1875, 0, -0.0625}, | ||||
| 			{-0.1875, 0.247641, -0.353774, 0.1875, 0.3125, 0.1875}, | ||||
| 			}, | ||||
| 		}, | ||||
| 	selection_box = { | ||||
| 		type = "fixed", | ||||
| 		fixed = { | ||||
| 			{-0.1875, -0.5, -0.3125, 0.1875, 0.3125, 0.4375}, | ||||
| 			}, | ||||
| 		}, | ||||
| 	on_rightclick = function ( pos, node, clicker, itemstack) | ||||
| 		node.name = "computer:tower_on"; | ||||
| 		minetest.set_node(pos, node); | ||||
| 	end | ||||
| 	selection_box = pct_cbox, | ||||
| 	collision_box = pct_cbox | ||||
| }) | ||||
|  | ||||
| minetest.register_alias("computer:tower_on", "computer:tower") | ||||
|  | ||||
| -- Printer/scaner combo | ||||
| minetest.register_node("computer:printer", { | ||||
| 	description = "Printer Scaner Combo", | ||||
| 	inventory_image = "computer_printer_inv.png", | ||||
| 	tiles = {"computer_printer_t.png","computer_printer_bt.png","computer_printer_l.png", | ||||
| 			"computer_printer_r.png","computer_printer_b.png","computer_printer_f.png"}, | ||||
| 	paramtype = "light", | ||||
| 	paramtype2 = "facedir", | ||||
| 	walkable = true, | ||||
| 	is_ground_content = true, | ||||
| 	groups = {snappy=3}, | ||||
| 	sound = default.node_sound_wood_defaults(), | ||||
| 	drawtype = "nodebox", | ||||
| @@ -421,9 +261,9 @@ minetest.register_node("computer:printer", { | ||||
| 			{-0.4375, -0.5, -0.0625, 0.4375, -0.0625, 0.375}, | ||||
| 			{-0.375, -0.4375, 0.25, 0.375, -0.0625, 0.4375}, | ||||
| 			{-0.25, -0.25, 0.4375, 0.25, 0.0625, 0.5}, | ||||
| 			{-0.25, -0.481132, -0.3125, 0.25, -0.4375, 0}, | ||||
| 			}, | ||||
| 			{-0.25, -0.481132, -0.3125, 0.25, -0.4375, 0} | ||||
| 		}, | ||||
| 	}, | ||||
| }) | ||||
|  | ||||
| --Rack Server | ||||
| @@ -439,23 +279,21 @@ minetest.register_node("computer:server", { | ||||
| 		'computer_server_f_off.png' | ||||
| 	}, | ||||
| 	inventory_image = "computer_server_inv.png", | ||||
| 	sunlight_propagates = false, | ||||
| 	paramtype = "light", | ||||
| 	paramtype2 = "facedir", | ||||
| 	walkable = true, | ||||
| 	groups = {snappy=3}, | ||||
| 		selection_box = { | ||||
| 				type = "fixed", | ||||
| 				fixed = {-0.5, -0.5, -0.25, 0.5, 1.125, 0.4375}, | ||||
| 		}, | ||||
| 		node_box = { | ||||
| 				type = "fixed", | ||||
| 				fixed = {-0.5, -0.5, -0.25, 0.5, 1.125, 0.4375}, | ||||
| 		}, | ||||
| 	selection_box = { | ||||
| 		type = "fixed", | ||||
| 		fixed = {-0.5, -0.5, -0.25, 0.5, 1.125, 0.4375} | ||||
| 	}, | ||||
| 	node_box = { | ||||
| 		type = "fixed", | ||||
| 		fixed = {-0.5, -0.5, -0.25, 0.5, 1.125, 0.4375} | ||||
| 	}, | ||||
| 	sounds = default.node_sound_wood_defaults(), | ||||
| 	on_rightclick = function ( pos, node, clicker, itemstack) | ||||
| 		node.name = "computer:server_on"; | ||||
| 		minetest.set_node(pos, node); | ||||
| 	on_rightclick = function(pos, node, clicker, itemstack) | ||||
| 		node.name = "computer:server_on" | ||||
| 		minetest.set_node(pos, node) | ||||
| 	end, | ||||
| 	on_place = function(itemstack, placer, pointed_thing) | ||||
| 		local pos = pointed_thing.above | ||||
| @@ -479,23 +317,21 @@ minetest.register_node("computer:server_on", { | ||||
| 		'computer_server_f_on.png', | ||||
| 	}, | ||||
| 	inventory_image = "computer_server_inv.png", | ||||
| 	sunlight_propagates = false, | ||||
| 	paramtype = "light", | ||||
| 	paramtype2 = "facedir", | ||||
| 	walkable = true, | ||||
| 	groups = {snappy=3,not_in_creative_inventory=1}, | ||||
| 		selection_box = { | ||||
| 				type = "fixed", | ||||
| 				fixed = {-0.5, -0.5, -0.25, 0.5, 1.125, 0.4375}, | ||||
| 		}, | ||||
| 		node_box = { | ||||
| 				type = "fixed", | ||||
| 				fixed = {-0.5, -0.5, -0.25, 0.5, 1.125, 0.4375}, | ||||
| 		}, | ||||
| 	selection_box = { | ||||
| 		type = "fixed", | ||||
| 		fixed = {-0.5, -0.5, -0.25, 0.5, 1.125, 0.4375} | ||||
| 	}, | ||||
| 	node_box = { | ||||
| 		type = "fixed", | ||||
| 		fixed = {-0.5, -0.5, -0.25, 0.5, 1.125, 0.4375} | ||||
| 	}, | ||||
| 	sounds = default.node_sound_wood_defaults(), | ||||
| 	drop = 'computer:server', | ||||
| 	on_rightclick = function ( pos, node, clicker, itemstack) | ||||
| 		node.name = "computer:server"; | ||||
| 		minetest.set_node(pos, node); | ||||
| 	on_rightclick = function(pos, node, clicker, itemstack) | ||||
| 		node.name = "computer:server" | ||||
| 		minetest.set_node(pos, node) | ||||
| 	end | ||||
| }) | ||||
|   | ||||
| @@ -1,100 +1,101 @@ | ||||
| computer = { }; | ||||
| computer = { } | ||||
|  | ||||
| computer.register = function ( name, def ) | ||||
| 	local nodename = name; | ||||
| 	if (name:sub(1, 1) == ":") then name = name:sub(2); end | ||||
| 	local modname, basename = name:match("^([^:]+):(.*)"); | ||||
| 	local TEXPFX = modname.."_"..basename.."_"; | ||||
| 	local ONSTATE = modname..":"..basename; | ||||
| 	local OFFSTATE = modname..":"..basename.."_off"; | ||||
| 	local def = def; | ||||
| computer.register = function (name, def) | ||||
| 	local nodename = name | ||||
| 	if (name:sub(1, 1) == ":") then name = name:sub(2) end | ||||
| 	local modname, basename = name:match("^([^:]+):(.*)") | ||||
| 	local TEXPFX = modname.."_"..basename.."_" | ||||
| 	local ONSTATE = modname..":"..basename | ||||
| 	local OFFSTATE = modname..":"..basename.."_off" | ||||
| 	local def = def | ||||
| 	minetest.register_node(ONSTATE, { | ||||
| 		drawtype = "nodebox"; | ||||
| 		paramtype = "light"; | ||||
| 		paramtype2 = "facedir"; | ||||
| 		description = def.description; | ||||
| 		groups = { snappy=2, choppy=2, oddly_breakable_by_hand=2 }; | ||||
| 		drawtype = "nodebox", | ||||
| 		paramtype = "light", | ||||
| 		paramtype2 = "facedir", | ||||
| 		description = def.description, | ||||
| 		inventory_image = def.inventory_image, | ||||
| 		groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2}, | ||||
| 		tiles = { | ||||
| 			TEXPFX.."tp.png", | ||||
| 			TEXPFX.."bt.png", | ||||
| 			TEXPFX.."rt.png", | ||||
| 			TEXPFX.."lt.png", | ||||
| 			TEXPFX.."bk.png", | ||||
| 			TEXPFX.."ft.png", | ||||
| 		}; | ||||
| 		node_box = def.node_box; | ||||
| 		selection_box = def.node_box; | ||||
| 		on_rightclick = function ( pos, node, clicker, itemstack) | ||||
| 			TEXPFX.."ft.png" | ||||
| 		}, | ||||
| 		node_box = def.node_box, | ||||
| 		selection_box = def.node_box, | ||||
| 		on_rightclick = function (pos, node, clicker, itemstack) | ||||
| 			if (def.on_turn_off) then | ||||
| 				if (def.on_turn_off(pos, node, clicker, itemstack)) then return; end | ||||
| 				if (def.on_turn_off(pos, node, clicker, itemstack)) then return end | ||||
| 			end | ||||
| 			node.name = OFFSTATE; | ||||
| 			minetest.set_node(pos, node); | ||||
| 		end; | ||||
| 	}); | ||||
| 			node.name = OFFSTATE | ||||
| 			minetest.set_node(pos, node) | ||||
| 		end | ||||
| 	}) | ||||
| 	minetest.register_node(OFFSTATE, { | ||||
| 		drawtype = "nodebox"; | ||||
| 		paramtype = "light"; | ||||
| 		paramtype2 = "facedir"; | ||||
| 		groups = { snappy=2, choppy=2, oddly_breakable_by_hand=2, | ||||
| 			not_in_creative_inventory=1 }; | ||||
| 		drawtype = "nodebox", | ||||
| 		paramtype = "light", | ||||
| 		paramtype2 = "facedir", | ||||
| 		groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2, not_in_creative_inventory=1}, | ||||
| 		tiles = { | ||||
| 			(TEXPFX.."tp"..(def.tiles_off.top    and "_off" or "")..".png"), | ||||
| 			(TEXPFX.."bt"..(def.tiles_off.bottom and "_off" or "")..".png"), | ||||
| 			(TEXPFX.."rt"..(def.tiles_off.right  and "_off" or "")..".png"), | ||||
| 			(TEXPFX.."lt"..(def.tiles_off.left   and "_off" or "")..".png"), | ||||
| 			(TEXPFX.."bk"..(def.tiles_off.back   and "_off" or "")..".png"), | ||||
| 			(TEXPFX.."ft"..(def.tiles_off.front  and "_off" or "")..".png"), | ||||
| 		}; | ||||
| 		node_box = def.node_box_off or def.node_box; | ||||
| 		selection_box = def.node_box_off or def.node_box; | ||||
| 		on_rightclick = function ( pos, node, clicker, itemstack) | ||||
| 			(TEXPFX.."ft"..(def.tiles_off.front  and "_off" or "")..".png") | ||||
| 		}, | ||||
| 		node_box = def.node_box_off or def.node_box, | ||||
| 		selection_box = def.node_box_off or def.node_box, | ||||
| 		on_rightclick = function (pos, node, clicker, itemstack) | ||||
| 			if (def.on_turn_on) then | ||||
| 				if (def.on_turn_on(pos, node, clicker, itemstack)) then return; end | ||||
| 				if (def.on_turn_on(pos, node, clicker, itemstack)) then return end | ||||
| 			end | ||||
| 			node.name = ONSTATE; | ||||
| 			minetest.set_node(pos, node); | ||||
| 		end; | ||||
| 		drop = ONSTATE; | ||||
| 	}); | ||||
| 			node.name = ONSTATE | ||||
| 			minetest.set_node(pos, node) | ||||
| 		end, | ||||
| 		drop = ONSTATE | ||||
| 	}) | ||||
| end | ||||
|  | ||||
| computer.register_handheld = function ( name, def ) | ||||
| 	local nodename = name; | ||||
| 	if (name:sub(1, 1) == ":") then name = name:sub(2); end | ||||
| 	local modname, basename = name:match("^([^:]+):(.*)"); | ||||
| 	local TEXPFX = modname.."_"..basename.."_inv"; | ||||
| 	local ONSTATE = modname..":"..basename; | ||||
| 	local OFFSTATE = modname..":"..basename.."_off"; | ||||
| 	local on_use = def.on_use; | ||||
| computer.register_handheld = function (name, def) | ||||
| 	local nodename = name | ||||
| 	if (name:sub(1, 1) == ":") then name = name:sub(2) end | ||||
| 	local modname, basename = name:match("^([^:]+):(.*)") | ||||
| 	local TEXPFX = modname.."_"..basename.."_inv" | ||||
| 	local ONSTATE = modname..":"..basename | ||||
| 	local OFFSTATE = modname..":"..basename.."_off" | ||||
| 	local on_use = def.on_use | ||||
| 	minetest.register_craftitem(ONSTATE, { | ||||
| 		description = def.description; | ||||
| 		inventory_image = TEXPFX..".png"; | ||||
| 		wield_image = TEXPFX..".png"; | ||||
| 	}); | ||||
| 		description = def.description, | ||||
| 		inventory_image = TEXPFX..".png", | ||||
| 		wield_image = TEXPFX..".png" | ||||
| 	}) | ||||
| end | ||||
|  | ||||
| computer.pixelnodebox = function ( size, boxes ) | ||||
| 	local fixed = { }; | ||||
| 	local i, box; | ||||
| computer.pixelnodebox = function (size, boxes) | ||||
| 	local fixed = { } | ||||
| 	local i, box | ||||
| 	for i, box in ipairs(boxes) do | ||||
| 		local x, y, z, w, h, l = unpack(box); | ||||
| 		local x, y, z, w, h, l = unpack(box) | ||||
| 		fixed[#fixed + 1] = { | ||||
| 			(x / size) - 0.5, | ||||
| 			(y / size) - 0.5, | ||||
| 			(z / size) - 0.5, | ||||
| 			((x + w) / size) - 0.5, | ||||
| 			((y + h) / size) - 0.5, | ||||
| 			((z + l) / size) - 0.5, | ||||
| 		}; | ||||
| 			((z + l) / size) - 0.5 | ||||
| 		} | ||||
| 	end | ||||
| 	return { | ||||
| 		type = "fixed"; | ||||
| 		fixed = fixed; | ||||
| 	}; | ||||
| 		type = "fixed", | ||||
| 		fixed = fixed | ||||
| 	} | ||||
| end | ||||
|  | ||||
| local MODPATH = minetest.get_modpath("computer"); | ||||
| dofile(MODPATH.."/computers.lua"); | ||||
| dofile(MODPATH.."/miscitems.lua"); | ||||
| dofile(MODPATH.."/recipes.lua"); | ||||
| local MODPATH = minetest.get_modpath("computer") | ||||
| dofile(MODPATH.."/computers.lua") | ||||
| dofile(MODPATH.."/miscitems.lua") | ||||
| dofile(MODPATH.."/recipes.lua") | ||||
| dofile(MODPATH.."/tetris.lua") | ||||
|   | ||||
							
								
								
									
										1618
									
								
								mods/homedecor_modpack/computer/models/computer_monitor.obj
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										33
									
								
								mods/homedecor_modpack/computer/models/computer_tower.obj
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,33 @@ | ||||
| # Blender v2.72 (sub 0) OBJ File: '' | ||||
| # www.blender.org | ||||
| mtllib computer_tower.mtl | ||||
| o Cube.001 | ||||
| v -0.182508 -0.499998 0.450000 | ||||
| v -0.182508 -0.499998 -0.349946 | ||||
| v 0.182508 -0.499998 -0.349946 | ||||
| v 0.182508 -0.499998 0.450000 | ||||
| v -0.182508 0.335734 0.450000 | ||||
| v 0.182508 0.335734 0.450000 | ||||
| v 0.182508 0.335734 -0.349946 | ||||
| v -0.182508 0.335734 -0.349947 | ||||
| vt 0.999994 0.750017 | ||||
| vt 0.500006 0.749983 | ||||
| vt 0.500002 0.499996 | ||||
| vt 0.999997 0.500009 | ||||
| vt 0.499989 0.999941 | ||||
| vt 0.999986 0.999931 | ||||
| vt 0.500005 0.000003 | ||||
| vt 0.000007 0.500002 | ||||
| vt -0.000003 0.000003 | ||||
| vt 0.250005 0.999991 | ||||
| vt 0.250005 0.499995 | ||||
| vt 0.999993 0.000002 | ||||
| vt 0.000017 0.999997 | ||||
| usemtl Material.001 | ||||
| s off | ||||
| f 1/1 2/2 3/3 4/4 | ||||
| f 5/5 6/2 7/1 8/6 | ||||
| f 1/7 5/3 8/8 2/9 | ||||
| f 2/3 8/5 7/10 3/11 | ||||
| f 3/12 7/4 6/3 4/7 | ||||
| f 5/13 1/8 4/11 6/10 | ||||
							
								
								
									
										34
									
								
								mods/homedecor_modpack/computer/models/tetris_arcade.obj
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,34 @@ | ||||
| # Blender v2.72 (sub 0) OBJ File: '' | ||||
| # www.blender.org | ||||
| mtllib vending_machine.mtl | ||||
| o Cube | ||||
| v 0.499998 -0.499998 -0.499998 | ||||
| v 0.499998 -0.499998 0.499998 | ||||
| v -0.499998 -0.499998 0.499998 | ||||
| v -0.499998 -0.499998 -0.499998 | ||||
| v 0.499998 1.499994 -0.499998 | ||||
| v 0.499998 1.499994 0.499998 | ||||
| v -0.499998 1.499994 0.499998 | ||||
| v -0.499998 1.499994 -0.499998 | ||||
| vt 0.250050 0.250050 | ||||
| vt 0.000100 0.250050 | ||||
| vt 0.000100 0.000100 | ||||
| vt 0.250050 0.000100 | ||||
| vt 0.250050 0.749950 | ||||
| vt 0.250050 0.999900 | ||||
| vt 0.000100 0.999900 | ||||
| vt 0.000100 0.749950 | ||||
| vt 0.999900 0.250049 | ||||
| vt 0.999900 0.749949 | ||||
| vt 0.749950 0.749950 | ||||
| vt 0.749950 0.250050 | ||||
| vt 0.500000 0.749950 | ||||
| vt 0.500000 0.250050 | ||||
| usemtl Material | ||||
| s off | ||||
| f 1/1 2/2 3/3 4/4 | ||||
| f 5/5 8/6 7/7 6/8 | ||||
| f 1/1 5/5 6/8 2/2 | ||||
| f 2/9 6/10 7/11 3/12 | ||||
| f 3/12 7/11 8/13 4/14 | ||||
| f 5/5 1/1 4/14 8/13 | ||||
| @@ -3,132 +3,141 @@ | ||||
| -- License is WTFPL (see README.txt). | ||||
|  | ||||
| minetest.register_craft({ | ||||
| 	output = "computer:shefriendSOO"; | ||||
| 	output = "computer:shefriendSOO", | ||||
| 	recipe = { | ||||
| 		{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", }, | ||||
| 		{ "homedecor:plastic_sheeting", "default:glass", "homedecor:plastic_sheeting", }, | ||||
| 		{ "homedecor:plastic_sheeting", "default:wood", "homedecor:plastic_sheeting", }, | ||||
| 	}; | ||||
| }); | ||||
| 		{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }, | ||||
| 		{ "homedecor:plastic_sheeting", "default:glass", "homedecor:plastic_sheeting" }, | ||||
| 		{ "homedecor:plastic_sheeting", "default:wood", "homedecor:plastic_sheeting" } | ||||
| 	} | ||||
| }) | ||||
|  | ||||
| minetest.register_craft({ | ||||
| 	output = "computer:slaystation"; | ||||
| 	output = "computer:slaystation", | ||||
| 	recipe = { | ||||
| 		{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", }, | ||||
| 		{ "homedecor:plastic_sheeting", "default:wood", "homedecor:plastic_sheeting", }, | ||||
| 	}; | ||||
| }); | ||||
| 		{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }, | ||||
| 		{ "homedecor:plastic_sheeting", "default:wood", "homedecor:plastic_sheeting" } | ||||
| 	} | ||||
| }) | ||||
|  | ||||
| minetest.register_craft({ | ||||
| 	output = "computer:vanio"; | ||||
| 	output = "computer:vanio", | ||||
| 	recipe = { | ||||
| 		{ "homedecor:plastic_sheeting", "", "", }, | ||||
| 		{ "homedecor:plastic_sheeting", "", "" }, | ||||
| 		{ "default:glass", "", "" }, | ||||
| 		{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", }, | ||||
| 	}; | ||||
| }); | ||||
| 		{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" } | ||||
| 	} | ||||
| }) | ||||
|  | ||||
| minetest.register_craft({ | ||||
| 	output = "computer:specter"; | ||||
| 	output = "computer:specter", | ||||
| 	recipe = { | ||||
| 		{ "", "", "homedecor:plastic_sheeting", }, | ||||
| 		{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", }, | ||||
| 		{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", }, | ||||
| 	}; | ||||
| }); | ||||
| 		{ "", "", "homedecor:plastic_sheeting" }, | ||||
| 		{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }, | ||||
| 		{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" } | ||||
| 	} | ||||
| }) | ||||
|  | ||||
| minetest.register_craft({ | ||||
| 	output = "computer:slaystation2"; | ||||
| 	output = "computer:slaystation2", | ||||
| 	recipe = { | ||||
| 		{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", }, | ||||
| 		{ "homedecor:plastic_sheeting", "default:steel_ingot", "homedecor:plastic_sheeting", }, | ||||
| 	}; | ||||
| }); | ||||
| 		{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }, | ||||
| 		{ "homedecor:plastic_sheeting", "default:steel_ingot", "homedecor:plastic_sheeting" } | ||||
| 	} | ||||
| }) | ||||
|  | ||||
| minetest.register_craft({ | ||||
| 	output = "computer:admiral64"; | ||||
| 	output = "computer:admiral64", | ||||
| 	recipe = { | ||||
| 		{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", }, | ||||
| 		{ "default:wood", "default:wood", "default:wood", }, | ||||
| 	}; | ||||
| }); | ||||
| 		{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }, | ||||
| 		{ "default:wood", "default:wood", "default:wood" } | ||||
| 	} | ||||
| }) | ||||
|  | ||||
| minetest.register_craft({ | ||||
| 	output = "computer:admiral128"; | ||||
| 	output = "computer:admiral128", | ||||
| 	recipe = { | ||||
| 		{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", }, | ||||
| 		{ "default:steel_ingot", "default:steel_ingot", "default:steel_ingot", }, | ||||
| 	}; | ||||
| }); | ||||
| 		{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }, | ||||
| 		{ "default:steel_ingot", "default:steel_ingot", "default:steel_ingot" } | ||||
| 	} | ||||
| }) | ||||
|  | ||||
| minetest.register_craft({ | ||||
| 	output = "computer:wee"; | ||||
| 	output = "computer:wee", | ||||
| 	recipe = { | ||||
| 		{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", }, | ||||
| 		{ "homedecor:plastic_sheeting", "default:copper_ingot", "homedecor:plastic_sheeting", }, | ||||
| 	}; | ||||
| }); | ||||
| 		{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }, | ||||
| 		{ "homedecor:plastic_sheeting", "default:copper_ingot", "homedecor:plastic_sheeting" } | ||||
| 	} | ||||
| }) | ||||
|  | ||||
| minetest.register_craft({ | ||||
| 	output = "computer:piepad"; | ||||
| 	output = "computer:piepad", | ||||
| 	recipe = { | ||||
| 		{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", }, | ||||
| 		{ "homedecor:plastic_sheeting", "default:glass", "homedecor:plastic_sheeting", }, | ||||
| 	}; | ||||
| }); | ||||
| 		{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }, | ||||
| 		{ "homedecor:plastic_sheeting", "default:glass", "homedecor:plastic_sheeting" } | ||||
| 	} | ||||
| }) | ||||
|  | ||||
| --new stuff | ||||
|  | ||||
| minetest.register_craft({ | ||||
| 	output = "computer:monitor"; | ||||
| 	output = "computer:monitor", | ||||
| 	recipe = { | ||||
| 		{ "homedecor:plastic_sheeting", "default:glass","", }, | ||||
| 		{ "homedecor:plastic_sheeting", "default:glass","", }, | ||||
| 		{ "homedecor:plastic_sheeting", "default:mese_crystal_fragment", "homedecor:plastic_sheeting", }, | ||||
| 	}; | ||||
| }); | ||||
| 		{ "homedecor:plastic_sheeting", "default:glass","" }, | ||||
| 		{ "homedecor:plastic_sheeting", "default:glass","" }, | ||||
| 		{ "homedecor:plastic_sheeting", "default:mese_crystal_fragment", "homedecor:plastic_sheeting" } | ||||
| 	} | ||||
| }) | ||||
|  | ||||
| minetest.register_craft({ | ||||
| 	output = "computer:router"; | ||||
| 	output = "computer:router", | ||||
| 	recipe = { | ||||
| 		{ "default:steel_ingot","","", }, | ||||
| 		{ "default:steel_ingot" ,"homedecor:plastic_sheeting", "homedecor:plastic_sheeting", }, | ||||
| 		{ "default:mese_crystal_fragment","homedecor:plastic_sheeting", "homedecor:plastic_sheeting",  }, | ||||
| 	}; | ||||
| }); | ||||
| 		{ "default:steel_ingot","","" }, | ||||
| 		{ "default:steel_ingot" ,"homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }, | ||||
| 		{ "default:mese_crystal_fragment","homedecor:plastic_sheeting", "homedecor:plastic_sheeting"  } | ||||
| 	} | ||||
| }) | ||||
|  | ||||
| minetest.register_craft({ | ||||
| 	output = "computer:tower"; | ||||
| 	output = "computer:tower", | ||||
| 	recipe = { | ||||
| 		{ "homedecor:plastic_sheeting", "default:steel_ingot", "homedecor:plastic_sheeting", }, | ||||
| 		{ "homedecor:plastic_sheeting", "default:mese_crystal", "homedecor:plastic_sheeting", }, | ||||
| 		{ "homedecor:plastic_sheeting", "default:steel_ingot", "homedecor:plastic_sheeting", }, | ||||
| 	}; | ||||
| }); | ||||
| 		{ "homedecor:plastic_sheeting", "default:steel_ingot", "homedecor:plastic_sheeting" }, | ||||
| 		{ "homedecor:plastic_sheeting", "default:mese_crystal", "homedecor:plastic_sheeting" }, | ||||
| 		{ "homedecor:plastic_sheeting", "default:steel_ingot", "homedecor:plastic_sheeting" } | ||||
| 	} | ||||
| }) | ||||
|  | ||||
| minetest.register_craft({ | ||||
| 	output = "computer:printer"; | ||||
| 	output = "computer:printer", | ||||
| 	recipe = { | ||||
| 		{ "homedecor:plastic_sheeting", "default:steel_ingot","", }, | ||||
| 		{ "homedecor:plastic_sheeting", "default:mese_crystal", "homedecor:plastic_sheeting", }, | ||||
| 		{ "homedecor:plastic_sheeting", "default:coal_lump", "homedecor:plastic_sheeting", }, | ||||
| 	}; | ||||
| }); | ||||
| 		{ "homedecor:plastic_sheeting", "default:steel_ingot","" }, | ||||
| 		{ "homedecor:plastic_sheeting", "default:mese_crystal", "homedecor:plastic_sheeting" }, | ||||
| 		{ "homedecor:plastic_sheeting", "default:coal_lump", "homedecor:plastic_sheeting" } | ||||
| 	} | ||||
| }) | ||||
|  | ||||
| minetest.register_craft({ | ||||
| 	output = "computer:printer"; | ||||
| 	output = "computer:printer", | ||||
| 	recipe = { | ||||
| 		{ "homedecor:plastic_sheeting", "default:steel_ingot","", }, | ||||
| 		{ "homedecor:plastic_sheeting", "default:mese_crystal", "homedecor:plastic_sheeting", }, | ||||
| 		{ "homedecor:plastic_sheeting", "dye:black", "homedecor:plastic_sheeting", }, | ||||
| 	}; | ||||
| }); | ||||
| 		{ "homedecor:plastic_sheeting", "default:steel_ingot","" }, | ||||
| 		{ "homedecor:plastic_sheeting", "default:mese_crystal", "homedecor:plastic_sheeting" }, | ||||
| 		{ "homedecor:plastic_sheeting", "dye:black", "homedecor:plastic_sheeting", } | ||||
| 	} | ||||
| }) | ||||
|  | ||||
| minetest.register_craft({ | ||||
| 	output = "computer:server"; | ||||
| 	output = "computer:server", | ||||
| 	recipe = { | ||||
| 		{ "computer:tower", "computer:tower", "computer:tower", }, | ||||
| 		{ "computer:tower", "computer:tower", "computer:tower", }, | ||||
| 		{ "computer:tower", "computer:tower", "computer:tower", }, | ||||
| 	}; | ||||
| }); | ||||
| 		{ "computer:tower", "computer:tower", "computer:tower" }, | ||||
| 		{ "computer:tower", "computer:tower", "computer:tower" } | ||||
| 	} | ||||
| }) | ||||
|  | ||||
| minetest.register_craft({ | ||||
| 	output = "computer:tetris_arcade", | ||||
| 	recipe = { | ||||
| 		{ "homedecor:plastic_sheeting", "homedecor:power_crystal", "homedecor:plastic_sheeting", }, | ||||
| 		{ "dye:black", "default:glass", "dye:black" }, | ||||
| 		{ "homedecor:plastic_sheeting", "homedecor:power_crystal", "homedecor:plastic_sheeting" } | ||||
| 	} | ||||
| }) | ||||
|   | ||||
							
								
								
									
										282
									
								
								mods/homedecor_modpack/computer/tetris.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,282 @@ | ||||
| local shapes = { | ||||
|    {  { x = {0, 1, 0, 1}, y = {0, 0, 1, 1} } }, | ||||
|       | ||||
|    {  { x = {1, 1, 1, 1}, y = {0, 1, 2, 3} }, | ||||
|       { x = {0, 1, 2, 3}, y = {1, 1, 1, 1} } }, | ||||
|  | ||||
|    {  { x = {0, 0, 1, 1}, y = {0, 1, 1, 2} }, | ||||
|       { x = {1, 2, 0, 1}, y = {0, 0, 1, 1} } }, | ||||
|  | ||||
|    {  { x = {1, 0, 1, 0}, y = {0, 1, 1, 2} }, | ||||
|       { x = {0, 1, 1, 2}, y = {0, 0, 1, 1} } }, | ||||
|  | ||||
|    {  { x = {1, 2, 1, 1}, y = {0, 0, 1, 2} }, | ||||
|       { x = {0, 1, 2, 2}, y = {1, 1, 1, 2} }, | ||||
|       { x = {1, 1, 0, 1}, y = {0, 1, 2, 2} }, | ||||
|       { x = {0, 0, 1, 2}, y = {0, 1, 1, 1} } }, | ||||
|  | ||||
|    {  { x = {1, 1, 1, 2}, y = {0, 1, 2, 2} }, | ||||
|       { x = {0, 1, 2, 0}, y = {1, 1, 1, 2} }, | ||||
|       { x = {0, 1, 1, 1}, y = {0, 0, 1, 2} }, | ||||
|       { x = {0, 1, 2, 2}, y = {1, 1, 1, 0} } }, | ||||
|  | ||||
|    {  { x = {1, 0, 1, 2}, y = {0, 1, 1, 1} }, | ||||
|       { x = {1, 1, 1, 2}, y = {0, 1, 2, 1} }, | ||||
|       { x = {0, 1, 2, 1}, y = {1, 1, 1, 2} }, | ||||
|       { x = {0, 1, 1, 1}, y = {1, 0, 1, 2} } } } | ||||
|  | ||||
| local colors = { "computer_cyan.png", "computer_magenta.png", "computer_red.png", | ||||
| 	"computer_blue.png", "computer_green.png", "computer_orange.png", "computer_yellow.png" } | ||||
|  | ||||
| local background = "image[0,0;3.55,6.66;computer_black.png]" | ||||
| local buttons = "button[3,4.5;0.6,0.6;left;<]" | ||||
| 	.."button[3.6,4.5;0.6,0.6;rotateleft;L]" | ||||
| 	.."button[4.2,4.5;0.6,0.6;down;v]" | ||||
| 	.."button[4.2,5.3;0.6,0.6;drop;V]" | ||||
| 	.."button[4.8,4.5;0.6,0.6;rotateright;R]" | ||||
| 	.."button[5.4,4.5;0.6,0.6;right;>]" | ||||
| 	.."button[3.5,3;2,2;new;New Game]" | ||||
|  | ||||
| local formsize = "size[5.9,5.7]" | ||||
| local boardx, boardy = 0, 0 | ||||
| local sizex, sizey, size = 0.29, 0.29, 0.31 | ||||
|  | ||||
| local comma = "," | ||||
| local semi = ";" | ||||
| local close = "]" | ||||
|  | ||||
| local concat = table.concat | ||||
| local insert = table.insert | ||||
|  | ||||
| local draw_shape = function(id, x, y, rot, posx, posy) | ||||
| 	local d = shapes[id][rot] | ||||
| 	local scr = {} | ||||
| 	local ins = #scr | ||||
|  | ||||
| 	for i=1,4 do | ||||
| 		local tmp = { "image[", | ||||
| 			(d.x[i]+x)*sizex+posx, comma, | ||||
| 			(d.y[i]+y)*sizey+posy, semi, | ||||
| 			size, comma, size, semi, | ||||
| 			colors[id], close } | ||||
|  | ||||
| 		ins = ins + 1 | ||||
| 		scr[ins] = concat(tmp) | ||||
| 	end | ||||
|  | ||||
| 	return concat(scr) | ||||
| end | ||||
|  | ||||
| local function step(pos, fields) | ||||
| 	local meta = minetest.get_meta(pos) | ||||
| 	local t = minetest.deserialize(meta:get_string("tetris")) | ||||
| 	 | ||||
| 	local function new_game(pos) | ||||
| 		local nex = math.random(7) | ||||
|  | ||||
| 		t = { | ||||
| 			board = {}, | ||||
| 			boardstring = "", | ||||
| 			previewstring = draw_shape(nex, 0, 0, 1, 4, 1), | ||||
| 			score = 0, | ||||
| 			cur = math.random(7), | ||||
| 			nex = nex, | ||||
| 			x=4, y=0, rot=1  | ||||
| 		} | ||||
|  | ||||
| 		local timer = minetest.get_node_timer(pos) | ||||
| 		timer:set(0.3, 0) | ||||
| 	end | ||||
|  | ||||
| 	local function update_boardstring() | ||||
| 		local scr = {} | ||||
| 		local ins = #scr | ||||
|  | ||||
| 		for i, line in pairs(t.board) do | ||||
| 			for _, tile in pairs(line) do | ||||
| 				local tmp = { "image[", | ||||
| 					tile[1]*sizex+boardx, comma, | ||||
| 					i*sizey+boardy, semi, | ||||
| 					size, comma, size, semi, | ||||
| 					colors[tile[2]], close } | ||||
| 				 | ||||
| 				ins = ins + 1 | ||||
| 				scr[ins] = concat(tmp) | ||||
| 			end | ||||
| 		end | ||||
|  | ||||
| 		t.boardstring = concat(scr) | ||||
| 	end | ||||
|  | ||||
| 	local function add() | ||||
| 		local d = shapes[t.cur][t.rot] | ||||
|  | ||||
| 		for i=1,4 do | ||||
| 			local l = d.y[i] + t.y | ||||
| 			if not t.board[l] then t.board[l] = {} end | ||||
| 			insert(t.board[l], {d.x[i] + t.x, t.cur}) | ||||
| 		end | ||||
| 	end | ||||
|  | ||||
| 	local function scroll(l) | ||||
| 		for i=l, 1, -1 do | ||||
| 			t.board[i] = t.board[i-1] or {} | ||||
| 		end | ||||
| 	end | ||||
|  | ||||
| 	local function check_lines() | ||||
| 		for i, line in pairs(t.board) do | ||||
| 			if #line >= 10 then | ||||
| 				scroll(i) | ||||
| 				t.score = t.score + 20 | ||||
| 			end | ||||
| 		end | ||||
| 	end | ||||
|  | ||||
| 	local function check_position(x, y, rot) | ||||
| 		local d = shapes[t.cur][rot] | ||||
|  | ||||
| 		for i=1,4 do | ||||
| 			local cx, cy = d.x[i]+x, d.y[i]+y | ||||
| 			 | ||||
| 			if cx < 0 or cx > 9 or cy < 0 or cy > 19 then | ||||
| 				return false  | ||||
| 			end | ||||
|  | ||||
| 			for _, tile in pairs(t.board[ cy ] or {}) do | ||||
| 				if tile[1] == cx then return false end | ||||
| 			end | ||||
| 		end | ||||
|  | ||||
| 		return true | ||||
| 	end | ||||
|  | ||||
| 	local function stuck() | ||||
| 		if check_position(t.x, t.y+1, t.rot) then return false end | ||||
| 		return true | ||||
| 	end | ||||
|  | ||||
| 	local function tick() | ||||
| 		if stuck() then	 | ||||
| 			if t.y <= 0 then | ||||
| 				return false end | ||||
| 			add() | ||||
| 			check_lines() | ||||
| 			update_boardstring() | ||||
| 			t.cur, t.nex = t.nex, math.random(7) | ||||
| 			t.x, t.y, t.rot = 4, 0, 1 | ||||
| 			t.previewstring = draw_shape(t.nex, 0, 0, 1, 4.1, 0.6) | ||||
| 		else | ||||
| 			t.y = t.y + 1 | ||||
| 		end | ||||
| 		return true | ||||
| 	end   | ||||
|  | ||||
| 	local function move(dx, dy) | ||||
| 		local newx, newy = t.x+dx, t.y+dy | ||||
| 		if not check_position(newx, newy, t.rot) then return end | ||||
| 		t.x, t.y = newx, newy | ||||
| 	end | ||||
|  | ||||
| 	local function rotate(dr) | ||||
| 		local no = #(shapes[t.cur]) | ||||
| 		local newrot = (t.rot+dr) % no | ||||
|  | ||||
| 		if newrot<1 then newrot = newrot+no end | ||||
| 		if not check_position(t.x, t.y, newrot) then return end | ||||
| 		t.rot = newrot | ||||
| 	end | ||||
|  | ||||
| 	local function key() | ||||
| 		if fields.left then | ||||
| 			move(-1, 0) | ||||
| 		end | ||||
| 		if fields.rotateleft then | ||||
| 			rotate(-1) | ||||
| 		end | ||||
| 		if fields.down then | ||||
| 			t.score = t.score + 1 | ||||
| 			move(0, 1) | ||||
| 		end | ||||
| 		if fields.drop then | ||||
| 		   while not stuck() do | ||||
| 			  t.score = t.score + 2 | ||||
| 		      move(0, 1) | ||||
| 		   end | ||||
| 		end | ||||
| 		if fields.rotateright then | ||||
| 			rotate(1) | ||||
| 		end | ||||
| 		if fields.right then | ||||
| 			move(1, 0) | ||||
| 		end | ||||
| 	end | ||||
|  | ||||
| 	local run = true | ||||
|  | ||||
| 	if fields then | ||||
| 		if fields.new then | ||||
| 			new_game(pos) | ||||
| 		else | ||||
| 			key(fields) | ||||
| 		end | ||||
| 	else | ||||
| 		run = tick() | ||||
| 	end | ||||
|  | ||||
| 	if t ~= nil then | ||||
| 	local scr = { formsize, background,  | ||||
| 		t.boardstring, t.previewstring, | ||||
| 		draw_shape(t.cur, t.x, t.y, t.rot, boardx, boardy), | ||||
| 		"label[3.8,0.1;Next...]label[3.8,2.7;Score: ",  | ||||
| 		t.score, close, buttons } | ||||
|  | ||||
|  | ||||
| 		meta:set_string("formspec", concat(scr) | ||||
| 			..default.gui_bg..default.gui_bg_img..default.gui_slots) | ||||
| 		meta:set_string("tetris", minetest.serialize(t)) | ||||
| 	end | ||||
|  | ||||
| 	return run | ||||
| end | ||||
|  | ||||
| minetest.register_node("computer:tetris_arcade", { | ||||
| 	description="Tetris Arcade", | ||||
| 	drawtype = "mesh", | ||||
| 	mesh = "tetris_arcade.obj", | ||||
| 	tiles = {"tetris_arcade.png"}, | ||||
| 	paramtype = "light", | ||||
| 	paramtype2 = "facedir", | ||||
| 	groups = {snappy=3}, | ||||
| 	on_rotate = screwdriver.rotate_simple, | ||||
| 	selection_box = { | ||||
| 		type = "fixed", | ||||
| 		fixed = {-0.5, -0.5, -0.5, 0.5, 1.5, 0.5} | ||||
| 	}, | ||||
| 	collision_box = { | ||||
| 		type = "fixed", | ||||
| 		fixed = {-0.5, -0.5, -0.5, 0.5, 1.5, 0.5} | ||||
| 	}, | ||||
| 	on_construct = function(pos) | ||||
| 		local meta = minetest.get_meta(pos) | ||||
| 		meta:set_string("formspec", formsize.."button[2,2.5;2,2;new;New Game]" | ||||
| 			..default.gui_bg..default.gui_bg_img..default.gui_slots) | ||||
| 	end, | ||||
| 	on_timer = function(pos) | ||||
| 		return step(pos, nil) | ||||
| 	end, | ||||
| 	on_receive_fields = function(pos, formanme, fields, sender) | ||||
| 		step(pos, fields) | ||||
| 	end, | ||||
| 	on_place = function(itemstack, placer, pointed_thing) | ||||
| 		local pos = pointed_thing.above | ||||
| 		if minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}).name ~= "air" then | ||||
| 			minetest.chat_send_player(placer:get_player_name(), "No room for place the Arcade!") | ||||
| 		return end | ||||
| 		local dir = placer:get_look_dir() | ||||
| 		local node = {name="computer:tetris_arcade", param1=0, param2 = minetest.dir_to_facedir(dir)} | ||||
| 		minetest.set_node(pos, node) | ||||
| 		itemstack:take_item() | ||||
| 		return itemstack | ||||
| 	end | ||||
| }) | ||||
							
								
								
									
										
											BIN
										
									
								
								mods/homedecor_modpack/computer/textures/computer_ad128_inv.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 2.3 KiB | 
							
								
								
									
										
											BIN
										
									
								
								mods/homedecor_modpack/computer/textures/computer_ad64_inv.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 2.2 KiB | 
| Before Width: | Height: | Size: 96 B | 
| Before Width: | Height: | Size: 96 B | 
| Before Width: | Height: | Size: 4.1 KiB | 
| Before Width: | Height: | Size: 96 B | 
| Before Width: | Height: | Size: 96 B | 
| Before Width: | Height: | Size: 5.7 KiB | 
							
								
								
									
										
											BIN
										
									
								
								mods/homedecor_modpack/computer/textures/computer_black.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 82 B | 
							
								
								
									
										
											BIN
										
									
								
								mods/homedecor_modpack/computer/textures/computer_blue.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 114 B | 
							
								
								
									
										
											BIN
										
									
								
								mods/homedecor_modpack/computer/textures/computer_cyan.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 114 B | 
							
								
								
									
										
											BIN
										
									
								
								mods/homedecor_modpack/computer/textures/computer_green.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 114 B | 
							
								
								
									
										
											BIN
										
									
								
								mods/homedecor_modpack/computer/textures/computer_laptop_inv.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 2.7 KiB | 
							
								
								
									
										
											BIN
										
									
								
								mods/homedecor_modpack/computer/textures/computer_magenta.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 114 B | 
| Before Width: | Height: | Size: 109 B | 
| Before Width: | Height: | Size: 102 B | 
| Before Width: | Height: | Size: 105 B | 
| Before Width: | Height: | Size: 3.1 KiB | 
| Before Width: | Height: | Size: 13 KiB | 
| Before Width: | Height: | Size: 96 B | 
| Before Width: | Height: | Size: 824 B | 
| Before Width: | Height: | Size: 549 B | 
| Before Width: | Height: | Size: 102 B | 
| Before Width: | Height: | Size: 123 B | 
| After Width: | Height: | Size: 2.7 KiB | 
| Before Width: | Height: | Size: 83 B | 
| Before Width: | Height: | Size: 83 B | 
| Before Width: | Height: | Size: 156 B | 
| Before Width: | Height: | Size: 153 B | 
| Before Width: | Height: | Size: 168 B | 
							
								
								
									
										
											BIN
										
									
								
								mods/homedecor_modpack/computer/textures/computer_orange.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 114 B | 
| After Width: | Height: | Size: 2.4 KiB | 
							
								
								
									
										
											BIN
										
									
								
								mods/homedecor_modpack/computer/textures/computer_ps1_inv.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 2.3 KiB | 
							
								
								
									
										
											BIN
										
									
								
								mods/homedecor_modpack/computer/textures/computer_ps2_inv.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 2.3 KiB | 
							
								
								
									
										
											BIN
										
									
								
								mods/homedecor_modpack/computer/textures/computer_red.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 114 B | 
							
								
								
									
										
											BIN
										
									
								
								mods/homedecor_modpack/computer/textures/computer_router_inv.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 1.9 KiB | 
| After Width: | Height: | Size: 2.3 KiB | 
							
								
								
									
										
											BIN
										
									
								
								mods/homedecor_modpack/computer/textures/computer_tower.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 5.7 KiB | 
| Before Width: | Height: | Size: 355 B | 
| Before Width: | Height: | Size: 83 B | 
| Before Width: | Height: | Size: 282 B | 
| Before Width: | Height: | Size: 286 B | 
							
								
								
									
										
											BIN
										
									
								
								mods/homedecor_modpack/computer/textures/computer_tower_inv.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 1.7 KiB | 
| Before Width: | Height: | Size: 148 B | 
| Before Width: | Height: | Size: 201 B | 
| Before Width: | Height: | Size: 83 B | 
							
								
								
									
										
											BIN
										
									
								
								mods/homedecor_modpack/computer/textures/computer_wii_inv.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 2.1 KiB | 
							
								
								
									
										
											BIN
										
									
								
								mods/homedecor_modpack/computer/textures/computer_yellow.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 114 B | 
							
								
								
									
										
											BIN
										
									
								
								mods/homedecor_modpack/computer/textures/monitor_display.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 6.3 KiB | 
							
								
								
									
										
											BIN
										
									
								
								mods/homedecor_modpack/computer/textures/monitor_plastic.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 164 B | 
							
								
								
									
										
											BIN
										
									
								
								mods/homedecor_modpack/computer/textures/tetris_arcade.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 9.1 KiB | 
| Before Width: | Height: | Size: 96 B | 
| Before Width: | Height: | Size: 96 B | 
| Before Width: | Height: | Size: 4.1 KiB | 
| Before Width: | Height: | Size: 96 B | 
| Before Width: | Height: | Size: 96 B | 
| Before Width: | Height: | Size: 5.7 KiB | 
| Before Width: | Height: | Size: 122 B | 
| Before Width: | Height: | Size: 129 B | 
| Before Width: | Height: | Size: 259 B | 
| Before Width: | Height: | Size: 1.2 KiB | 
| Before Width: | Height: | Size: 167 B | 
| Before Width: | Height: | Size: 296 B | 
| Before Width: | Height: | Size: 324 B | 
| Before Width: | Height: | Size: 322 B | 
| Before Width: | Height: | Size: 350 B | 
| Before Width: | Height: | Size: 149 B | 
| Before Width: | Height: | Size: 128 B | 
| Before Width: | Height: | Size: 403 B | 
| Before Width: | Height: | Size: 1.5 KiB | 
| Before Width: | Height: | Size: 128 B | 
| Before Width: | Height: | Size: 374 B | 
| Before Width: | Height: | Size: 128 B | 
| Before Width: | Height: | Size: 129 B | 
| Before Width: | Height: | Size: 128 B | 
| Before Width: | Height: | Size: 436 B | 
| Before Width: | Height: | Size: 162 B | 
| @@ -1,21 +1,7 @@ | ||||
| JP's Fork of LazyJ's Minetest Mod, "Fake Fire" | ||||
| by : JP. | ||||
|  | ||||
| Replaced LazyJ's smoke nodes pictures by smoke particles. Lighter, prettier, configurable smoke. | ||||
|  | ||||
| ====================================================================== | ||||
|  | ||||
|  | ||||
| LazyJ's Fork of Semmett9's Minetest Mod, "Fake Fire" | ||||
| by: | ||||
| LazyJ | ||||
|  | ||||
| This is my fork of Semmett9's "Fake Fire" mod. Some code clean-up, a | ||||
| bunch of changes and a few new things have been added.  | ||||
|  | ||||
|  | ||||
|  | ||||
| ====================================================================== | ||||
| Semmett9's "Fake Fire" mod.  kilbith's fork. | ||||
| Some textures by LazyJ. | ||||
| Fancy mesh fire model/texture by NathanS (CC-0). | ||||
| ============================================================== | ||||
|  | ||||
|  | ||||
|                     GNU GENERAL PUBLIC LICENSE | ||||
|   | ||||
| @@ -1,62 +0,0 @@ | ||||
| ##### JP's Fork of LazyJ's Minetest Mod, "Fake Fire" | ||||
|  | ||||
| Replaced LazyJ's smoke nodes pictures by smoke particles. Lighter, prettier, configurable smoke. | ||||
|  | ||||
|  | ||||
|  | ||||
| ##### LazyJ's Fork of Semmett9's "Fake Fire" Mod | ||||
|  | ||||
| This fork of 'Fake Fire' is based off of Semmett9's 2014_03_14 release of the | ||||
| mod. | ||||
|  | ||||
| At LinuxGaming.us, we have a creative-leaning Minetest server. Destruction by | ||||
| arson is not something we like. When the Fake Fire mod was installed we finally | ||||
| could make warm hearths and campfires without fear of burning down our builds. | ||||
| We could also use Fake Fire to simulate things burning without worrying our | ||||
| neighbors about the fires spreading and destroying their stuff. | ||||
|  | ||||
| As a creative bunch of Minetesters, we often come up with new ideas for things. | ||||
| This fork of "Fake Fire" incorporates some of those ideas. | ||||
|  | ||||
|  | ||||
| Semmett9's original version of this mod can be found here: | ||||
|  | ||||
| * Minetest.net | ||||
| http://forum.minetest.net/viewtopic.php?id=6145 | ||||
|  | ||||
| * Ad.Fly | ||||
| http://adf.ly/RbzwV | ||||
|  | ||||
| Yes, it has advertisements. That's what helps to pay for hosting Semmett9's | ||||
| website and server costs. Everything has a cost. Someone pays. Even when it | ||||
| comes to so-called free, open-source software. Someone pays. Everything has a | ||||
| cost. Try running your own business and you will understand. There are no | ||||
| free lunches in life. | ||||
|  | ||||
| Ok, done ranting. ;)- | ||||
|  | ||||
|  | ||||
| ~ LazyJ, 2014_06_19 | ||||
|  | ||||
|  | ||||
|  | ||||
| Minetest version:  0.4.9 | ||||
| Depends: default | ||||
| Recommended Additional Mods: none | ||||
| License:  GPL v2 | ||||
| Source Code:  http://github.com/LazyJ/fake_fire | ||||
| Download (.zip):  http://github.com/LazyJ/fake_fire/archive/master.zip | ||||
|  | ||||
| Install: | ||||
| 	* After downloading, unzip the file. | ||||
| 	* Rename the directory "fake_fire_fork-master" to "fake_fire" | ||||
| 	* Copy the "fake_fire" directory into either | ||||
| 	../minetest/worlds/yourworld'sname/worldmods/ | ||||
| 	or | ||||
| 	../minetest/mods/ | ||||
| 	* If you put "fake_fire" in the ../minetest/mods/ directory, either | ||||
| 	enable the mod from within Minetest's "Configure" button | ||||
| 	(main menu, bottom right) or by adding this line to the | ||||
| 	world's "world.mt" file: | ||||
| 	load_mod_fake_fire = true | ||||
|  | ||||
| @@ -1,86 +0,0 @@ | ||||
| CHANGELOG | ||||
| ~~~~~~~~~~~~~~~~~ | ||||
|  | ||||
| 2014_07_27: | ||||
|  | ||||
| * Replaced LazyJ's smoke nodes pictures by smoke particles. Lighter, prettier, configurable smoke. | ||||
| * Code clean-up. | ||||
|  | ||||
|  | ||||
| 2014_06_21: | ||||
|  | ||||
| 	* Added changelog.txt, 2014_06_19. Some changes are much older than this. | ||||
| 	I've been making little tweaks to it for several months and finally decided | ||||
| 	to give it an overhaul. | ||||
| 	* Code clean-up. | ||||
| 	* Split the init.lua file stuff into separate files and moved them into the | ||||
| 	"modfiles" folder. | ||||
| 	* I had added a lump of coal to be dropped when the flame was dug but, as | ||||
| 	one of our moderators pointed out, once word got out, new players would | ||||
| 	snuff-out every fake_fire they found just to get easy coal. The coal drop | ||||
| 	was removed. | ||||
| 	* Changed the flint crafting recipe to require 2 gravel instead of one. | ||||
| 	This resolves a crafting conflict with another mod. The recipe is also | ||||
| 	shapless now. | ||||
| 	* Added crafting recipes for 1 cobble to 1 gravel, then 1 gravel to 1 sand. | ||||
| 	For Wazuland2 these recipes are commented out because another mod takes | ||||
| 	care of them (the reason for changing the flint recipe). | ||||
| 	* Health-damage disabled. This fork is strictly for decoration. | ||||
| 	* Waving added to flames and smoke. | ||||
| 	* Rising, disappearing smoke-puffs added. Smoke columns will rise to 14 | ||||
| 	spaces above the flame or chimney top. | ||||
| 	* Smoke can be punched to remove. | ||||
| 	* Never-ending flint and steel disabled. May add it as a priv later. | ||||
| 	* Extinguishing with water and lava(??) disabled. Again, this fork is | ||||
| 	strictly for decoration so dousing the flames with water or lava would just | ||||
| 	make a big, needless mess. Much easier and cleaner to just punch the flame. | ||||
| 	* Flame images are hidden from creative inventory but are still	provided | ||||
| 	for in the code and image files if you want them to be visible.	Just remove | ||||
| 	the "not_in_creative_inventory" part from the groups of the	flame types and | ||||
| 	they will be visible again. Having the images in inventory is useful when | ||||
| 	playing in creative mode or if you want to torture griefers who put in the | ||||
| 	time and effort to get the materials to make the fire hoping to be able to | ||||
| 	burn things only to discover that it is *fake* and *harmless*. Bwa-hahaha! | ||||
| 	* Added ice-fire, a blue-colored flame that only ignites on snow and ice | ||||
| 	stuff. | ||||
| 	* Added added ability to switch between smoking and non-smoking flames by | ||||
| 	punching them. Default is non-smoking. | ||||
| 	* Added stone and sandstone chimney caps that can produce smoke when punched | ||||
| 	(smoking and non-smoking versions). Useful for small builds where a 3x3 | ||||
| 	chimney would be too oversized in proportion to the reset of the build. | ||||
| 	* Added animated, glowing embers. This hearth-warming block emits a | ||||
| 	mid-level light and simulates the hot coals under a flame. Flames are not | ||||
| 	required and the embers blocks are smokeless. | ||||
| 	 | ||||
| 	 | ||||
| 	 | ||||
| 2014_06_23: | ||||
|  | ||||
| 	* Flames - "sunlight_propagates = true," | ||||
| 	-- Adding sunlight_propagtes and leaving comments as a future reference. | ||||
| 	-- If true, sunlight will go infinitely through this (no shadow is cast). | ||||
| 	-- Because fire produces light it should be "true" so fire *doesn't* have | ||||
| 	-- a shadow.  | ||||
| 	 | ||||
| 	* Embers - "sunlight_propagates = true," | ||||
| 	-- Adding sunlight_propagtes and leaving comments as a future reference. | ||||
| 	-- If true, sunlight will go infinitely through this (no shadow is cast). | ||||
| 	-- Because embers produce some light it should be somewhat "true" but this | ||||
| 	-- is an area where Minetest lacks in subtlety so I'm opting for 100% that | ||||
| 	-- embers *don't* have a shadow.  | ||||
| 	 | ||||
| 	* Bug Fix - Server Crash when Flint-Steel Clicked on Nothing (sky). | ||||
| 	-- Players can see farther than they can reach. Even though the player | ||||
| 	-- was aiming for a node several spaces ahead of them, Minetest's targeting | ||||
| 	-- range doesn't extend that far. The player saw the node they were aiming | ||||
| 	-- at, Minetest's target range ended and Minetest saw "nothing" | ||||
| 	-- (a nil value). The bug was a conflict in the code so when that | ||||
| 	-- particular nil value popped up, Minetest was confused by the bug, threw | ||||
| 	-- up it's hands in frustration and said "I quit!" by crashing. | ||||
| 	 | ||||
| 	* Original init.lua Added | ||||
| 	-- What I thought was the original init.lua file turned out to be one I had | ||||
| 	-- tinkered with months ago. So I extracted the actual original init.lua | ||||
| 	-- file from a zip file of the original mod. Why bother including it in my | ||||
| 	-- fork? Because it's a reference to compare to and learn from. | ||||
| 	 | ||||
| @@ -1,3 +1,233 @@ | ||||
| dofile(minetest.get_modpath("fake_fire").."/modfiles/nodes.lua") | ||||
| dofile(minetest.get_modpath("fake_fire").."/modfiles/crafts.lua") | ||||
| dofile(minetest.get_modpath("fake_fire").."/modfiles/abms.lua") | ||||
| local function start_smoke(pos, node, clicker, chimney) | ||||
| 	local this_spawner_meta = minetest.get_meta(pos) | ||||
| 	local id = this_spawner_meta:get_int("smoky") | ||||
| 	local s_handle = this_spawner_meta:get_int("sound") | ||||
| 	local above = minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}).name | ||||
|  | ||||
| 	if id ~= 0 then | ||||
| 		if s_handle then | ||||
| 			minetest.after(0, function(s_handle) | ||||
| 				minetest.sound_stop(s_handle) | ||||
| 			end, s_handle) | ||||
| 		end | ||||
| 		minetest.delete_particlespawner(id) | ||||
| 		this_spawner_meta:set_int("smoky", nil) | ||||
| 		this_spawner_meta:set_int("sound", nil) | ||||
| 		return | ||||
| 	end | ||||
|  | ||||
| 	if above == "air" and (not id or id == 0) then | ||||
| 		id = minetest.add_particlespawner({ | ||||
| 			amount = 4, time = 0, collisiondetection = false, | ||||
| 			minpos = {x=pos.x-0.25, y=pos.y+0.4, z=pos.z-0.25}, | ||||
| 			maxpos = {x=pos.x+0.25, y=pos.y+5, z=pos.z+0.25}, | ||||
| 			minvel = {x=-0.2, y=0.3, z=-0.2}, maxvel = {x=0.2, y=1, z=0.2}, | ||||
| 			minacc = {x=0,y=0,z=0}, maxacc = {x=0,y=0.5,z=0}, | ||||
| 			minexptime = 1, maxexptime = 3, | ||||
| 			minsize = 4, maxsize = 8, | ||||
| 			texture = "smoke_particle.png", | ||||
| 		}) | ||||
| 		if chimney == 1 then | ||||
| 			s_handle = nil | ||||
| 			this_spawner_meta:set_int("smoky", id) | ||||
| 			this_spawner_meta:set_int("sound", nil) | ||||
| 		else | ||||
| 		s_handle = minetest.sound_play("fire_small", { | ||||
| 			pos = pos, | ||||
| 			max_hear_distance = 5, | ||||
| 			loop = true  | ||||
| 		}) | ||||
| 		this_spawner_meta:set_int("smoky", id) | ||||
| 		this_spawner_meta:set_int("sound", s_handle) | ||||
| 		end | ||||
| 	return end | ||||
| end | ||||
|  | ||||
| local function stop_smoke(pos) | ||||
| 	local this_spawner_meta = minetest.get_meta(pos) | ||||
| 	local id = this_spawner_meta:get_int("smoky") | ||||
| 	local s_handle = this_spawner_meta:get_int("sound") | ||||
|  | ||||
| 	if id ~= 0 then | ||||
| 		minetest.delete_particlespawner(id) | ||||
| 	end | ||||
|  | ||||
| 	if s_handle then | ||||
| 		minetest.after(0, function(s_handle) | ||||
| 			minetest.sound_stop(s_handle) | ||||
| 		end, s_handle) | ||||
| 	end | ||||
|  | ||||
| 	this_spawner_meta:set_int("smoky", nil) | ||||
| 	this_spawner_meta:set_int("sound", nil) | ||||
| end | ||||
|  | ||||
| -- FLAME TYPES | ||||
| local flame_types = {"fake", "ice"} | ||||
|  | ||||
| for _, f in ipairs(flame_types) do | ||||
| 	minetest.register_node("fake_fire:"..f.."_fire", { | ||||
| 		inventory_image = f.."_fire_inv.png", | ||||
| 		description = f.." fire", | ||||
| 		drawtype = "plantlike", | ||||
| 		paramtype = "light", | ||||
| 		paramtype2 = "facedir", | ||||
| 		groups = {dig_immediate=3, not_in_creative_inventory=1}, | ||||
| 		sunlight_propagates = true, | ||||
| 		buildable_to = true, | ||||
| 		walkable = false, | ||||
| 		light_source = 14, | ||||
| 		waving = 1, | ||||
| 		tiles = { | ||||
| 			{name=f.."_fire_animated.png", animation={type="vertical_frames",  | ||||
| 			aspect_w=16, aspect_h=16, length=1.5}}, | ||||
| 		}, | ||||
| 		on_rightclick = function (pos, node, clicker) | ||||
| 			start_smoke(pos, node, clicker) | ||||
| 		end, | ||||
| 		on_destruct = function (pos) | ||||
| 			stop_smoke(pos) | ||||
| 			minetest.sound_play("fire_extinguish", { | ||||
| 				pos = pos, max_hear_distance = 5 | ||||
| 			}) | ||||
| 		end, | ||||
| 		drop = "" | ||||
| 	}) | ||||
| end | ||||
|  | ||||
| minetest.register_node("fake_fire:fancy_fire", { | ||||
| 		inventory_image = "fancy_fire_inv.png", | ||||
| 		description = "Fancy Fire", | ||||
| 		drawtype = "mesh", | ||||
| 		mesh = "fancy_fire.obj", | ||||
| 		paramtype = "light", | ||||
| 		paramtype2 = "facedir", | ||||
| 		groups = {dig_immediate=3}, | ||||
| 		sunlight_propagates = true, | ||||
| 		light_source = 14, | ||||
| 		walkable = false, | ||||
| 		damage_per_second = 4, | ||||
| 		on_rotate = screwdriver.rotate_simple, | ||||
| 		tiles = { | ||||
| 		{name="fake_fire_animated.png",  | ||||
| 		animation={type='vertical_frames', aspect_w=16, aspect_h=16, length=1}}, {name='fake_fire_logs.png'}}, | ||||
| 		on_rightclick = function (pos, node, clicker) | ||||
| 			start_smoke(pos, node, clicker) | ||||
| 		end, | ||||
| 		on_destruct = function (pos) | ||||
| 			stop_smoke(pos) | ||||
| 			minetest.sound_play("fire_extinguish", { | ||||
| 				pos = pos, max_hear_distance = 5 | ||||
| 			}) | ||||
| 		end, | ||||
| 		drop = { | ||||
| 			max_items = 3, | ||||
| 			items = { | ||||
| 				{ | ||||
| 					items = { "default:torch", "default:torch", "building_blocks:sticks" }, | ||||
| 					rarity = 1, | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
| 	}) | ||||
|  | ||||
| -- EMBERS | ||||
| minetest.register_node("fake_fire:embers", { | ||||
|     description = "Glowing Embers", | ||||
| 	tiles = { | ||||
| 		{name="embers_animated.png", animation={type="vertical_frames", | ||||
| 		aspect_w=16, aspect_h=16, length=2}}, | ||||
| 	}, | ||||
| 	light_source = 9, | ||||
| 	groups = {crumbly=3}, | ||||
| 	paramtype = "light", | ||||
| 	sounds = default.node_sound_dirt_defaults(), | ||||
| }) | ||||
|  | ||||
| -- CHIMNEYS | ||||
| local materials = {"stone", "sandstone"} | ||||
|  | ||||
| for _, m in ipairs(materials) do | ||||
| 	minetest.register_node("fake_fire:chimney_top_"..m, { | ||||
| 		description = "Chimney Top - "..m, | ||||
| 		tiles = {"default_"..m..".png^chimney_top.png", "default_"..m..".png"}, | ||||
| 		groups = {snappy=3}, | ||||
| 		paramtype = "light", | ||||
| 		sounds = default.node_sound_stone_defaults(), | ||||
| 		drawtype = "nodebox", | ||||
| 		node_box = { | ||||
| 			type = "fixed", | ||||
| 			fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, | ||||
| 		}, | ||||
| 		on_rightclick = function (pos, node, clicker) | ||||
| 			local chimney = 1 | ||||
| 			start_smoke(pos, node, clicker, chimney) | ||||
| 		end, | ||||
| 		on_destruct = function (pos) | ||||
| 			stop_smoke(pos) | ||||
| 		end | ||||
| 	}) | ||||
| 	 | ||||
| 	minetest.register_craft({ | ||||
| 		type = "shapeless", | ||||
| 		output = 'fake_fire:chimney_top_'..m, | ||||
| 		recipe = {"default:torch", "stairs:slab_"..m} | ||||
| 	}) | ||||
| end | ||||
|  | ||||
| -- FLINT and STEEL | ||||
| minetest.register_tool("fake_fire:flint_and_steel", { | ||||
| 	description = "Flint and steel", | ||||
| 	inventory_image = "flint_and_steel.png", | ||||
| 	liquids_pointable = false, | ||||
| 	stack_max = 1, | ||||
| 	tool_capabilities = { | ||||
| 		full_punch_interval = 1.0, | ||||
| 		max_drop_level=0, | ||||
| 		groupcaps={flamable = {uses=65, maxlevel=1}} | ||||
| 	}, | ||||
| 	on_use = function(itemstack, user, pointed_thing) | ||||
| 		if pointed_thing.type == "node" and minetest.get_node(pointed_thing.above).name == "air" then | ||||
| 			if not minetest.is_protected(pointed_thing.above, user:get_player_name()) then | ||||
| 				if string.find(minetest.get_node(pointed_thing.under).name, "ice") then | ||||
| 					minetest.set_node(pointed_thing.above, {name="fake_fire:ice_fire"}) | ||||
| 				else | ||||
| 					minetest.set_node(pointed_thing.above, {name="fake_fire:fake_fire"}) | ||||
| 				end | ||||
| 			else | ||||
| 				minetest.chat_send_player(user:get_player_name(), "This area is protected!") | ||||
| 			end | ||||
| 		else | ||||
| 			return | ||||
| 		end | ||||
|  | ||||
| 		itemstack:add_wear(65535/65) | ||||
| 		return itemstack | ||||
| 	end | ||||
| }) | ||||
|  | ||||
| -- CRAFTS | ||||
| minetest.register_craft({ | ||||
| 	type = "shapeless", | ||||
| 	output = 'fake_fire:flint_and_steel', | ||||
| 	recipe = {"default:obsidian_shard", "default:steel_ingot"} | ||||
| }) | ||||
|  | ||||
| minetest.register_craft({ | ||||
| 	type = "shapeless", | ||||
| 	output = 'fake_fire:embers', | ||||
| 	recipe = {"default:torch", "group:wood", "default:torch"} | ||||
| }) | ||||
|  | ||||
| minetest.register_craft({ | ||||
| 	type = "shapeless", | ||||
| 	output = 'fake_fire:fancy_fire', | ||||
| 	recipe = {"default:torch", "building_blocks:sticks", "default:torch" } | ||||
| }) | ||||
|  | ||||
| -- ALIASES | ||||
| minetest.register_alias("fake_fire:smokeless_fire", "fake_fire:fake_fire") | ||||
| minetest.register_alias("fake_fire:smokeless_ice_fire", "fake_fire:ice_fire") | ||||
| minetest.register_alias("fake_fire:smokeless_chimney_top_stone", "fake_fire:chimney_top_stone") | ||||
| minetest.register_alias("fake_fire:smokeless_chimney_top_sandstone", "fake_fire:chimney_top_sandstone") | ||||
| minetest.register_alias("fake_fire:flint", "fake_fire:flint_and_steel") | ||||
|   | ||||
							
								
								
									
										133
									
								
								mods/homedecor_modpack/fake_fire/models/fancy_fire.obj
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,133 @@ | ||||
| # Blender v2.72 (sub 2) OBJ File: 'campfire.blend' | ||||
| # www.blender.org | ||||
| v 0.353153 -0.337287 0.000000 | ||||
| v -0.366847 -0.337287 0.000000 | ||||
| v -0.366847 0.382713 -0.000000 | ||||
| v -0.186847 -0.337287 0.311769 | ||||
| v 0.173153 -0.337287 -0.311769 | ||||
| v -0.186846 0.382713 0.311769 | ||||
| v 0.173154 0.382713 -0.311769 | ||||
| v -0.186846 -0.337287 -0.311769 | ||||
| v 0.173154 -0.337287 0.311769 | ||||
| v -0.186846 0.382713 -0.311769 | ||||
| v 0.173153 0.382713 0.311769 | ||||
| v 0.353153 0.382713 0.000000 | ||||
| vt 0.000000 0.000000 | ||||
| vt 1.000000 0.000000 | ||||
| vt 1.000000 1.000000 | ||||
| vt 0.000000 1.000000 | ||||
| g Flames.001_Cube.004_Fire | ||||
| s off | ||||
| f 4/1 5/2 7/3 6/4 | ||||
| f 8/1 9/2 11/3 10/4 | ||||
| f 1/1 2/2 3/3 12/4 | ||||
| v 0.151217 -0.347540 0.439253 | ||||
| v 0.151217 -0.207593 0.411057 | ||||
| v 0.008458 -0.207593 0.411057 | ||||
| v 0.008458 -0.347540 0.439253 | ||||
| v 0.151217 -0.526542 -0.449208 | ||||
| v 0.151217 -0.386595 -0.477403 | ||||
| v 0.008458 -0.386595 -0.477403 | ||||
| v 0.008458 -0.526542 -0.449208 | ||||
| v -0.419949 -0.512482 0.485423 | ||||
| v -0.419949 -0.369723 0.485423 | ||||
| v -0.444739 -0.369723 0.344833 | ||||
| v -0.444739 -0.512482 0.344833 | ||||
| v 0.472595 -0.512482 0.328044 | ||||
| v 0.472595 -0.369723 0.328044 | ||||
| v 0.447805 -0.369723 0.187453 | ||||
| v 0.447805 -0.512482 0.187453 | ||||
| v 0.033402 -0.347540 0.433815 | ||||
| v 0.025205 -0.207593 0.406838 | ||||
| v -0.111388 -0.207593 0.448342 | ||||
| v -0.103191 -0.347540 0.475320 | ||||
| v -0.224900 -0.526542 -0.416268 | ||||
| v -0.233097 -0.386595 -0.443246 | ||||
| v -0.369690 -0.386595 -0.401741 | ||||
| v -0.361493 -0.526542 -0.374763 | ||||
| v 0.254175 -0.345963 0.293196 | ||||
| v 0.254175 -0.277187 0.265611 | ||||
| v 0.181422 -0.282425 0.252550 | ||||
| v 0.181422 -0.351201 0.280135 | ||||
| v 0.343511 -0.517901 -0.135488 | ||||
| v 0.343511 -0.449125 -0.163073 | ||||
| v 0.270757 -0.454364 -0.176133 | ||||
| v 0.270757 -0.523140 -0.148548 | ||||
| v -0.418506 -0.513914 0.100698 | ||||
| v -0.418472 -0.439812 0.100704 | ||||
| v -0.392481 -0.439819 0.031309 | ||||
| v -0.392514 -0.513921 0.031304 | ||||
| v 0.022046 -0.514125 0.265705 | ||||
| v 0.022080 -0.440022 0.265710 | ||||
| v 0.048071 -0.440029 0.196316 | ||||
| v 0.048038 -0.514131 0.196310 | ||||
| v -0.249910 -0.307656 -0.062181 | ||||
| v -0.249882 -0.234638 -0.074807 | ||||
| v -0.278776 -0.246254 -0.142048 | ||||
| v -0.278804 -0.319272 -0.129422 | ||||
| v 0.183295 -0.339072 -0.242901 | ||||
| v 0.183323 -0.266053 -0.255527 | ||||
| v 0.154429 -0.277669 -0.322768 | ||||
| v 0.154401 -0.350687 -0.310143 | ||||
| vt 0.418293 0.016195 | ||||
| vt 0.418293 0.216092 | ||||
| vt 0.218396 0.216092 | ||||
| vt 0.218396 0.016195 | ||||
| vt 0.002609 0.212891 | ||||
| vt 0.002609 0.012994 | ||||
| vt 0.989254 0.012994 | ||||
| vt 0.989254 0.212891 | ||||
| vt 0.010050 0.219323 | ||||
| vt 0.010050 0.019426 | ||||
| vt 0.996695 0.019426 | ||||
| vt 0.996695 0.219323 | ||||
| vt 0.618448 0.016195 | ||||
| vt 0.618448 0.216092 | ||||
| vt 0.418551 0.216092 | ||||
| vt 0.418551 0.016195 | ||||
| vt 0.010050 0.228781 | ||||
| vt 0.010050 0.028884 | ||||
| vt 0.996695 0.028884 | ||||
| vt 0.996695 0.228781 | ||||
| vt 0.005089 0.207467 | ||||
| vt 0.005089 0.007570 | ||||
| vt 0.991734 0.007570 | ||||
| vt 0.991734 0.207467 | ||||
| g Campfire_Cube.003_Logs-Stone | ||||
| s off | ||||
| f 20/5 19/6 18/7 17/8 | ||||
| f 14/9 13/10 17/11 18/12 | ||||
| f 15/13 14/14 18/15 19/16 | ||||
| f 13/17 14/18 15/19 16/20 | ||||
| f 13/21 16/22 20/23 17/24 | ||||
| f 16/25 15/26 19/27 20/28 | ||||
| f 28/5 27/6 26/7 25/8 | ||||
| f 22/9 21/10 25/11 26/12 | ||||
| f 23/13 22/14 26/15 27/16 | ||||
| f 21/17 22/18 23/19 24/20 | ||||
| f 21/21 24/22 28/23 25/24 | ||||
| f 24/25 23/26 27/27 28/28 | ||||
| f 36/5 35/6 34/7 33/8 | ||||
| f 30/9 29/10 33/11 34/12 | ||||
| f 31/13 30/14 34/15 35/16 | ||||
| f 29/17 30/18 31/19 32/20 | ||||
| f 29/21 32/22 36/23 33/24 | ||||
| f 32/25 31/26 35/27 36/28 | ||||
| f 44/5 43/6 42/7 41/8 | ||||
| f 38/9 37/10 41/11 42/12 | ||||
| f 39/13 38/14 42/15 43/16 | ||||
| f 37/17 38/18 39/19 40/20 | ||||
| f 37/21 40/22 44/23 41/24 | ||||
| f 40/25 39/26 43/27 44/28 | ||||
| f 52/5 51/6 50/7 49/8 | ||||
| f 46/9 45/10 49/11 50/12 | ||||
| f 47/13 46/14 50/15 51/16 | ||||
| f 45/17 46/18 47/19 48/20 | ||||
| f 45/21 48/22 52/23 49/24 | ||||
| f 48/25 47/26 51/27 52/28 | ||||
| f 60/5 59/6 58/7 57/8 | ||||
| f 54/9 53/10 57/11 58/12 | ||||
| f 55/13 54/14 58/15 59/16 | ||||
| f 53/17 54/18 55/19 56/20 | ||||
| f 53/21 56/22 60/23 57/24 | ||||
| f 56/25 55/26 59/27 60/28 | ||||
| @@ -1,26 +0,0 @@ | ||||
| minetest.register_abm({ | ||||
| 	nodenames = { | ||||
| 		"fake_fire:fake_fire", | ||||
| 		"fake_fire:ice_fire", | ||||
| 		"fake_fire:chimney_top_stone", | ||||
| 		"fake_fire:chimney_top_sandstone" | ||||
| 	}, | ||||
| 	interval = 1, | ||||
| 	chance = 2, | ||||
| 	action = function(pos, node) | ||||
| 		if minetest.get_node({x=pos.x, y=pos.y+1.0, z=pos.z}).name == "air" | ||||
| 		  and minetest.get_node({x=pos.x, y=pos.y+2.0, z=pos.z}).name == "air" then | ||||
| 			local image_number = math.random(4) | ||||
| 			minetest.add_particlespawner({ | ||||
| 				amount = 6, time = 1, collisiondetection = false, | ||||
| 				minpos = {x=pos.x-0.25, y=pos.y+0.4, z=pos.z-0.25}, | ||||
| 				maxpos = {x=pos.x+0.25, y=pos.y+8, z=pos.z+0.25}, | ||||
| 				minvel = {x=-0.2, y=0.3, z=-0.2}, maxvel = {x=0.2, y=1, z=0.2}, | ||||
| 				minacc = {x=0,y=0,z=0}, maxacc = {x=0,y=0,z=0}, | ||||
| 				minexptime = 0.5, maxexptime = 3, | ||||
| 				minsize = 2, maxsize = 10, | ||||
| 				texture = "smoke_particle_"..image_number..".png", | ||||
| 			}) | ||||
| 		end | ||||
| 	end | ||||
| }) | ||||
| @@ -1,89 +0,0 @@ | ||||
| -- RECIPE ITEM - FLINT | ||||
| minetest.register_craftitem("fake_fire:flint", { | ||||
| 	description = "flint", | ||||
| 	inventory_image = "flint.png", | ||||
| 	stack_max = 99, | ||||
| 	liquids_pointable = false, | ||||
| }) | ||||
|  | ||||
| -- FLINT | ||||
| minetest.register_craft({ | ||||
| 	type = "shapeless", | ||||
| 	output = 'fake_fire:flint', | ||||
| 	recipe = { | ||||
| 			"default:gravel", | ||||
| 			"default:gravel", | ||||
| 	} | ||||
| }) | ||||
|  | ||||
| -- FLINT & STEEL | ||||
| minetest.register_craft({ | ||||
| 	type = "shapeless", | ||||
| 	output = 'fake_fire:flint_and_steel', | ||||
| 	recipe = { | ||||
| 		"fake_fire:flint", | ||||
| 		"default:steel_ingot", | ||||
| 	} | ||||
| }) | ||||
|  | ||||
| -- EMBERS | ||||
| minetest.register_craft({ | ||||
| 	type = "shapeless", | ||||
| 	output = 'fake_fire:embers', | ||||
| 	recipe = { | ||||
| 			"default:torch", | ||||
| 			"group:wood", | ||||
| 	} | ||||
| }) | ||||
|  | ||||
| -- STONE CHIMNEY TOP | ||||
| minetest.register_craft({ | ||||
| 	type = "shapeless", | ||||
| 	output = 'fake_fire:smokeless_chimney_top_stone', | ||||
| 	recipe = { | ||||
| 			"default:torch", | ||||
| 			"stairs:slab_stone", | ||||
| 	} | ||||
| }) | ||||
|  | ||||
| -- SANDSTONE CHIMNEY TOP | ||||
| minetest.register_craft({ | ||||
| 	type = "shapeless", | ||||
| 	output = 'fake_fire:smokeless_chimney_top_sandstone', | ||||
| 	recipe = { | ||||
| 			"default:torch", | ||||
| 			"stairs:slab_sandstone", | ||||
| 	} | ||||
| }) | ||||
|  | ||||
| -- Cobble to Gravel | ||||
| minetest.register_craft({ | ||||
| 	output = 'default:gravel', | ||||
| 	recipe = { | ||||
| 		{'default:cobble'}, | ||||
| 	} | ||||
| }) | ||||
|  | ||||
| -- Gravel to Sand | ||||
| minetest.register_craft({ | ||||
| 	output = 'default:sand', | ||||
| 	recipe = { | ||||
| 		{'default:gravel'}, | ||||
| 	} | ||||
| }) | ||||
|  | ||||
| -- Desert Sand to Sand | ||||
| minetest.register_craft({ | ||||
| 	output = 'default:sand', | ||||
| 	recipe = { | ||||
| 		{'default:desert_sand'}, | ||||
| 	} | ||||
| }) | ||||
|  | ||||
| -- Sand to Desert Sand | ||||
| minetest.register_craft({ | ||||
| 	output = 'default:desert_sand', | ||||
| 	recipe = { | ||||
| 		{'default:sand'}, | ||||
| 	} | ||||
| }) | ||||