Added mapgen mods, demon mob, hovercraft and experimental polymer mod.

master
bas080 2013-08-08 15:10:10 +02:00
parent ef4ffa284a
commit b475ced915
106 changed files with 5727 additions and 37 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 303 B

After

Width:  |  Height:  |  Size: 369 B

View File

@ -70,8 +70,12 @@ minetest.register_node("bees:hive_artificial", {
node_box = {
type = "fixed",
fixed = {
{-4/8, 3/8, -4/8, 4/8, 4/8, 4/8},
{-3/8, -4/8, -3/8, 3/8, 3/8, 3/8},
{-4/8, 2/8, -4/8, 4/8, 3/8, 4/8},
{-3/8, -4/8, -2/8, 3/8, 2/8, 3/8},
{-3/8, 0/8, -3/8, 3/8, 2/8, -2/8},
{-3/8, -4/8, -3/8, 3/8, -1/8, -2/8},
{-3/8, -1/8, -3/8, -1/8, 0/8, -2/8},
{1/8, -1/8, -3/8, 3/8, 0/8, -2/8},
}
},
on_construct = function(pos)
@ -174,6 +178,7 @@ minetest.register_abm({ --for particles and sounds
minetest.register_abm({ --spawn abm
nodenames = {"group:leafdecay"},
neighbors = {"default:apple"},
interval = 1800,
chance = 500,
action = function(pos, node, _, _)

View File

@ -2,10 +2,12 @@ print("[BobBlocks By minetest@rabbibob.com] Version 0.0.8 loading....")
print("[BobBlocks] loading Blocks")
dofile(minetest.get_modpath("bobblocks") .. "/blocks.lua")
print("[BobBlocks] loaded Blocks")
--[[
print("[BobBlocks] loading Health")
dofile(minetest.get_modpath("bobblocks") .. "/health.lua")
print("[BobBlocks] loaded Health")
print("[BobBlocks] loading Traps")
dofile(minetest.get_modpath("bobblocks") .. "/trap.lua")
print("[BobBlocks] loaded Traps")
print("[BobBlocks By minetest@rabbibob.com] Version 0.0.8 loaded!")
print("[BobBlocks By minetest@rabbibob.com] Version 0.0.8 loaded!")
]]--

View File

@ -434,8 +434,9 @@ minetest.register_craft({
minetest.register_craft({
output = 'default:brick',
recipe = {
{'default:clay_brick', 'default:clay_brick'},
{'default:clay_brick', 'default:clay_brick'},
{'default:clay_brick', 'default:clay_brick', 'default:stone'},
{'default:clay_brick', 'default:clay_brick', 'default:stone'},
{'default:stone','default:stone',''}
}
})

View File

@ -187,7 +187,7 @@ minetest.register_node("default:clay", {
minetest.register_node("default:brick", {
description = "Brick Block",
tiles = {"default_brick.png"},
tiles = {"default_brick.png^[transformFYR270", "default_brick.png"},
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
})
@ -505,6 +505,7 @@ minetest.register_node("default:lava_flowing", {
},
},
paramtype = "light",
paramtype2 = "flowingliquid",
light_source = LIGHT_MAX - 1,
walkable = false,
pointable = false,
@ -574,7 +575,7 @@ minetest.register_node("default:torch", {
light_source = LIGHT_MAX-3,
node_box = mesecon_lamp_box,
selection_box = mesecon_lamp_box,
groups = {dig_immediate=3,not_in_creative_inventory=1, mesecon_effector_on = 1},
groups = {attached_node=1, dig_immediate=3,not_in_creative_inventory=1, mesecon_effector_on = 1},
drop='"default:torch" 1',
sounds = default.node_sound_glass_defaults(),
})
@ -1147,10 +1148,6 @@ minetest.register_node("default:sapling", {
tiles = {"default_sapling.png"},
paramtype = "light",
walkable = false,
selection_box = {
type = "fixed",
fixed = {-0.3, -0.5, -0.3, 0.3, 0.35, 0.3}
},
groups = {snappy=2,dig_immediate=3,flammable=2,attached_node=1},
sounds = default.node_sound_leaves_defaults(),
})

Binary file not shown.

Before

Width:  |  Height:  |  Size: 147 B

After

Width:  |  Height:  |  Size: 150 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 171 B

After

Width:  |  Height:  |  Size: 117 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 171 B

After

Width:  |  Height:  |  Size: 117 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 157 B

After

Width:  |  Height:  |  Size: 139 B

65
mods/demon/init.lua Normal file
View File

@ -0,0 +1,65 @@
minetest.register_node("demon:demon", {
description = "Demon",
drawtype = "node",
paramtype = "light",
paramtype2 = "facedir",
tiles = {"demon_side.png","demon_side.png","demon_side.png","demon_side.png","demon_eyes_open.png", "demon_side.png"},
damage_per_second = 10,
light_source = 3,
walkable = false,
buildable_to = true,
on_punch = function(pos, node, puncher)
local health = puncher:get_hp()
puncher:set_hp(health-2)
end,
})
minetest.register_abm({ --remove bees
nodenames = {"demon:demon"},
interval = 2.5,
chance = 1,
action = function(pos, node, _, _)
local players = minetest.get_connected_players()
for i, player in ipairs(players) do
local name = player:get_player_name()
local posp = player:getpos()
local newpos = {x = (pos.x + posp.x) / 2, y = (pos.y + posp.y) / 2 +1, z = (pos.z + posp.z) / 2}
local face = minetest.dir_to_facedir(vector.direction(pos, newpos), false)
if minetest.get_node(newpos).name ~= "air" then return end
if vector.distance(newpos, posp) < 2 then
local health = player:get_hp()
player:set_hp(health-2)
minetest.sound_play({name="demon_move"},{pos=newpos, max_hear_distance=32, gain=1.5})
minetest.remove_node(pos)
return
end
if minetest.get_node_light(newpos, nil) > 2 then
if minetest.get_node_light(newpos, nil) > 8 then
minetest.remove_node(pos)
minetest.sound_play({name="demon_remove"},{pos=newpos, max_hear_distance=32, gain=1})
end
print(node.param2..face)
if node.param2 ~= face then
minetest.set_node(pos, {name=node.name, param2 = face} )
end
return
end
minetest.remove_node(pos)
minetest.set_node(newpos, {name="demon:demon", param2 = face})
minetest.sound_play({name="demon_move"},{pos=newpos, max_hear_distance=32, gain=1})
end
end,
})
minetest.register_abm({
nodenames = {"default:grass_5"},
neighbors = {"default:tree"},
interval = 60,
chance = 4,
action = function(pos, node, _, _)
if minetest.get_node_light(pos, nil) < 3 then
minetest.set_node(pos, {name="demon:demon"})
end
end,
})

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 175 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 201 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 381 B

After

Width:  |  Height:  |  Size: 178 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 351 B

After

Width:  |  Height:  |  Size: 179 B

View File

@ -1,7 +1,5 @@
-----------------------------------------------------------------------------------------------
-- Fishing - Mossmanikin's version - Bobber 0.0.9
-- original by wulfsdad (http://forum.minetest.net/viewtopic.php?id=4375)
-- this version by Mossmanikin
-- Fishing - Mossmanikin's version - Bobber 0.1.0
-- License (code & textures): WTFPL
-- Contains code from: fishing (original), mobs, throwing
-- Supports: animal_clownfish, animal_fish_blue_white, animal_rat, mobs
@ -36,6 +34,19 @@ minetest.register_node("fishing:bobber_box", {
groups = {not_in_creative_inventory=1},
})
minetest.register_node("fishing:bobber_box_ready", {
drawtype = "nodebox",
node_box = {
type = "fixed",
fixed = {
-- { left , bottom , front , right , top , back }
{-0.0625, -0.6875, -0.0625, 0.0625, -0.5625, 0.0625},
}
},
tiles = {"fishing_bobber_ready.png"},
groups = {not_in_creative_inventory=1},
})
local FISHING_BOBBER_ENTITY={
hp_max = 605,
water_damage = 1,
@ -257,6 +268,11 @@ local FISHING_BOBBER_ENTITY={
pos = self.object:getpos(),
gain = 0.5,
})
if BOBBER_COLOR_CHANGE == true then
self.object:set_properties({
textures = {"fishing:bobber_box_ready"},
})
end
self.object:moveto({x=pos.x,y=pos.y-0.0625,z=pos.z})
elseif self.object:get_hp() == 295 then
self.object:moveto({x=pos.x,y=pos.y+0.0625,z=pos.z})
@ -264,7 +280,9 @@ local FISHING_BOBBER_ENTITY={
self.object:moveto({x=pos.x,y=pos.y+0.0625,z=pos.z})
elseif self.object:get_hp() == 285 then
self.object:moveto({x=pos.x,y=pos.y-0.0625,z=pos.z})
elseif self.object:get_hp() == 160 then
elseif self.object:get_hp() < 284 then
self.object:moveto({x=pos.x+(0.001*(math.random(-8, 8))),y=pos.y,z=pos.z+(0.001*(math.random(-8, 8)))})
elseif self.object:get_hp() == 0 then
minetest.sound_play("fishing_bobber1", {
pos = self.object:getpos(),
gain = 0.5,

View File

@ -1,6 +1,6 @@
-----------------------------------------------------------------------------------------------
local title = "Fishing - Mossmanikin's version"
local version = "0.1.0"
local version = "0.1.2"
local mname = "fishing"
-----------------------------------------------------------------------------------------------
-- original by wulfsdad (http://forum.minetest.net/viewtopic.php?id=4375)
@ -14,11 +14,16 @@ local mname = "fishing"
-- todo: item wear done
-- automatic re-baiting option done
-- different types of fish/sushi, sort of
-- different types of fish, sort of
-- add sound done
-- bobber done
-- change rainworms filling inv & make 'em disappear done
-- placable fishing rod for decoration done
-- make bobber move slowly while fish on hook done
-- catch bigger fish with smaller
-- change color of bobber when fish on hook done
-----------------------------------------------------------------------------------------------
dofile(minetest.get_modpath("fishing").."/settings.txt")
@ -37,6 +42,7 @@ local function rod_wear(itemstack, user, pointed_thing, uses)
end
minetest.register_tool("fishing:pole", {
description = "Fishing Pole",
groups = {},
inventory_image = "fishing_pole.png",
@ -68,8 +74,124 @@ minetest.register_tool("fishing:pole", {
end
return nil
end,
on_place = function(itemstack, placer, pointed_thing)
local pt = pointed_thing
if minetest.get_node(pt.under).name~="default:water_source" and minetest.get_node(pt.under).name~="default:water_flowing" then
local wear = itemstack:get_wear()
local direction = minetest.dir_to_facedir(placer:get_look_dir())
local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z})
local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z})
minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="fishing:pole_deco", param2=direction})
meta1:set_int("wear", wear)
meta2:set_int("wear", wear)
itemstack:take_item()
end
return itemstack
end,
})
if SIMPLE_DECO_FISHING_POLE == true then
minetest.register_node("fishing:pole_deco", {
description = "Fishing Pole",
drawtype = "nodebox",
paramtype = "light",
paramtype2 = "facedir",
tiles = {
"fishing_pole_top.png", "fishing_pole_bottom.png", "fishing_pole.png", "fishing_pole.png^[transformFX", "fishing_pole_front.png", "fishing_pole_back.png",
},
groups = {
snappy=3,
flammable=2,
not_in_creative_inventory=1
},
node_box = {
type = "fixed",
fixed = {
{-0.5/3, -1.5/3, -1.5/3, 0.5/3, -0.5/3, -0.5/3},{-0.5/3, -0.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3},{-0.5/3, 0.5/3, 0.5/3, 0.5/3, 1.5/3, 1.5/3},{-0.5/3, -1.5/3, 0.5/3, 0.5/3, 0.5/3, 1.5/3},
}
},
selection_box = {
type = "fixed",
fixed = {
{-0.5/3, -1.5/3, -1.5/3, 0.5/3, -0.5/3, -0.5/3},{-0.5/3, -0.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3},{-0.5/3, 0.5/3, 0.5/3, 0.5/3, 1.5/3, 1.5/3},{-0.5/3, -1.5/3, 0.5/3, 0.5/3, 0.5/3, 1.5/3},
}
},
sounds = default.node_sound_wood_defaults(),
on_dig = function(pos, node, digger)
if digger:is_player() and digger:get_inventory() then
local meta = minetest.env:get_meta(pos)
local wear_out = meta:get_int("wear")
digger:get_inventory():add_item("main", {name="fishing:pole", count=1, wear=wear_out, metadata=""})
end
minetest.remove_node(pos)
end,
})
else
minetest.register_node("fishing:pole_deco", {
description = "Fishing Pole",
inventory_image = "fishing_pole.png",
wield_image = "fishing_pole.png^[transformFXR270",
drawtype = "nodebox",
paramtype = "light",
paramtype2 = "facedir",
tiles = {
"fishing_pole_top.png",
"fishing_pole_bottom.png",
"fishing_pole_deco.png", -- right
"fishing_pole_deco.png^[transformFX", -- left
"fishing_pole_back.png",
"fishing_pole_front.png"
},
node_box = {
type = "fixed",
-- { left , bottom , front , right , top , back }
fixed = {
{-1/32 , -1/16 , 14/16 , 1/32 , 6/16 , 15/16},
{-1/32 , -3/16 , 13/16 , 1/32 , -1/16 , 14/16},
{-1/32 , -4/16 , 12/16 , 1/32 , -3/16 , 13/16},
{-1/32 , -5/16 , 11/16 , 1/32 , -4/16 , 12/16},
{-1/32 , -6/16 , 9/16 , 1/32 , -5/16 , 11/16},
{-1/32 , -5/16 , 9/16 , 1/32 , -4/16 , 10/16},
-- stick
{-1/32 , 6/16 , 12/16 , 1/32 , 7/16 , 15/16}, -- top
{-1/32 , 5/16 , 11/16 , 1/32 , 7/16 , 12/16},
{-1/32 , 5/16 , 10/16 , 1/32 , 6/16 , 11/16},
{-1/32 , 4/16 , 9/16 , 1/32 , 6/16 , 10/16},
{-1/32 , 3/16 , 8/16 , 1/32 , 5/16 , 9/16},
{-1/32 , 2/16 , 7/16 , 1/32 , 4/16 , 8/16},
{-1/32 , 1/16 , 6/16 , 1/32 , 3/16 , 7/16},
{-1/32 , 0 , 5/16 , 1/32 , 2/16 , 6/16},
{-1/32 , -2/16 , 4/16 , 1/32 , 1/16 , 5/16},
{-1/32 , -3/16 , 3/16 , 1/32 , 0 , 4/16},
{-1/32 , -5/16 , 2/16 , 1/32 , -1/16 , 3/16},
{-1/32 , -7/16 , 1/16 , 1/32 , -3/16 , 2/16},
{-1/32 , -1/2 , 0 , 1/32 , -5/16 , 1/16}, -- bottom
}
},
selection_box = {
type = "fixed",
fixed = {
{-1/16 , -1/2 , 0 , 1/16 , 1/2 , 1 },
}
},
groups = {
snappy=3,
flammable=2,
not_in_creative_inventory=1
},
sounds = default.node_sound_wood_defaults(),
on_dig = function(pos, node, digger)
if digger:is_player() and digger:get_inventory() then
local meta = minetest.env:get_meta(pos)
local wear_out = meta:get_int("wear")
digger:get_inventory():add_item("main", {name="fishing:pole", count=1, wear=wear_out, metadata=""})
end
minetest.remove_node(pos)
end,
})
end
-----------------------------------------------------------------------------------------------
-- GETTING WORMS
-----------------------------------------------------------------------------------------------
@ -86,7 +208,7 @@ minetest.register_node(":default:dirt", {
if math.random(1, 100) < WORM_CHANCE then
local tool_in_use = digger:get_wielded_item():get_name()
if tool_in_use == "" or tool_in_use == "default:dirt" then
minetest.env:add_entity({x = pos.x, y = pos.y-0.6, z = pos.z}, "fishing:bait_worm_entity")
minetest.env:add_entity({x = pos.x, y = pos.y+0.4, z = pos.z}, "fishing:bait_worm_entity")
--local inv = digger:get_inventory()
--if inv:room_for_item("main", {name="fishing:bait_worm", count=1, wear=0, metadata=""}) then
--inv:add_item("main", {name="fishing:bait_worm", count=1, wear=0, metadata=""})

View File

@ -1,6 +1,8 @@
MESSAGES = true
FISH_CHANCE = 40
FISH_CHANCE = 70
NEW_WORM_SOURCE = false
WORM_CHANCE = 60
WEAR_OUT = true
BOBBER_CHECK_RADIUS = 5
BOBBER_COLOR_CHANGE = true
SIMPLE_DECO_FISHING_POLE = true

Binary file not shown.

Before

Width:  |  Height:  |  Size: 235 B

After

Width:  |  Height:  |  Size: 141 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 215 B

After

Width:  |  Height:  |  Size: 148 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 214 B

After

Width:  |  Height:  |  Size: 146 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 197 B

After

Width:  |  Height:  |  Size: 141 B

View File

@ -1,5 +1,5 @@
-----------------------------------------------------------------------------------------------
-- Fishing - Mossmanikin's version - Worm 0.0.1
-- Fishing - Mossmanikin's version - Worm 0.0.2
-----------------------------------------------------------------------------------------------
-- License (code & textures): WTFPL
-- Contains code from: fishing (original), mobs
@ -16,7 +16,7 @@ minetest.register_craftitem("fishing:bait_worm", {
on_use = minetest.item_eat(1),
on_place = function(itemstack, placer, pointed_thing)
local pt = pointed_thing
minetest.env:add_entity({x=pt.under.x, y=pt.under.y+0.4, z=pt.under.z}, "fishing:bait_worm_entity")
minetest.env:add_entity({x=pt.under.x, y=pt.under.y+0.6, z=pt.under.z}, "fishing:bait_worm_entity")
itemstack:take_item()
return itemstack
end,
@ -80,7 +80,7 @@ minetest.register_entity("fishing:bait_worm_entity", {
elseif minetest.get_item_group(n.name, "soil") ~= 0 then
if minetest.get_item_group(minetest.env:get_node({x=pos.x,y=pos.y-0.1,z=pos.z}).name, "soil") == 0 and self.object:get_hp() > 200 then
self.object:get_hp(199)
self.object:set_hp(199)
elseif self.object:get_hp() > 200 then -- leave dirt to see whats going on
self.object:moveto({x=pos.x+(0.001*(math.random(-2, 2))),y=pos.y+0.003,z=pos.z+(0.001*(math.random(-2, 2)))})
elseif self.object:get_hp() < 199 then -- no rain here, let's get outa here

7
mods/hovercraft/.gitignore vendored Normal file
View File

@ -0,0 +1,7 @@
## Generic ignorable patterns and files
*~
.*.swp
*bak*
tags
*.vim

View File

@ -0,0 +1,15 @@
Hovercraft for Minetest [hovercraft]
====================================
Source Code: Copyright (C) 2013 Stuart Jones - LGPL
Tetxures: Copyright (C) 2013 Stuart Jones - CC-BY-SA
Models: Copyright (C) 2013 Stuart Jones - CC-BY-SA
Sounds: freesound.org
Rocket Boost Engine Loop by qubodup - CC0
CARTOON-BING-LOW by kantouth - CC-BY-3.0
All other sounds: Copyright Stuart Jones - CC-BY-SA

View File

@ -0,0 +1,29 @@
Hovercraft for Minetest [hovercraft]
====================================
A fun alternative mode of transport for Minetest.
Controls
========
Forward (W) Thrust
Jump (Space) Jump
Mouse Move Rotate
Sneak (Shift) Sit (only visible in multiplayer)
Know Issues
===========
'Bouncing' into thin air: This can simply be the result of server lag,
even in singleplayer mode, the client and server can get out of sync.
Solution, be patient, allow the environment to fully load before preceding.
Problems with bouncing in air and generally getting stuck, being pulled
underwater and all manner of other weirdness can also be caused by a rather
nasty entity duplication bug in minetest itself. The only solution here is
to track down and remove any duplicate entities or by running /clearobjects
Entity Duplication: See above. This usually occurs when you move a given
distance from where the entity was originally placed. The only solution
right now is to restrict the hovercraft to a certain area. For example,
create a sunken race track the hovercraft cannot physically escape from.

View File

@ -0,0 +1 @@
default

182
mods/hovercraft/hover.lua Normal file
View File

@ -0,0 +1,182 @@
hover = {}
function hover:register_hovercraft(name, def)
minetest.register_entity(name, {
physical = true,
collisionbox = {-0.8,0,-0.8, 0.8,1.2,0.8},
visual = "mesh",
mesh = "hovercraft.x",
textures = def.textures,
max_speed = def.max_speed,
acceleration = def.acceleration,
deceleration = def.deceleration,
jump_velocity = def.jump_velocity,
fall_velocity = def.fall_velocity,
bounce = def.bounce,
player = nil,
sound = nil,
thrust = 0,
velocity = {x=0, y=0, z=0},
last_pos = {x=0, y=0, z=0},
timer = 0,
on_activate = function(self, staticdata, dtime_s)
self.object:set_armor_groups({immortal=1})
self.object:set_animation({x=0, y=24}, 30)
end,
on_punch = function(self, puncher, time_from_last_punch, tool_capabilities, dir)
if self.player then
return
end
if self.sound then
minetest.sound_stop(self.sound)
end
self.object:remove()
if puncher and puncher:is_player() then
puncher:get_inventory():add_item("main", name)
end
end,
on_rightclick = function(self, clicker)
if not clicker or not clicker:is_player() then
return
end
local pos = self.object:getpos()
if self.player and clicker == self.player then
if self.sound then
minetest.sound_stop(self.sound)
minetest.sound_play("hovercraft_thrust_fade", {object = self.object})
self.sound = nil
end
self.thrust = 0
self.player = nil
self.object:set_animation({x=0, y=24}, 30)
clicker:set_animation({x=0, y=0})
clicker:set_detach()
elseif not self.player then
self.player = clicker
clicker:set_attach(self.object, "", {x=-2,y=16.5,z=0}, {x=0,y=90,z=0})
clicker:set_animation({x=81, y=81})
local yaw = clicker:get_look_yaw()
self.object:setyaw(yaw)
self.yaw = yaw
pos.y = pos.y + 0.5
minetest.sound_play("hovercraft_jump", {object = self.object})
self.object:set_animation({x=0, y=0})
end
self.last_pos = pos
self.object:setpos(pos)
end,
on_step = function(self, dtime)
self.timer = self.timer + dtime
if self.player then
local yaw = self.player:get_look_yaw()
if not yaw then
return
end
self.object:setyaw(yaw)
local ctrl = self.player:get_player_control()
if ctrl.up then
if self.thrust < self.max_speed then
self.thrust = self.thrust + self.acceleration
end
local velocity = hover:get_velocity(self.thrust, self.velocity.y, 0, yaw)
if velocity.x <= self.velocity.x - self.acceleration then
self.velocity.x = self.velocity.x - self.acceleration
elseif velocity.x >= self.velocity.x + self.acceleration then
self.velocity.x = self.velocity.x + self.acceleration
end
if velocity.z <= self.velocity.z - self.acceleration then
self.velocity.z = self.velocity.z - self.acceleration
elseif velocity.z >= self.velocity.z + self.acceleration then
self.velocity.z = self.velocity.z + self.acceleration
end
if not self.sound then
self.object:set_animation({x=25, y=75}, 30)
self.sound = minetest.sound_play("hovercraft_thrust_loop", {
object = self.object,
loop = true,
})
end
elseif self.thrust > 0 then
self.thrust = self.thrust - 0.1
if self.sound then
minetest.sound_stop(self.sound)
minetest.sound_play("hovercraft_thrust_fade", {object = self.object})
self.sound = nil
end
else
self.object:set_animation({x=0, y=0})
self.thrust = 0
end
if ctrl.jump and self.velocity.y == 0 then
self.velocity.y = self.jump_velocity
self.timer = 0
minetest.sound_play("hovercraft_jump", {object = self.object})
end
if ctrl.sneak then
self.player:set_animation({x=81, y=81})
end
end
local pos = self.object:getpos()
if self.timer > 0.5 then
local node = minetest.env:get_node({x=pos.x, y=pos.y-0.5, z=pos.z})
if node.name == "air" or node.name == "ignore" then
self.velocity.y = 0 - self.fall_velocity
else
self.velocity.y = 0
pos.y = math.floor(pos.y) + 0.5
self.object:setpos(pos)
end
self.timer = 0
end
if self.last_pos.x == pos.x and math.abs(self.velocity.x) > 0.5 then
self.velocity.x = self.velocity.x * (0 - self.bounce)
self.thrust = 0
minetest.sound_play("hovercraft_bounce", {object = self.object})
end
if self.last_pos.z == pos.z and math.abs(self.velocity.z) > 0.5 then
self.velocity.z = self.velocity.z * (0 - self.bounce)
self.thrust = 0
minetest.sound_play("hovercraft_bounce", {object = self.object})
end
self.last_pos = pos
if self.thrust < 1 then
if self.velocity.x > self.deceleration then
self.velocity.x = self.velocity.x - self.deceleration
elseif self.velocity.x < 0 - self.deceleration then
self.velocity.x = self.velocity.x + self.deceleration
else
self.velocity.x = 0
end
if self.velocity.z > self.deceleration then
self.velocity.z = self.velocity.z - self.deceleration
elseif self.velocity.z < 0 - self.deceleration then
self.velocity.z = self.velocity.z + self.deceleration
else
self.velocity.z = 0
end
end
self.object:setvelocity(self.velocity)
end,
})
minetest.register_craftitem(name, {
description = def.description,
inventory_image = def.inventory_image,
liquids_pointable = true,
on_place = function(itemstack, placer, pointed_thing)
if pointed_thing.type ~= "node" then
return
end
pointed_thing.under.y = pointed_thing.under.y + 0.5
minetest.env:add_entity(pointed_thing.under, name)
itemstack:take_item()
return itemstack
end,
})
end
function hover:get_velocity(vx, vy, vz, yaw)
local x = math.cos(yaw) * vx + math.cos(math.pi / 2 + yaw) * vz
local z = math.sin(yaw) * vx + math.sin(math.pi / 2 + yaw) * vz
return {x=x, y=vy, z=z}
end

50
mods/hovercraft/init.lua Normal file
View File

@ -0,0 +1,50 @@
dofile(minetest.get_modpath("hovercraft").."/hover.lua")
hover:register_hovercraft("hovercraft:hover_red" ,{
description = "Red Hovercraft",
textures = {"hovercraft_red.png"},
inventory_image = "hovercraft_red_inv.png",
max_speed = 10,
acceleration = 0.25,
deceleration = 0.05,
jump_velocity = 4.0,
fall_velocity = 1.0,
bounce = 0.5,
})
hover:register_hovercraft("hovercraft:hover_blue" ,{
description = "Blue Hovercraft",
textures = {"hovercraft_blue.png"},
inventory_image = "hovercraft_blue_inv.png",
max_speed = 12,
acceleration = 0.25,
deceleration = 0.1,
jump_velocity = 4.0,
fall_velocity = 1.0,
bounce = 0.8,
})
hover:register_hovercraft("hovercraft:hover_green" ,{
description = "Green Hovercraft",
textures = {"hovercraft_green.png"},
inventory_image = "hovercraft_green_inv.png",
max_speed = 8,
acceleration = 0.25,
deceleration = 0.15,
jump_velocity = 5.5,
fall_velocity = 1.5,
bounce = 0.5,
})
hover:register_hovercraft("hovercraft:hover_yellow" ,{
description = "Yellow Hovercraft",
textures = {"hovercraft_yellow.png"},
inventory_image = "hovercraft_yellow_inv.png",
max_speed = 8,
acceleration = 0.25,
deceleration = 0.05,
jump_velocity = 3.0,
fall_velocity = 0.5,
bounce = 0.25,
})

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 905 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 228 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 874 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 228 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 889 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 218 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 909 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 232 B

0
mods/mapgen/modpack.txt Normal file
View File

View File

@ -0,0 +1,97 @@
Moonrealm 0.4.2 by paramat
For latest stable Minetest compatible back to 0.4.6
Depends default
Licenses: Code WTFPL, textures CC BY-SA
Moonstone and moondust textures are recoloured default textures: sand by VanessaE and stone by Perttu Ahola
Pine sapling, needles and ice textures by Splizard.
Fly and teleport up to y = 15000, it will generate below you.
The top 2 chunk layers (160m depth) contain the surface and are lua generated. Underground i have used Pilzadam's nether mod method to quickly turn air to stone, after that lua generates fissure type cave systems. The underground part of this realm is of unlimited depth.
Moondust depth is determined by 3D perlin noise and has smooth transitions / randomness at edges.
The cave systems become narrower as they approach the surface and often intersect the surface at low altitudes creating twisting ravines.
Underground the optional lux ore creates basic cave illumination. Mined lux ore drops lux crystals, 9 can be crafted into a bright lux node.
Maximum chunk generation time on my old slow laptop is 40 seconds for the lower surface chunks, underground chunks are much faster. Progress is printed to terminal to ease the wait.
New stuff in version 0.3.0:
New mapgen using the sum of 2 perlin noises having scales in the golden ratio (207/128).
5 colours of moondust (grey, brown, orange, yellow, white) pattern defined by perlin noise.
The average terrain level (noise offset centre) is now varied by perln noise.
Orange tinted atmosphere nodes return:
Now generated fast using 'register ore' method.
Simplified to 1 node instead of 5, tint is subtle and constant throughout atmosphere and caves.
Optional.
Parameters for tint colour and alpha.
Atmosphere fills holes created by digging nodes.
New stuff in version 0.4.1:
Moondusts are no longer falling nodes.
Mese blocks and iron ore.
Water ice at high altitudes in moondust and glows gently in the moonlight (light source = 1).
Water ice can be crafted to default:water_source.
Moonstone brick node and slabs.
Lux crystals are defined as a fuel with a longer burntime than coal.
Moonstone can be crafted into default:furnace.
Moonglass cooked from moondust1.
Life support air nodes that spread by abm, replacing tinted atmosphere and default "air" but do not pass through thick walls. Beware diagonal leaks, a single leak can spread out of control and cause abm meltdown, the air spread abm can be disabled by parameter if this happens.
Life support air generators add nodes around itself when placed.
Airlock nodes with illumination.
Hydroponic liquid crafted from old leaves and water ice, slightly more viscous than water.
Only moondust5 is suitable as hydroponic bedding, hydroponic liquid 'source' or 'flowing' will saturate neighbouring moondust5 nodes turning them into moonsoil, in this you can plant a space pine sapling, this will only grow when planted in moonsoil beneath either "air" or "moonrealm:air".
Removing hydroponic liquid will cause moonsoil to dry out and revert to moondust5.
Space pines are specially bred compact evergreens for oxygen regeneration and general cool vibage.
New stuff in version 0.4.2:
Liquid hydrocarbon lakes, parameters for colour, transparency, surface level y.
Lakebeds are a few nodes thick and seal the lake from flowing into the fissures ... which is fun but needs to be done carefully because the structure of the fissures creates a giant underground spreading of waterfalls from a single leak.
Crafting
default water source
I
I = waterice
luxnode
CCC
CCC
CCC
C = luxcrystal
airgen
SIS
ILI
SIS
S = steel ingot
I = waterice
L = luxnode
hlsource
NNN
NIN
NNN
N = moonrealm:needles
I = waterice
airlock
S-S
SLS
S-S
S = steel ingot
L = luxnode
moonstonebrick x 4
MM
MM
M = moonstone
moonstoneslab x 4
MM
M = moonstone
default furnace
MMM
M-M
MMM
M = moonstone

View File

@ -0,0 +1 @@
default

View File

@ -0,0 +1,824 @@
-- moonrealm 0.4.2 by paramat.
-- Licenses: Code WTFPL. Textures CC BY-SA.
-- Moonstone and some moondust textures are recoloured default textures: sands by VanessaE and stone by Perttu Ahola.
-- Pine sapling, needles and ice textures by Splizard.
-- Parameters.
local ONGEN = true -- (true / false) -- Enable / disable moonrealm generation.
local YMIN = 14000 -- Approx bottom. Rounded down to chunk boundary.
local YMAX = 15000 -- Approx surface. Rounded up to chunk boundary.
local ATMTOP = 16000 -- Exact top of atmosphere nodes (if ATMOS = true).
local OFFCEN = 80 -- 80 -- Offset centre average. Terrain centre average level, relative to base of surface chunks.
local CENAMP = 24 -- 24 -- Offset centre amplitude. Terrain centre is varied by this.
local HIGRAD = 48 -- 48 -- Surface generating noise gradient above offcen. Controls depth of upper terrain.
local LOGRAD = 48 -- 48 -- Surface generating noise gradient below offcen. Controls depth of lower terrain.
local HEXP = 2 -- 2 -- Noise offset exponent above offcen. -- Crazyness parameters upper/lower terrain, 1 = normal 3D perlin terrain.
local LEXP = 2 -- 2 -- Noise offset exponent below offcen.
local DUSAMP = 0.1 -- 0.1 -- Dust depth amplitude.
local DUSRAN = 0.01 -- 0.01 -- Dust depth randomness.
local DUSGRAD = 128 -- 128 -- Dust noise gradient.
local LHCLEV = 48 -- 48 -- Liquid hydrocarbon lake level, relative to base of surface chunks.
local LHCALP = 192 -- 192 -- LHC alpha.
local LHCRED = 140 -- 140 -- LHC RGB.
local LHCGRE = 19 -- 19
local LHCBLU = 0 -- 0
local ICELEV = 128 -- 128 -- Ice spawns above this altitude, relative to base of surface chunks.
local ICECHA = 1 -- 1 -- Maximum 1/x chance water ice in dust.
local CAVOFF = 0.02 -- 0.02 -- Cave offset. Size of underground caves.
local CAVLEV = 0 -- 0 -- Caves thin above this level, relative to base of surface chunks.
local CAVDIS = 96 -- 96 -- Cave thinning distance in nodes.
local LUXCHA = 7*7*7 -- 7*7*7 -- Luxore 1/x chance underground.
local IROCHA = 5*5*5 -- 5*5*5 -- Iron ore 1/x chance.
local MESCHA = 23*23*23 -- 23*23*23 -- Mese block 1/x chance.
local ATMOS = true -- Enable / disable tinted atmosphere nodes.
local ATMALP = 16 -- 16 -- Atmosphere alpha.
local ATMRED = 255 -- 255 -- Atmosphere RGB.
local ATMGRE = 148 -- 148
local ATMBLU = 0 -- 0
local AIRGEN = true -- Enable/disable air spread abm (in case of air leak).
local AIRINT = 29 -- 29 -- Air spread abm interval.
local SOILINT = 31 -- 31 -- Hydroponics abm interval.
local PININT = 57 -- 57 -- Spawn pine abm interval.
local PINCHA = 2 -- 2 -- 1/x chance per sapling.
local PINMIN = 5 -- 5 -- Needles height minimum.
local PINMAX = 7 -- 7 -- Needles height maximum.
local PROG = true -- Enable/disable chunk generation progress printed to terminal.
-- Perlin noise for terrain.
local SEEDDIFF1 = 46894686546
local OCTAVES1 = 6 -- 6
local PERSISTENCE1 = 0.6 -- 0.6
local SCALE1 = 256 -- 256
-- perlin noise for terrain. 207 / 128 = golden ratio.
local SEEDDIFF4 = 1390930295123
local OCTAVES4 = 6 -- 6
local PERSISTENCE4 = 0.6 -- 0.6
local SCALE4 = 207 -- 207
-- Perlin noise for caves.
local SEEDDIFF2 = 9294207
local OCTAVES2 = 6 -- 6
local PERSISTENCE2 = 0.5 -- 0.5
local SCALE2 = 207 -- 207
-- Perlin noise for dust depth, average terrain level, dust colour
local SEEDDIFF3 = 93561
local OCTAVES3 = 4 -- 4
local PERSISTENCE3 = 0.5 -- 0.5
local SCALE3 = 256 -- 256
-- Stuff.
moonrealm = {}
local yminq = (80 * math.floor((YMIN + 32) / 80)) - 32
local ymaxq = (80 * math.floor((YMAX + 32) / 80)) + 47
local levlhc = ymaxq - 159 + LHCLEV
local levcav = ymaxq - 159 + CAVLEV
local levice = ymaxq - 159 + ICELEV
-- Nodes.
minetest.register_node("moonrealm:moonstone", {
description = "Moon Stone",
tiles = {"moonrealm_moonstone.png"},
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("moonrealm:ironore", {
description = "Iron Ore",
tiles = {"moonrealm_moonstone.png^default_mineral_iron.png"},
groups = {cracky=3},
drop = "default:iron_lump",
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("moonrealm:moondust1", {
description = "Moon Dust 1",
tiles = {"moonrealm_moondust1.png"},
groups = {crumbly=3},
sounds = default.node_sound_dirt_defaults({
footstep = {name="default_gravel_footstep", gain=0.09},
}),
})
minetest.register_node("moonrealm:moondust2", {
description = "Moon Dust 2",
tiles = {"moonrealm_moondust2.png"},
groups = {crumbly=3},
sounds = default.node_sound_dirt_defaults({
footstep = {name="default_gravel_footstep", gain=0.08},
}),
})
minetest.register_node("moonrealm:moondust3", {
description = "Moon Dust 3",
tiles = {"moonrealm_moondust3.png"},
groups = {crumbly=3},
sounds = default.node_sound_dirt_defaults({
footstep = {name="default_gravel_footstep", gain=0.07},
}),
})
minetest.register_node("moonrealm:moondust4", {
description = "Moon Dust 4",
tiles = {"moonrealm_moondust4.png"},
groups = {crumbly=3},
sounds = default.node_sound_dirt_defaults({
footstep = {name="default_gravel_footstep", gain=0.06},
}),
})
minetest.register_node("moonrealm:moondust5", {
description = "Moon Dust 5",
tiles = {"moonrealm_moondust5.png"},
groups = {crumbly=3},
sounds = default.node_sound_dirt_defaults({
footstep = {name="default_gravel_footstep", gain=0.05},
}),
})
minetest.register_node("moonrealm:luxore", {
description = "MR Lux Ore",
tiles = {"moonrealm_luxore.png"},
light_source = 14,
groups = {cracky=3},
drop = "moonrealm:luxcrystal 6",
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("moonrealm:luxnode", {
description = "MR Lux Node",
tiles = {"moonrealm_luxnode.png"},
light_source = 14,
groups = {cracky=2},
sounds = default.node_sound_glass_defaults(),
})
minetest.register_node("moonrealm:atmos", {
drawtype = "airlike",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
pointable = false,
diggable = false,
buildable_to = true,
post_effect_color = {a=ATMALP, r=ATMRED, g=ATMGRE, b=ATMBLU},
})
minetest.register_node("moonrealm:air", {
drawtype = "airlike",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
pointable = false,
diggable = false,
buildable_to = true,
})
minetest.register_node("moonrealm:airgen", {
description = "Air Generator",
tiles = {"moonrealm_airgen.png"},
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
on_construct = function(pos)
local env = minetest.env
local x = pos.x
local y = pos.y
local z = pos.z
for i = -1,1 do
for j = -1,1 do
for k = -1,1 do
if not (i == 0 and j == 0 and k == 0) then
local nodename = env:get_node({x=x+i,y=y+j,z=z+k}).name
if nodename == "moonrealm:atmos" or nodename == "air" then
env:add_node({x=x+i,y=y+j,z=z+k},{name="moonrealm:air"})
print ("[moonrealm] Added air node")
end
end
end
end
end
end
})
minetest.register_node("moonrealm:waterice", {
description = "Water Ice",
tiles = {"moonrealm_waterice.png"},
light_source = 1,
paramtype = "light",
groups = {cracky=3},
sounds = default.node_sound_glass_defaults(),
})
minetest.register_node("moonrealm:hlflowing", {
description = "Flowing HL",
inventory_image = minetest.inventorycube("moonrealm_hl.png"),
drawtype = "flowingliquid",
tiles = {"moonrealm_hl.png"},
special_tiles = {
{
image="moonrealm_hlflowing_animated.png",
backface_culling=false,
animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=2}
},
{
image="moonrealm_hlflowing_animated.png",
backface_culling=true,
animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=2}
},
},
alpha = 224,
paramtype = "light",
walkable = false,
pointable = false,
diggable = false,
buildable_to = true,
liquidtype = "flowing",
liquid_alternative_flowing = "moonrealm:hlflowing",
liquid_alternative_source = "moonrealm:hlsource",
liquid_viscosity = 1,
post_effect_color = {a=224, r=115, g=55, b=24},
groups = {water=3, liquid=3, puts_out_fire=1, not_in_creative_inventory=1},
})
minetest.register_node("moonrealm:hlsource", {
description = "HL Source",
inventory_image = minetest.inventorycube("moonrealm_hl.png"),
drawtype = "liquid",
tiles = {"moonrealm_hl.png"},
alpha = 224,
paramtype = "light",
walkable = false,
pointable = false,
buildable_to = true,
liquidtype = "source",
liquid_alternative_flowing = "moonrealm:hlflowing",
liquid_alternative_source = "moonrealm:hlsource",
liquid_viscosity = 1,
post_effect_color = {a=224, r=115, g=55, b=24},
groups = {water=3, liquid=3, puts_out_fire=1},
})
minetest.register_node("moonrealm:moonsoil", {
description = "Moon Soil",
tiles = {"moonrealm_moonsoil.png"},
groups = {crumbly=3},
drop = "moonrealm:moondust5",
sounds = default.node_sound_dirt_defaults(),
})
minetest.register_node("moonrealm:airlock", {
description = "Airlock",
tiles = {"moonrealm_airlock.png"},
light_source = 14,
walkable = false,
post_effect_color = {a=255, r=0, g=0, b=0},
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("moonrealm:moonstonebrick", {
description = "Moonstone Brick",
tiles = {"moonrealm_moonstonebricktop.png", "moonrealm_moonstonebrickbot.png", "moonrealm_moonstonebrick.png"},
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("moonrealm:moonglass", {
description = "Moon Glass",
drawtype = "glasslike",
tiles = {"moonrealm_moonglass.png"},
paramtype = "light",
sunlight_propagates = true,
groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3},
sounds = default.node_sound_glass_defaults(),
})
minetest.register_node("moonrealm:needles", {
description = "MR Pine Needles",
visual_scale = 1.3,
tiles = {"moonrealm_needles.png"},
paramtype = "light",
groups = {snappy=3, flammable=2},
drop = {
max_items = 1,
items = {
{items = {"moonrealm:psapling"}, rarity = 20},
{items = {"moonrealm:needles"}}
}
},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("moonrealm:psapling", {
description = "MR Pine Sapling",
drawtype = "plantlike",
visual_scale = 1.0,
tiles = {"moonrealm_psapling.png"},
inventory_image = "moonrealm_psapling.png",
wield_image = "moonrealm_psapling.png",
paramtype = "light",
walkable = false,
groups = {snappy=2,dig_immediate=3,flammable=2},
sounds = default.node_sound_defaults(),
})
minetest.register_node("moonrealm:moonstoneslab", {
description = "Moonstone Slab",
tiles = {"moonrealm_moonstonebricktop.png", "moonrealm_moonstonebrickbot.png", "moonrealm_moonstonebrick.png"},
drawtype = "nodebox",
paramtype = "light",
sunlight_propagates = true,
buildable_to = true,
node_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, -0.5, 0.5, 0, 0.5}
},
},
selection_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, -0.5, 0.5, 0, 0.5}
},
},
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("moonrealm:lhcflowing", {
description = "Flowing Liquid Hydrocarbons",
inventory_image = minetest.inventorycube("moonrealm_lhc.png"),
drawtype = "flowingliquid",
tiles = {"moonrealm_lhc.png"},
special_tiles = {
{
image="moonrealm_lhcflowing_animated.png",
backface_culling=false,
animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=2}
},
{
image="moonrealm_lhcflowing_animated.png",
backface_culling=true,
animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=2}
},
},
alpha = LHCALP,
paramtype = "light",
walkable = false,
pointable = false,
diggable = false,
buildable_to = true,
liquidtype = "flowing",
liquid_alternative_flowing = "moonrealm:lhcflowing",
liquid_alternative_source = "moonrealm:lhcsource",
liquid_viscosity = 0,
post_effect_color = {a=LHCALP, r=LHCRED, g=LHCGRE, b=LHCBLU},
groups = {water=3, liquid=3, puts_out_fire=1, not_in_creative_inventory=1},
})
minetest.register_node("moonrealm:lhcsource", {
description = "Liquid Hydrocarbon Source",
inventory_image = minetest.inventorycube("moonrealm_lhc.png"),
drawtype = "liquid",
tiles = {"moonrealm_lhc.png"},
alpha = LHCALP,
paramtype = "light",
walkable = false,
pointable = false,
buildable_to = true,
liquidtype = "source",
liquid_alternative_flowing = "moonrealm:lhcflowing",
liquid_alternative_source = "moonrealm:lhcsource",
liquid_viscosity = 0,
post_effect_color = {a=LHCALP, r=LHCRED, g=LHCGRE, b=LHCBLU},
groups = {water=3, liquid=3, puts_out_fire=1},
})
-- Item.
minetest.register_craftitem("moonrealm:luxcrystal", {
description = "MR Lux Crystal",
inventory_image = "moonrealm_luxcrystal.png",
})
-- Crafting.
minetest.register_craft({
output = "moonrealm:luxnode",
recipe = {
{"moonrealm:luxcrystal", "moonrealm:luxcrystal", "moonrealm:luxcrystal"},
{"moonrealm:luxcrystal", "moonrealm:luxcrystal", "moonrealm:luxcrystal"},
{"moonrealm:luxcrystal", "moonrealm:luxcrystal", "moonrealm:luxcrystal"},
},
})
minetest.register_craft({
output = "moonrealm:airgen",
recipe = {
{"default:steel_ingot", "moonrealm:waterice", "default:steel_ingot"},
{"moonrealm:waterice", "moonrealm:luxnode", "moonrealm:waterice"},
{"default:steel_ingot", "moonrealm:waterice", "default:steel_ingot"},
},
})
minetest.register_craft({
output = "default:water_source",
recipe = {
{"moonrealm:waterice"},
},
})
minetest.register_craft({
output = "moonrealm:hlsource",
recipe = {
{"moonrealm:needles", "moonrealm:needles", "moonrealm:needles"},
{"moonrealm:needles", "moonrealm:waterice", "moonrealm:needles"},
{"moonrealm:needles", "moonrealm:needles", "moonrealm:needles"},
},
})
minetest.register_craft({
output = "moonrealm:moonstonebrick 4",
recipe = {
{"moonrealm:moonstone", "moonrealm:moonstone"},
{"moonrealm:moonstone", "moonrealm:moonstone"},
}
})
minetest.register_craft({
output = "moonrealm:airlock",
recipe = {
{"default:steel_ingot", "", "default:steel_ingot"},
{"default:steel_ingot", "moonrealm:luxnode", "default:steel_ingot"},
{"default:steel_ingot", "", "default:steel_ingot"},
},
})
minetest.register_craft({
output = "default:furnace",
recipe = {
{"moonrealm:moonstone", "moonrealm:moonstone", "moonrealm:moonstone"},
{"moonrealm:moonstone", "", "moonrealm:moonstone"},
{"moonrealm:moonstone", "moonrealm:moonstone", "moonrealm:moonstone"},
},
})
minetest.register_craft({
output = "moonrealm:moonstoneslab 4",
recipe = {
{"moonrealm:moonstone", "moonrealm:moonstone"},
}
})
-- Cooking.
minetest.register_craft({
type = "cooking",
output = "moonrealm:moonglass",
recipe = "moonrealm:moondust1",
})
-- Fuel.
minetest.register_craft({
type = "fuel",
recipe = "moonrealm:luxcrystal",
burntime = 50,
})
-- On dignode. Atmosphere flows into a dug hole.
if ATMOS then
minetest.register_on_dignode(function(pos, oldnode, digger)
local env = minetest.env
local x = pos.x
local y = pos.y
local z = pos.z
for i = -1,1 do
for j = -1,1 do
for k = -1,1 do
if not (i == 0 and j == 0 and k == 0) then
local nodename = env:get_node({x=x+i,y=y+j,z=z+k}).name
if nodename == "moonrealm:atmos" then
env:add_node({x=x,y=y,z=z},{name="moonrealm:atmos"})
print ("[moonrealm] Atmosphere flows into hole")
return
end
end
end
end
end
end)
end
-- Abm.
-- Air spread abm, life support air and pine needles.
if ATMOS and AIRGEN then
minetest.register_abm({
nodenames = {"moonrealm:air"},
neighbors = {"moonrealm:atmos", "air"},
interval = AIRINT,
chance = 9,
action = function(pos, node, active_object_count, active_object_count_wider)
local env = minetest.env
local x = pos.x
local y = pos.y
local z = pos.z
for i = -1,1 do
for j = -1,1 do
for k = -1,1 do
if not (i == 0 and j == 0 and k == 0) then
local nodename = env:get_node({x=x+i,y=y+j,z=z+k}).name
if nodename == "moonrealm:atmos" or nodename == "air" then
env:add_node({x=x+i,y=y+j,z=z+k},{name="moonrealm:air"})
print ("[moonrealm] Air spreads ("..i.." "..j.." "..k..")")
end
end
end
end
end
end
})
end
-- Hydroponics. Saturation and drying.
minetest.register_abm({
nodenames = {"moonrealm:hlsource", "moonrealm:hlflowing"},
interval = SOILINT,
chance = 9,
action = function(pos, node, active_object_count, active_object_count_wider)
local env = minetest.env
local x = pos.x
local y = pos.y
local z = pos.z
for i = -1,1 do
for j = -1,1 do
for k = -1,1 do
if not (i == 0 and j == 0 and k == 0) then
local nodename = env:get_node({x=x+i,y=y+j,z=z+k}).name
if nodename == "moonrealm:moondust5" then
env:add_node({x=x+i,y=y+j,z=z+k},{name="moonrealm:moonsoil"})
print ("[moonrealm] Hydroponic liquid saturates")
end
end
end
end
end
end
})
minetest.register_abm({
nodenames = {"moonrealm:moonsoil"},
interval = SOILINT,
chance = 9,
action = function(pos, node)
if not minetest.find_node_near(pos, 1, {"moonrealm:hlsource", "moonrealm:hlflowing"}) then
minetest.add_node(pos, {name="moonrealm:moondust5"})
print ("[moonrealm] Moonsoil dries")
end
end,
})
-- Space pine from sapling.
minetest.register_abm({
nodenames = {"moonrealm:psapling"},
interval = PININT,
chance = PINCHA,
action = function(pos, node, active_object_count, active_object_count_wider)
local env = minetest.env
local anodename = env:get_node({x=pos.x,y=pos.y+1,z=pos.z}).name
local unodename = env:get_node({x=pos.x,y=pos.y-1,z=pos.z}).name
if unodename == "moonrealm:moonsoil" and (anodename == "moonrealm:air" or anodename == "air") then
moonrealm_pine(pos)
print ("[moonrealm] Pine sapling grows")
end
end,
})
-- Ores.
if ONGEN then
minetest.register_ore({
ore_type = "scatter",
ore = "default:mese",
wherein = "air",
clust_scarcity = MESCHA,
clust_num_ores = 1,
clust_size = 1,
height_min = yminq,
height_max = ymaxq - 160,
})
minetest.register_ore({
ore_type = "scatter",
ore = "moonrealm:ironore",
wherein = "air",
clust_scarcity = IROCHA,
clust_num_ores = 1,
clust_size = 1,
height_min = yminq,
height_max = ymaxq - 160,
})
minetest.register_ore({
ore_type = "scatter",
ore = "moonrealm:luxore",
wherein = "air",
clust_scarcity = LUXCHA,
clust_num_ores = 1,
clust_size = 1,
height_min = yminq,
height_max = ymaxq - 160,
})
for i=1,7 do
minetest.register_ore({
ore_type = "scatter",
ore = "moonrealm:moonstone",
wherein = "air",
clust_scarcity = 1,
clust_num_ores = 1,
clust_size = 1,
height_min = yminq,
height_max = ymaxq - 160,
})
end
if ATMOS then
for i=1,11 do
minetest.register_ore({
ore_type = "scatter",
ore = "moonrealm:atmos",
wherein = "air",
clust_scarcity = 1,
clust_num_ores = 1,
clust_size = 1,
height_min = ymaxq - 159,
height_max = ATMTOP,
})
end
end
end
-- On generated.
if ONGEN then
minetest.register_on_generated(function(minp, maxp, seed)
if maxp.y == ymaxq or maxp.y == ymaxq - 80 then -- if surface chunks then
local env = minetest.env
local perlin1 = env:get_perlin(SEEDDIFF1, OCTAVES1, PERSISTENCE1, SCALE1)
local perlin2 = env:get_perlin(SEEDDIFF2, OCTAVES2, PERSISTENCE2, SCALE2)
local perlin3 = env:get_perlin(SEEDDIFF3, OCTAVES3, PERSISTENCE3, SCALE3)
local perlin4 = env:get_perlin(SEEDDIFF4, OCTAVES4, PERSISTENCE4, SCALE4)
local x1 = maxp.x
local y1 = maxp.y
local z1 = maxp.z
local x0 = minp.x
local y0 = minp.y
local z0 = minp.z
for x = x0, x1 do -- for each plane do
if PROG then
print ("[moonrealm] Surface "..x - x0.." ("..minp.x.." "..minp.y.." "..minp.z..")")
end
for z = z0, z1 do -- for each column do
local surfy = false
local lakebed = false
local noise5 = perlin3:get2d({x=x+828,y=z+828})
local cenoff = ymaxq - 159 + OFFCEN + noise5 * CENAMP
for y = y1, y0, -1 do -- for each node do
if y > cenoff then
offset = ((y - cenoff) / HIGRAD) ^ HEXP
else
offset = -((cenoff - y) / LOGRAD) ^ LEXP
end
local noise1 = perlin1:get3d({x=x,y=y,z=z})
local noise4 = perlin4:get3d({x=x,y=y,z=z})
local noise1off = (noise1 + noise4) / 2 - offset
if noise1off >= 0 then -- if terrain then
if not surfy then
surfy = y
if surfy <= levlhc + 1 then
lakebed = true
end
end
local cavprop = (1 - (y - levcav) / CAVDIS)
local offcav = CAVOFF * cavprop
local noise2 = perlin2:get3d({x=x,y=y,z=z})
if math.abs(noise2) - offcav > 0 or (lakebed and noise1off < DUSAMP) then -- if no cave or lakebed then
local noise3 = perlin3:get3d({x=x,y=y,z=z})
local noise3off = noise3 - (y - cenoff) / DUSGRAD
local thrsto = noise3off * DUSAMP + math.random() * DUSRAN
if noise1off >= thrsto then -- if stone then
if noise1off > DUSAMP and math.random(MESCHA) == 2 then
env:add_node({x=x,y=y,z=z},{name="default:mese"})
elseif noise1off > DUSAMP and math.random(IROCHA) == 2 then
env:add_node({x=x,y=y,z=z},{name="moonrealm:ironore"})
elseif noise1off > DUSAMP and cavprop > 0
and math.random(math.floor(LUXCHA / cavprop)) == 2 then
env:add_node({x=x,y=y,z=z},{name="moonrealm:luxore"})
else
env:add_node({x=x,y=y,z=z},{name="moonrealm:moonstone"})
end
else -- dust
local noise6 = perlin3:get3d({x=x-828,y=y-828,z=z-828}) + math.random() * 0.1
if y > levice and math.random(math.floor(ICECHA * (ymaxq - levice) / (y - levice))) == 1 then
env:add_node({x=x,y=y,z=z},{name="moonrealm:waterice"})
elseif noise6 < -0.9 then
env:add_node({x=x,y=y,z=z},{name="moonrealm:moondust1"})
elseif noise6 < -0.3 then
env:add_node({x=x,y=y,z=z},{name="moonrealm:moondust2"})
elseif noise6 < 0.3 then
env:add_node({x=x,y=y,z=z},{name="moonrealm:moondust3"})
elseif noise6 < 0.9 then
env:add_node({x=x,y=y,z=z},{name="moonrealm:moondust4"})
else
env:add_node({x=x,y=y,z=z},{name="moonrealm:moondust5"})
end
end
elseif ATMOS then -- if cave add atmos
env:add_node({x=x,y=y,z=z},{name="moonrealm:atmos"})
end
elseif y <= levlhc then -- if lake then
env:add_node({x=x,y=y,z=z},{name="moonrealm:lhcsource"})
end
end
end
end
elseif minp.y >= yminq and maxp.y <= ymaxq - 160 then -- if underground chunks then fissure cave system
local env = minetest.env
local perlin2 = env:get_perlin(SEEDDIFF2, OCTAVES2, PERSISTENCE2, SCALE2)
local x1 = maxp.x
local y1 = maxp.y
local z1 = maxp.z
local x0 = minp.x
local y0 = minp.y
local z0 = minp.z
local offcav = CAVOFF
for x = x0, x1 do -- for each plane do
if PROG then
print ("[moonrealm] Fissures "..x - x0.." ("..minp.x.." "..minp.y.." "..minp.z..")")
end
for z = z0, z1 do -- for each column do
for y = y0, y1 do -- for each node do
local noise2 = perlin2:get3d({x=x,y=y,z=z})
if math.abs(noise2) - offcav < 0 then -- if cave then
if ATMOS then
env:add_node({x=x,y=y,z=z},{name="moonrealm:atmos"})
else
env:remove_node({x=x,y=y,z=z})
end
end
end
end
end
end
end)
end
-- Functions.
function moonrealm_pine(pos)
local env = minetest.env
local t = math.random(PINMIN, PINMAX)
for j= -2, t - 2 do
env:add_node({x=pos.x,y=pos.y+j,z=pos.z},{name="default:tree"})
if j >= 1 and j <= t - 4 then
for i = -1, 1 do
for k = -1, 1 do
if i ~= 0 or k ~= 0 then
env:add_node({x=pos.x+i,y=pos.y+j,z=pos.z+k},{name="moonrealm:needles"})
end
end
end
elseif j >= t - 3 then
for i = -1, 1 do
for k = -1, 1 do
if (i == 0 and k ~= 0) or (i ~= 0 and k == 0) then
env:add_node({x=pos.x+i,y=pos.y+j,z=pos.z+k},{name="moonrealm:needles"})
end
end
end
end
end
for j = t - 1, t do
env:add_node({x=pos.x,y=pos.y+j,z=pos.z},{name="moonrealm:needles"})
end
end

View File

@ -0,0 +1,14 @@
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Version 2, December 2004
Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>
Everyone is permitted to copy and distribute verbatim or modified
copies of this license document, and changing it is allowed as long
as the name is changed.
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. You just DO WHAT THE FUCK YOU WANT TO.

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 201 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 199 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 207 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 611 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 554 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 460 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 590 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 670 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 688 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 684 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 491 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 175 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 860 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 406 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 490 B

View File

@ -0,0 +1,6 @@
paragen 0.1.0 by paramat
For latest stable Minetest and back to 0.4.3
Depends default
Licenses: Code WTFPL. Texture: CC BY-SA, redstone is a desert stone texture by celeron55
* Fly and teleport to y = 12080

View File

@ -0,0 +1 @@
default

View File

@ -0,0 +1,158 @@
-- paragen 0.1.0 by paramat
-- For latest stable Minetest and back to 0.4.3
-- Depends default
-- Licenses: Code WTFPL. Texture: CC BY-SA, redstone is a desert stone texture by celeron55
-- Variables
local ONGEN = true -- (true / false) Enable / disable generation.
local XMIN = -16000 -- Approx West edge. -- These parameters will be rounded down or up to chunk edges.
local XMAX = 16000 -- Approx East edge.
local ZMIN = -16000 -- Approx South edge.
local ZMAX = 16000 -- Approx North edge.
local YMIN = 12000 -- Approx bottom.
local YMAX = 12080 -- Approx top.
local GRAD = 40 -- Surface generating noise gradient. Controls height of hills.
local PERSAV = 0.5 -- -- Persistence average. Terrain roughness.
local PERSAMP = 0.1 -- -- Persistence amplitude. Roughness variation.
local STAV = 0.05 -- -- Stone threshold average. Sand depth.
local STAMP = 0.05 -- -- Stone threshold amplitude. Depth variation.
local FISTS = 0.01 -- -- Fissure threshold surface. Fissure size at surface.
local CAVTS = 1.4 -- -- Cave threshold surface. Cave size at surface.
local FISTU = 0.03 -- -- Fissure threshold underground. Fissure size underground.
local CAVTU = 0.5 -- -- Cave threshold underground. Cave size underground.
local PROG = true
-- 3D Perlin1 for terrain
local perl1 = {
SEED1 = 5829058,
OCTA1 = 6, --
SCAL1 = 256, --
}
-- 2D Perlin2 for alt terrain
local perl2 = {
SEED2 = 76906,
OCTA2 = 6, --
SCAL2 = 207, --
}
-- 3D Perlin3 for terrain select
local perl3 = {
SEED3 = 848,
OCTA3 = 5, --
PERS3 = 0.5, --
SCAL3 = 256, --
}
-- 3D Perlin4 for fissures and caves
local perl4 = {
SEED4 = 98275470284,
OCTA4 = 6, --
PERS4 = 0.5, --
SCAL4 = 207, --
}
-- 3D Perlin5 for perlin1 perlin2 persistence and sand depth
local perl5 = {
SEED5 = 7028411255342,
OCTA5 = 4, --
PERS5 = 0.5, --
SCAL5 = 414, --
}
-- Nodes
minetest.register_node("paragen:redstone", {
description = "PG Redstone",
tiles = {"paragen_redstone.png"},
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
})
-- Stuff
paragen = {}
local xminq = (80 * math.floor((XMIN + 32) / 80)) - 32
local yminq = (80 * math.floor((YMIN + 32) / 80)) - 32
local zminq = (80 * math.floor((ZMIN + 32) / 80)) - 32
local xmaxq = (80 * math.floor((XMAX + 32) / 80)) + 47
local ymaxq = (80 * math.floor((YMAX + 32) / 80)) + 47
local zmaxq = (80 * math.floor((ZMAX + 32) / 80)) + 47
local offcen = math.floor((ymaxq + yminq) / 2)
-- On generated function
if ONGEN then
minetest.register_on_generated(function(minp, maxp, seed)
if minp.x >= xminq and maxp.x <= xmaxq
and minp.y >= yminq and maxp.y <= ymaxq
and minp.z >= zminq and maxp.z <= zmaxq then
local env = minetest.env
local perlin3 = env:get_perlin(perl3.SEED3, perl3.OCTA3, perl3.PERS3, perl3.SCAL3)
local perlin4 = env:get_perlin(perl4.SEED4, perl4.OCTA4, perl4.PERS4, perl4.SCAL4)
local perlin5 = env:get_perlin(perl5.SEED5, perl5.OCTA5, perl5.PERS5, perl5.SCAL5)
local x1 = maxp.x
local y1 = maxp.y
local z1 = maxp.z
local x0 = minp.x
local y0 = minp.y
local z0 = minp.z
for x = x0, x1 do -- for each plane do
if PROG then
print ("[paragen] "..(x - x0 + 1).." ("..minp.x.." "..minp.y.." "..minp.z..")")
end
for z = z0, z1 do -- for each column do
local noise7 = perlin5:get2d({x=x+777,y=z+777}) -- sand depth
local stothr = STAV + noise7 * STAMP
for y = y0, y1 do -- for each node do
local noise6 = perlin5:get3d({x=x,y=y,z=z}) -- persistence
local pepers = PERSAV + noise6 * PERSAMP
local noise3 = perlin3:get3d({x=x,y=y,z=z}) -- terrain select
if noise3 < 0 then
local perlin1 = env:get_perlin(perl1.SEED1, perl1.OCTA1, pepers, perl1.SCAL1)
noise = perlin1:get3d({x=x,y=y,z=z}) -- terrain
else -- alternative terrain
local perlin2 = env:get_perlin(perl2.SEED2, perl2.OCTA2, pepers, perl2.SCAL2)
noise = perlin2:get3d({x=x,y=y,z=z}) -- alt terrain
end
local offset = (offcen - y) / GRAD
local noiseoff = noise + offset
if noiseoff >= 0 then -- if terrain then
if noiseoff < 1 then
fist = FISTS + noiseoff * (FISTU - FISTS)
cavt = CAVTS + noiseoff * (CAVTU - CAVTS)
else
fist = FISTU
cavt = CAVTU
end
local noise4 = perlin4:get3d({x=x,y=y,z=z}) -- fissures
local noise5 = perlin4:get3d({x=x*2,y=y*2,z=z*2}) -- caves
if math.abs(noise4) > fist and math.abs(noise5) < cavt then -- if no fissures and no cave then
if noiseoff < stothr then
env:add_node({x=x,y=y,z=z},{name="default:desert_sand"})
elseif (noiseoff >= stothr and noiseoff < 0.13)
or (noiseoff >= 0.19 and noiseoff < 0.23)
or (noiseoff >= 0.32 and noiseoff < 0.37)
or (noiseoff >= 0.47 and noiseoff < 0.60)
or (noiseoff >= 0.69 and noiseoff < 0.73)
or noiseoff >= 0.90 then
env:add_node({x=x,y=y,z=z},{name="paragen:redstone"})
else
env:add_node({x=x,y=y,z=z},{name="default:sandstone"})
end
end
end
end
end
end
end
end)
end

View File

@ -0,0 +1,14 @@
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Version 2, December 2004
Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>
Everyone is permitted to copy and distribute verbatim or modified
copies of this license document, and changing it is allowed as long
as the name is changed.
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. You just DO WHAT THE FUCK YOU WANT TO.

Binary file not shown.

After

Width:  |  Height:  |  Size: 517 B

25
mods/nether/README.txt Normal file
View File

@ -0,0 +1,25 @@
Minetest 0.4 mod: nether
========================
License of source code:
-----------------------
Copyright (C) 2013 PilzAdam
This program is free software. It comes without any warranty, to
the extent permitted by applicable law. You can redistribute it
and/or modify it under the terms of the Do What The Fuck You Want
To Public License, Version 2, as published by Sam Hocevar. See
http://sam.zoy.org/wtfpl/COPYING for more details.
License of media (textures and sounds)
--------------------------------------
Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)
http://creativecommons.org/licenses/by-sa/3.0/
Authors of media files
-----------------------
Everything not listed in here:
Copyright (C) 2013 PilzAdam
nether_rack.png: Zeg9
nether_glowstone.png: BlockMen

1
mods/nether/depends.txt Normal file
View File

@ -0,0 +1 @@
default

399
mods/nether/init.lua Normal file
View File

@ -0,0 +1,399 @@
-- Minetest 0.4 Mod: Nether
local NETHER_DEPTH = -5000
minetest.register_node("nether:portal", {
description = "Nether Portal",
tiles = {
"nether_transparent.png",
"nether_transparent.png",
"nether_transparent.png",
"nether_transparent.png",
{
name = "nether_portal.png",
animation = {
type = "vertical_frames",
aspect_w = 16,
aspect_h = 16,
length = 0.5,
},
},
{
name = "nether_portal.png",
animation = {
type = "vertical_frames",
aspect_w = 16,
aspect_h = 16,
length = 0.5,
},
},
},
drawtype = "nodebox",
paramtype = "light",
paramtype2 = "facedir",
sunlight_propagates = true,
use_texture_alpha = true,
walkable = false,
digable = false,
pointable = false,
buildable_to = false,
drop = "",
light_source = 5,
post_effect_color = {a=180, r=128, g=0, b=128},
alpha = 192,
node_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, -0.1, 0.5, 0.5, 0.1},
},
},
groups = {not_in_creative_inventory=1}
})
local function build_portal(pos, target)
local p = {x=pos.x-1, y=pos.y-1, z=pos.z}
local p1 = {x=pos.x-1, y=pos.y-1, z=pos.z}
local p2 = {x=p1.x+3, y=p1.y+4, z=p1.z}
for i=1,4 do
minetest.env:set_node(p, {name="default:obsidian"})
p.y = p.y+1
end
for i=1,3 do
minetest.env:set_node(p, {name="default:obsidian"})
p.x = p.x+1
end
for i=1,4 do
minetest.env:set_node(p, {name="default:obsidian"})
p.y = p.y-1
end
for i=1,3 do
minetest.env:set_node(p, {name="default:obsidian"})
p.x = p.x-1
end
for x=p1.x,p2.x do
for y=p1.y,p2.y do
p = {x=x, y=y, z=p1.z}
if not (x == p1.x or x == p2.x or y==p1.y or y==p2.y) then
minetest.env:set_node(p, {name="nether:portal", param2=0})
end
local meta = minetest.env:get_meta(p)
meta:set_string("p1", minetest.pos_to_string(p1))
meta:set_string("p2", minetest.pos_to_string(p2))
meta:set_string("target", minetest.pos_to_string(target))
if y ~= p1.y then
for z=-2,2 do
if z ~= 0 then
p.z = p.z+z
if minetest.registered_nodes[minetest.env:get_node(p).name].is_ground_content then
minetest.env:remove_node(p)
end
p.z = p.z-z
end
end
end
end
end
end
minetest.register_abm({
nodenames = {"nether:portal"},
interval = 1,
chance = 2,
action = function(pos, node)
minetest.add_particlespawner(
32, --amount
4, --time
{x=pos.x-0.25, y=pos.y-0.25, z=pos.z-0.25}, --minpos
{x=pos.x+0.25, y=pos.y+0.25, z=pos.z+0.25}, --maxpos
{x=-0.8, y=-0.8, z=-0.8}, --minvel
{x=0.8, y=0.8, z=0.8}, --maxvel
{x=0,y=0,z=0}, --minacc
{x=0,y=0,z=0}, --maxacc
0.5, --minexptime
1, --maxexptime
1, --minsize
2, --maxsize
false, --collisiondetection
"nether_particle.png" --texture
)
for _,obj in ipairs(minetest.env:get_objects_inside_radius(pos, 1)) do
if obj:is_player() then
local meta = minetest.env:get_meta(pos)
local target = minetest.string_to_pos(meta:get_string("target"))
if target then
minetest.after(3, function(obj, pos, target)
local objpos = obj:getpos()
objpos.y = objpos.y+0.1 -- Fix some glitches at -8000
if minetest.env:get_node(objpos).name ~= "nether:portal" then
return
end
obj:setpos(target)
local function check_and_build_portal(pos, target)
local n = minetest.env:get_node_or_nil(target)
if n and n.name ~= "nether:portal" then
build_portal(target, pos)
minetest.after(2, check_and_build_portal, pos, target)
minetest.after(4, check_and_build_portal, pos, target)
elseif not n then
minetest.after(1, check_and_build_portal, pos, target)
end
end
minetest.after(1, check_and_build_portal, pos, target)
end, obj, pos, target)
end
end
end
end,
})
local function move_check(p1, max, dir)
local p = {x=p1.x, y=p1.y, z=p1.z}
local d = math.abs(max-p1[dir]) / (max-p1[dir])
while p[dir] ~= max do
p[dir] = p[dir] + d
if minetest.env:get_node(p).name ~= "default:obsidian" then
return false
end
end
return true
end
local function check_portal(p1, p2)
if p1.x ~= p2.x then
if not move_check(p1, p2.x, "x") then
return false
end
if not move_check(p2, p1.x, "x") then
return false
end
elseif p1.z ~= p2.z then
if not move_check(p1, p2.z, "z") then
return false
end
if not move_check(p2, p1.z, "z") then
return false
end
else
return false
end
if not move_check(p1, p2.y, "y") then
return false
end
if not move_check(p2, p1.y, "y") then
return false
end
return true
end
local function is_portal(pos)
for d=-3,3 do
for y=-4,4 do
local px = {x=pos.x+d, y=pos.y+y, z=pos.z}
local pz = {x=pos.x, y=pos.y+y, z=pos.z+d}
if check_portal(px, {x=px.x+3, y=px.y+4, z=px.z}) then
return px, {x=px.x+3, y=px.y+4, z=px.z}
end
if check_portal(pz, {x=pz.x, y=pz.y+4, z=pz.z+3}) then
return pz, {x=pz.x, y=pz.y+4, z=pz.z+3}
end
end
end
end
local function make_portal(pos)
local p1, p2 = is_portal(pos)
if not p1 or not p2 then
return false
end
for d=1,2 do
for y=p1.y+1,p2.y-1 do
local p
if p1.z == p2.z then
p = {x=p1.x+d, y=y, z=p1.z}
else
p = {x=p1.x, y=y, z=p1.z+d}
end
if minetest.env:get_node(p).name ~= "air" then
return false
end
end
end
local param2
if p1.z == p2.z then param2 = 0 else param2 = 1 end
local target = {x=p1.x, y=p1.y, z=p1.z}
target.x = target.x + 1
if target.y < NETHER_DEPTH then
target.y = math.random(-50, 20)
else
target.y = NETHER_DEPTH - math.random(500, 1500)
end
for d=0,3 do
for y=p1.y,p2.y do
local p = {}
if param2 == 0 then p = {x=p1.x+d, y=y, z=p1.z} else p = {x=p1.x, y=y, z=p1.z+d} end
if minetest.env:get_node(p).name == "air" then
minetest.env:set_node(p, {name="nether:portal", param2=param2})
end
local meta = minetest.env:get_meta(p)
meta:set_string("p1", minetest.pos_to_string(p1))
meta:set_string("p2", minetest.pos_to_string(p2))
meta:set_string("target", minetest.pos_to_string(target))
end
end
return true
end
minetest.register_node(":default:obsidian", {
description = "Obsidian",
tiles = {"default_obsidian.png"},
is_ground_content = true,
sounds = default.node_sound_stone_defaults(),
groups = {cracky=1,level=2},
on_destruct = function(pos)
local meta = minetest.env:get_meta(pos)
local p1 = minetest.string_to_pos(meta:get_string("p1"))
local p2 = minetest.string_to_pos(meta:get_string("p2"))
local target = minetest.string_to_pos(meta:get_string("target"))
if not p1 or not p2 then
return
end
for x=p1.x,p2.x do
for y=p1.y,p2.y do
for z=p1.z,p2.z do
local nn = minetest.env:get_node({x=x,y=y,z=z}).name
if nn == "default:obsidian" or nn == "nether:portal" then
if nn == "nether:portal" then
minetest.env:remove_node({x=x,y=y,z=z})
end
local m = minetest.env:get_meta({x=x,y=y,z=z})
m:set_string("p1", "")
m:set_string("p2", "")
m:set_string("target", "")
end
end
end
end
meta = minetest.env:get_meta(target)
if not meta then
return
end
p1 = minetest.string_to_pos(meta:get_string("p1"))
p2 = minetest.string_to_pos(meta:get_string("p2"))
if not p1 or not p2 then
return
end
for x=p1.x,p2.x do
for y=p1.y,p2.y do
for z=p1.z,p2.z do
local nn = minetest.env:get_node({x=x,y=y,z=z}).name
if nn == "default:obsidian" or nn == "nether:portal" then
if nn == "nether:portal" then
minetest.env:remove_node({x=x,y=y,z=z})
end
local m = minetest.env:get_meta({x=x,y=y,z=z})
m:set_string("p1", "")
m:set_string("p2", "")
m:set_string("target", "")
end
end
end
end
end,
})
minetest.register_craftitem(":default:mese_crystal_fragment", {
description = "Mese Crystal Fragment",
inventory_image = "default_mese_crystal_fragment.png",
on_place = function(stack,_, pt)
if pt.under and minetest.env:get_node(pt.under).name == "default:obsidian" then
local done = make_portal(pt.under)
if done and not minetest.setting_getbool("creative_mode") then
stack:take_item()
end
end
return stack
end,
})
minetest.register_node("nether:rack", {
description = "Netherrack",
tiles = {"nether_rack.png"},
is_ground_content = true,
drop = {
max_items = 1,
items = {{
rarity = 3,
items = {"nether:rack"},
}}
},
groups = {cracky=3,level=2},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("nether:sand", {
description = "Nethersand",
tiles = {"nether_sand.png"},
is_ground_content = true,
groups = {crumbly=3,level=2,falling_node=1},
sounds = default.node_sound_dirt_defaults({
footstep = {name="default_gravel_footstep", gain=0.45},
}),
})
minetest.register_node("nether:glowstone", {
description = "Glowstone",
tiles = {"nether_glowstone.png"},
is_ground_content = true,
light_source = 13,
groups = {cracky=3,oddly_breakable_by_hand=3},
sounds = default.node_sound_glass_defaults(),
})
minetest.register_node("nether:brick", {
description = "Nether Brick",
tiles = {"nether_brick.png"},
groups = {cracky=2,level=2},
sounds = default.node_sound_stone_defaults(),
})
local function replace(old, new)
for i=1,8 do
minetest.register_ore({
ore_type = "scatter",
ore = new,
wherein = old,
clust_scarcity = 1,
clust_num_ores = 1,
clust_size = 1,
height_min = -31000,
height_max = NETHER_DEPTH,
})
end
end
replace("default:stone", "nether:rack")
replace("default:stone_with_coal", "air")
replace("default:stone_with_iron", "air")
replace("default:stone_with_mese", "default:lava_source")
replace("default:stone_with_diamond", "default:lava_source")
replace("default:stone_with_gold", "nether:glowstone")
replace("default:stone_with_copper", "nether:sand")
replace("default:gravel", "nether:sand")
replace("default:dirt", "nether:sand")
replace("default:sand", "nether:sand")
replace("default:cobble", "nether:brick")
replace("default:mossycobble", "nether:brick")
replace("stairs:stair_cobble", "nether:brick")

Binary file not shown.

After

Width:  |  Height:  |  Size: 509 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 876 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 226 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 382 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 556 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 527 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 B

580
mods/polymer/bas080nodes Normal file
View File

@ -0,0 +1,580 @@
local bas080nodes = {
{
{-8/16, -8/16, -8/16, -7/16, 7/16, -7/16},
{-8/16, 7/16, -8/16, 8/16, 8/16, 8/16},
{7/16, -8/16, 7/16, 8/16, 7/16, 8/16},
{-8/16, -8/16, 7/16, -7/16, 7/16, 8/16},
{7/16, -8/16, -8/16, 8/16, 7/16, -7/16},
{-7/16, 5/16, -8/16, 7/16, 6/16, -7/16},
{-8/16, 5/16, -7/16, -7/16, 6/16, 7/16},
{-7/16, 5/16, 7/16, 7/16, 6/16, 8/16},
{7/16, 5/16, -7/16, 8/16, 6/16, 7/16},
},
{--table
{-8/16, -8/16, -8/16, -6/16, 6/16, -6/16},
{-8/16, -8/16, 6/16, -6/16, 6/16, 8/16},
{6/16, -8/16, 6/16, 8/16, 6/16, 8/16},
{6/16, -8/16, -8/16, 8/16, 6/16, -6/16},
{-8/16, 6/16, -8/16, 8/16, 8/16, 8/16},
},
{
{-8/16, -1/16, -8/16, 8/16, 1/16, 8/16},
{-8/16, -8/16, -8/16, -6/16, -1/16, -6/16},
{-8/16, -8/16, 6/16, -6/16, -1/16, 8/16},
{6/16, -8/16, 6/16, 8/16, -1/16, 8/16},
{6/16, -8/16, -8/16, 8/16, -1/16, -6/16}
},
{
{-8/16, -3/16, -5/16, 8/16, -2/16, 5/16},
{7/16, -8/16, -5/16, 8/16, -3/16, -4/16},
{7/16, -8/16, 4/16, 8/16, -3/16, 5/16},
{-8/16, -8/16, 4/16, -7/16, -3/16, 5/16},
{-8/16, -8/16, -5/16, -7/16, -3/16, -4/16},
{-7/16, -6/16, -4/16, 7/16, -5/16, 4/16},
},
{
{-8/16, 2/16, -8/16, -4/16, 3/16, 8/16},
{-8/16, 3/16, -6/16, -5/16, 7/16, -4/16},
{-8/16, 3/16, -4/16, -6/16, 6/16, -3/16},
{-8/16, 3/16, -3/16, -4/16, 7/16, -2/16},
{-8/16, 3/16, -2/16, -5/16, 7/16, -1/16},
{-8/16, 3/16, -1/16, -4/16, 8/16, 0/16},
{-8/16, 3/16, 0/16, -5/16, 6/16, 2/16},
{-8/16, 3/16, 2/16, -5/16, 7/16, 3/16},
{-8/16, 3/16, 3/16, -6/16, 6/16, 4/16},
{-8/16, 3/16, 4/16, -5/16, 6/16, 6/16},
},
{
{-8/16, 2/16, -8/16, -4/16, 3/16, 8/16},
},
{
{7/16, -8/16, -2/16, 8/16, 8/16, 2/16},
{4/16, -8/16, -2/16, 7/16, -7/16, 2/16},
{4/16, -4/16, -2/16, 7/16, -3/16, 2/16},
{4/16, 0/16, -2/16, 7/16, 1/16, 2/16},
{4/16, 4/16, -2/16, 7/16, 5/16, 2/16},
},
{
{-8/16, -8/16, -8/16, -6/16, 6/16, 8/16},
{-8/16, 6/16, -8/16, 8/16, 8/16, 8/16},
},
{
{-8/16, 6/16, -8/16, 8/16, 8/16, 8/16},
},
{
{-8/16, -8/16, -8/16, -7/16, 8/16, 8/16},
{-7/16, 7/16, -8/16, 8/16, 8/16, 8/16},
{0/16, -8/16, -8/16, 1/16, 7/16, 8/16},
{-7/16, -1/16, -8/16, 8/16, 0/16, 8/16},
},
{
{-1/16, -6/16, -8/16, 1/16, 6/16, -7/16},
{-1/16, 6/16, -7/16, 1/16, 7/16, -6/16},
{-1/16, 7/16, -6/16, 1/16, 8/16, 6/16},
{-1/16, 6/16, 6/16, 1/16, 7/16, 7/16},
{-1/16, -6/16, 7/16, 1/16, 6/16, 8/16},
{-4/16, -6/16, 7/16, 4/16, -4/16, 8/16},
{3/16, -7/16, 7/16, 5/16, -5/16, 8/16},
{3/16, -8/16, 7/16, 5/16, -7/16, 8/16},
{-5/16, -7/16, 7/16, -3/16, -5/16, 8/16},
{-5/16, -8/16, 7/16, -3/16, -7/16, 8/16},
{-4/16, -6/16, -8/16, 4/16, -4/16, -7/16},
{3/16, -7/16, -8/16, 5/16, -5/16, -7/16},
{3/16, -8/16, -8/16, 5/16, -7/16, -7/16},
{-5/16, -7/16, -8/16, -3/16, -5/16, -7/16},
{-5/16, -8/16, -8/16, -3/16, -7/16, -7/16},
{-1/16, 8/16, -6/16, 1/16, 9/16, -5/16},
{-1/16, 8/16, 5/16, 1/16, 9/16, 6/16},
},
{
{-1/16, -8/16, -3/16, 1/16, -7/16, 3/16},
{-3/16, -8/16, -1/16, 3/16, -7/16, 1/16},
{-2/16, -8/16, -2/16, 2/16, -7/16, 2/16},
{-1/16, -7/16, -1/16, 1/16, -6/16, 1/16},
},
{
{2/16, 0/16, -2/16, 5/16, 1/16, 2/16},
{1/16, 0/16, -1/16, 2/16, 1/16, 1/16},
{-1/16, -1/16, -1/16, 1/16, 0/16, 1/16},
{-2/16, -2/16, -1/16, -1/16, -1/16, 0/16},
{-2/16, -2/16, -1/16, -1/16, -1/16, 1/16},
{-3/16, -4/16, -1/16, -2/16, -2/16, 1/16},
{-4/16, -5/16, -1/16, -3/16, -4/16, 1/16},
{-4/16, -7/16, -1/16, -3/16, -4/16, 1/16},
{-5/16, -8/16, -1/16, -4/16, -6/16, 1/16},
{-7/16, -8/16, -1/16, -1/16, -7/16, 1/16},
{-5/16, -8/16, -3/16, -3/16, -7/16, 3/16},
{-6/16, -8/16, -2/16, -2/16, -7/16, 2/16},
},
{--plate and knives
{1/16, -8/16, -1/16, 2/16, -7/16, 1/16},
{-1/16, -8/16, 1/16, 1/16, -7/16, 2/16},
{-2/16, -8/16, -1/16, -1/16, -7/16, 1/16},
{-1/16, -8/16, -2/16, 1/16, -7/16, -1/16},
{-3/16, -7/16, -3/16, 3/16, -6/16, 3/16},
{-3/16, -6/16, 3/16, 3/16, -5/16, 4/16},
{3/16, -6/16, -3/16, 4/16, -5/16, 3/16},
{-3/16, -6/16, -4/16, 3/16, -5/16, -3/16},
{-4/16, -6/16, -3/16, -3/16, -5/16, 3/16},
{-5/16, -8/16, 4/16, -4/16, -7/16, 8/16},
{-7/16, -8/16, 4/16, -6/16, -7/16, 8/16},
{5/16, -8/16, -4/16, 6/16, -7/16, 5/16},
{4/16, -8/16, 5/16, 7/16, -7/16, 8/16},
{-6/16, -8/16, -4/16, -5/16, -7/16, 5/16},
},
{--tulip
{-1/16, -8/16, -2/16, 1/16, -3/16, 0/16},
{-3/16, -3/16, -2/16, 3/16, -2/16, 0/16},
{-1/16, -3/16, -4/16, 1/16, -2/16, 2/16},
{-3/16, -2/16, -2/16, -2/16, 0/16, 0/16},
{-1/16, -2/16, 1/16, 1/16, 0/16, 2/16},
{2/16, -2/16, -2/16, 3/16, 0/16, 0/16},
{-1/16, -2/16, -4/16, 1/16, 0/16, -3/16},
{-1/16, 0/16, -3/16, 1/16, 1/16, -2/16},
{-2/16, 0/16, -2/16, -1/16, 1/16, 0/16},
{-1/16, 0/16, 0/16, 1/16, 1/16, 1/16},
{1/16, 0/16, -2/16, 2/16, 1/16, 0/16},
{-1/16, -2/16, -2/16, 1/16, -1/16, 0/16},
},
{--bonsai sapling
{-1/16, -8/16, -1/16, 1/16, 0/16, 1/16},
{0/16, -1/16, -2/16, 2/16, 0/16, 2/16},
{-2/16, -2/16, -2/16, 2/16, -1/16, 0/16},
{-2/16, -3/16, -2/16, 0/16, -2/16, 2/16},
{-2/16, -4/16, 0/16, 0/16, -3/16, 2/16},
{0/16, -2/16, 0/16, 2/16, -1/16, 2/16},
},
{--simple button
{-2/16, -2/16, 7/16, 2/16, 2/16, 8/16},
{-1/16, -1/16, 6/16, 1/16, 1/16, 7/16},
},
{--simple buton pressed
{-2/16, -2/16, 7/16, 2/16, 2/16, 8/16},
},
{--grid
{-5/12, -6/12, -6/12, -4/12, -5/12, 6/12},
{-2/12, -6/12, -6/12, -1/12, -5/12, 6/12},
{1/12, -6/12, -6/12, 2/12, -5/12, 6/12},
{4/12, -6/12, -6/12, 5/12, -5/12, 6/12},
{-6/12, -6/12, -5/12, 6/12, -5/12, -4/12},
{-6/12, -6/12, -2/12, 6/12, -5/12, -1/12},
{-6/12, -6/12, 1/12, 6/12, -5/12, 2/12},
{-6/12, -6/12, 4/12, 6/12, -5/12, 5/12},
},
{--speakers
{-2/16, -8/16, -3/16, 2/16, -7/16, 3/16},
{1/16, -7/16, -3/16, 2/16, -1/16, 3/16},
{-2/16, -7/16, -3/16, -1/16, -1/16, 3/16},
{-1/16, -2/16, -3/16, 1/16, -1/16, 3/16},
{-1/16, -7/16, -2/16, 1/16, -2/16, -1/16},
{-1/16, -5/16, 2/16, 1/16, -3/16, 3/16},
{0/16, -8/16, -6/16, 1/16, -7/16, -3/16},
{1/16, -8/16, -6/16, 2/16, -7/16, -5/16},
{2/16, -8/16, -7/16, 3/16, -7/16, -6/16},
{3/16, -8/16, -8/16, 4/16, -7/16, -7/16},
},
{--lack tafeltje
{-8/16, -1/16, -8/16, 8/16, 0/16, 8/16},
{7/16, -8/16, 7/16, 8/16, -1/16, 8/16},
{-8/16, -8/16, 7/16, -7/16, -1/16, 8/16},
{-8/16, -8/16, -8/16, -7/16, -1/16, -7/16},
{7/16, -8/16, -8/16, 8/16, -1/16, -7/16},
},
{--chair
{-7/16, -8/16, -7/16, -6/16, -6/16, -6/16},
{6/16, -8/16, -7/16, 7/16, -6/16, -6/16},
{6/16, -8/16, 6/16, 7/16, -6/16, 7/16},
{-7/16, -8/16, 6/16, -6/16, -6/16, 7/16},
{-7/16, -6/16, -7/16, 7/16, -3/16, 7/16},
{5/16, -3/16, -7/16, 7/16, 1/16, 4/16},
{-7/16, -3/16, -7/16, -5/16, 1/16, 4/16},
{-7/16, -3/16, 4/16, 7/16, 6/16, 7/16},
},
{--Expedit wall shelf
{-8/16, -8/16, -8/16, 8/16, -6/16, 8/16},
{-8/16, 6/16, -8/16, 8/16, 8/16, 8/16},
{6/16, -6/16, -8/16, 8/16, 6/16, 8/16},
{-8/16, -6/16, -8/16, -6/16, 6/16, 8/16},
},
{--closer
{-3/16, -8/16, 2/16, 3/16, -7/16, 8/16},
{-3/16, -7/16, 2/16, -2/16, 8/16, 8/16},
{2/16, -7/16, 2/16, 3/16, 8/16, 8/16},
{-2/16, -3/16, 2/16, 2/16, -2/16, 8/16},
{-2/16, 2/16, 2/16, 2/16, 3/16, 8/16},
{-2/16, 7/16, 2/16, 2/16, 8/16, 8/16},
},
{ --lamp
{-1/16, -8/16, -3/16, 1/16, -7/16, 3/16},
{-3/16, -8/16, -1/16, 3/16, -7/16, 1/16},
{-2/16, -8/16, -2/16, 2/16, -7/16, 2/16},
{-1/16, -7/16, -1/16, 1/16, 2/16, 1/16},
{-2/16, 3/16, -1/16, -1/16, 4/16, 1/16},
{-1/16, 3/16, -2/16, 1/16, 4/16, -1/16},
{1/16, 3/16, -1/16, 2/16, 4/16, 1/16},
{-1/16, 3/16, 1/16, 1/16, 4/16, 2/16},
{-1/16, 2/16, 2/16, 1/16, 3/16, 3/16},
{-1/16, 1/16, 3/16, 1/16, 2/16, 4/16},
{-1/16, 0/16, 4/16, 1/16, 1/16, 5/16},
{-3/16, 2/16, -1/16, -2/16, 3/16, 1/16},
{-4/16, 1/16, -1/16, -3/16, 2/16, 1/16},
{-5/16, 0/16, -1/16, -4/16, 1/16, 1/16},
{-1/16, 2/16, -3/16, 1/16, 3/16, -2/16},
{-1/16, 1/16, -4/16, 1/16, 2/16, -3/16},
{-1/16, 0/16, -5/16, 1/16, 1/16, -4/16},
{2/16, 2/16, -1/16, 3/16, 3/16, 1/16},
{3/16, 1/16, -1/16, 4/16, 2/16, 1/16},
{4/16, 0/16, -1/16, 5/16, 1/16, 1/16},
{1/16, 0/16, 1/16, 3/16, 2/16, 3/16},
{-3/16, 0/16, 1/16, -1/16, 2/16, 3/16},
{-3/16, 0/16, -3/16, -1/16, 2/16, -1/16},
{1/16, 0/16, -3/16, 3/16, 2/16, -1/16},
{1/16, 2/16, -2/16, 2/16, 3/16, -1/16},
{-2/16, 2/16, -2/16, -1/16, 3/16, -1/16},
{-2/16, 2/16, 1/16, -1/16, 3/16, 2/16},
{1/16, 2/16, 1/16, 2/16, 3/16, 2/16},
{-2/16, 0/16, 3/16, -1/16, 1/16, 4/16},
{-4/16, 0/16, 1/16, -3/16, 1/16, 2/16},
{-4/16, 0/16, -2/16, -3/16, 1/16, -1/16},
{-2/16, 0/16, -4/16, -1/16, 1/16, -3/16},
{1/16, 0/16, -4/16, 2/16, 1/16, -3/16},
{3/16, 0/16, -2/16, 4/16, 1/16, -1/16},
{3/16, 0/16, 1/16, 4/16, 1/16, 2/16},
{1/16, 0/16, 3/16, 2/16, 1/16, 4/16},
},
{--urinoir
{-4/16, -5/16, 7/16, 3/16, 8/16, 8/16},
{-4/16, 7/16, 6/16, 3/16, 8/16, 7/16},
{-5/16, -6/16, 6/16, -4/16, 7/16, 7/16},
{3/16, -6/16, 6/16, 4/16, 7/16, 7/16},
{-5/16, -6/16, 1/16, -4/16, -3/16, 6/16},
{3/16, -6/16, 1/16, 4/16, -3/16, 6/16},
{-4/16, -6/16, 1/16, 3/16, -5/16, 6/16},
{-4/16, -5/16, 5/16, 3/16, -4/16, 7/16},
{-4/16, -5/16, 0/16, 3/16, -3/16, 1/16},
{-5/16, -3/16, 3/16, -4/16, -1/16, 6/16},
{3/16, -3/16, 3/16, 4/16, -1/16, 6/16},
},
{--other table
{-6/16, -8/16, -6/16, -4/16, 7/16, -4/16},
{-8/16, 7/16, -8/16, 8/16, 8/16, 8/16},
{4/16, -8/16, 4/16, 6/16, 7/16, 6/16},
{-6/16, -8/16, 4/16, -4/16, 7/16, 6/16},
{4/16, -8/16, -6/16, 6/16, 7/16, -4/16},
},
{--worm
{-1/16, -8/16, 5/16, 3/16, -7/16, 7/16},
{-2/16, -8/16, 4/16, 0/16, -7/16, 6/16},
{-3/16, -8/16, 1/16, -1/16, -7/16, 5/16},
{-2/16, -8/16, 0/16, 0/16, -7/16, 2/16},
{-1/16, -8/16, -1/16, 1/16, -7/16, 1/16},
{0/16, -8/16, -2/16, 2/16, -7/16, 0/16},
{1/16, -8/16, -5/16, 3/16, -7/16, -1/16},
{0/16, -8/16, -6/16, 2/16, -7/16, -4/16},
{-3/16, -8/16, -7/16, 1/16, -7/16, -5/16},
},
{ --coal thing
{-2/12, -2/12, -7/12, 2/12, 2/12, -6/12},
{-2/12, -2/12, 6/12, 2/12, 2/12, 7/12},
{6/12, -2/12, -2/12, 7/12, 2/12, 2/12},
{-7/12, -2/12, -2/12, -6/12, 2/12, 2/12},
{-6/12, -6/12, -6/12, 6/12, 6/12, 6/12},
},
{
{-1/16, -1/16, -3/16, 1/16, 0/16, 3/16},
{-3/16, -1/16, -1/16, 3/16, 0/16, 1/16},
{-2/16, -1/16, -2/16, 2/16, 0/16, 2/16},
{-2/16, -4/16, -1/16, 2/16, -3/16, 1/16},
{-1/16, -4/16, -2/16, 1/16, -3/16, 2/16},
{-1/16, -8/16, -1/16, 1/16, 1/16, 1/16},
},
{--ironing plank
{-8/16, 7/16, -1/16, 8/16, 8/16, 1/16},
{-8/16, 7/16, -2/16, 7/16, 8/16, 2/16},
{-7/16, 7/16, -3/16, 5/16, 8/16, 3/16},
{-3/16, 5/16, -1/16, -2/16, 7/16, 1/16},
{0/16, 5/16, -1/16, 1/16, 7/16, 1/16},
{-2/16, 1/16, -1/16, 0/16, 5/16, 1/16},
{0/16, -1/16, -1/16, 1/16, 1/16, 1/16},
{-3/16, 0/16, -1/16, -2/16, 1/16, 1/16},
{-3/16, -1/16, -1/16, -2/16, 0/16, 1/16},
{-4/16, -3/16, -1/16, -3/16, -1/16, 1/16},
{-5/16, -5/16, -1/16, -4/16, -3/16, 1/16},
{-6/16, -7/16, -2/16, -5/16, -5/16, -1/16},
{-6/16, -7/16, 1/16, -5/16, -5/16, 2/16},
{-7/16, -8/16, 2/16, -6/16, -7/16, 4/16},
{-7/16, -8/16, -4/16, -6/16, -7/16, -2/16},
{4/16, -8/16, -4/16, 5/16, -7/16, -2/16},
{4/16, -8/16, 2/16, 5/16, -7/16, 4/16},
{3/16, -7/16, 1/16, 4/16, -5/16, 2/16},
{3/16, -7/16, -2/16, 4/16, -5/16, -1/16},
{2/16, -5/16, -1/16, 3/16, -3/16, 1/16},
{1/16, -3/16, -1/16, 2/16, -1/16, 1/16},
},
{--table
{-8/16, 7/16, -7/16, 8/16, 8/16, 7/16},
{-7/16, 7/16, -8/16, 7/16, 8/16, 8/16},
{-1/16, -7/16, -1/16, 1/16, 7/16, 1/16},
{-2/16, -7/16, -2/16, 2/16, -6/16, 2/16},
{-3/16, -7/16, -3/16, -1/16, -6/16, -1/16},
{-3/16, -7/16, 1/16, -1/16, -6/16, 3/16},
{1/16, -7/16, 1/16, 3/16, -6/16, 3/16},
{1/16, -7/16, -3/16, 3/16, -6/16, -1/16},
{-4/16, -7/16, -4/16, -2/16, -6/16, -2/16},
{-4/16, -7/16, 2/16, -2/16, -6/16, 4/16},
{2/16, -7/16, 2/16, 4/16, -6/16, 4/16},
{2/16, -7/16, -4/16, 4/16, -6/16, -2/16},
{-5/16, -8/16, -5/16, -3/16, -7/16, -3/16},
{-5/16, -8/16, 3/16, -3/16, -7/16, 5/16},
{3/16, -8/16, 3/16, 5/16, -7/16, 5/16},
{3/16, -8/16, -5/16, 5/16, -7/16, -3/16},
},
{--ironiong
{-3/16, -8/16, -2/16, -1/16, -7/16, 2/16},
{-1/16, -8/16, -1/16, 1/16, -7/16, 1/16},
{-4/16, -7/16, -2/16, -3/16, -4/16, 2/16},
{-4/16, -4/16, -1/16, -3/16, -1/16, 1/16},
{-3/16, -6/16, -1/16, -2/16, -2/16, 1/16},
{-3/16, -7/16, -2/16, -2/16, -6/16, 2/16},
{-2/16, -3/16, -1/16, -1/16, -2/16, 1/16},
{-1/16, -4/16, -1/16, 0/16, -3/16, 1/16},
{0/16, -7/16, -1/16, 1/16, -4/16, 1/16},
{-4/16, -1/16, -1/16, -3/16, 0/16, 1/16},
{-3/16, -2/16, -1/16, -2/16, -1/16, 1/16},
{-1/16, -7/16, -1/16, 0/16, -6/16, 1/16},
},
{--washing maschine
{-8/16, -8/16, -6/16, 8/16, 7/16, 6/16},
{-8/16, 7/16, -6/16, 8/16, 8/16, 8/16},
{6/16, 6/16, -7/16, 7/16, 7/16, -6/16},
{-3/16, -2/16, -7/16, 3/16, 4/16, -6/16},
{-3/16, 4/16, -8/16, 3/16, 5/16, -7/16},
{3/16, -2/16, -8/16, 4/16, 4/16, -7/16},
{-3/16, -3/16, -8/16, 3/16, -2/16, -7/16},
{-4/16, -2/16, -8/16, -3/16, 4/16, -7/16},
},
{--chair
{3/16, -8/16, 3/16, 4/16, -1/16, 4/16},
{-4/16, -8/16, 3/16, -3/16, -1/16, 4/16},
{-4/16, -8/16, -4/16, -3/16, -1/16, -3/16},
{3/16, -8/16, -4/16, 4/16, -1/16, -3/16},
{-4/16, -1/16, -4/16, 4/16, 0/16, 4/16},
{3/16, 0/16, 3/16, 4/16, 6/16, 4/16},
{-4/16, 0/16, 3/16, -3/16, 6/16, 4/16},
{-4/16, 6/16, 3/16, 4/16, 7/16, 4/16},
{1/16, 0/16, 3/16, 2/16, 6/16, 4/16},
{-2/16, 0/16, 3/16, -1/16, 2/16, 4/16},
{-2/16, 2/16, 3/16, -1/16, 6/16, 4/16},
},
--OCD furnityure
{ --table
{-0.5/3, -1.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3},
{-1.5/3, 0.5/3, -1.5/3, 1.5/3, 1.5/3, 1.5/3},
},
{--chair
{-1.5/3, -0.5/3, -1.5/3, 1.5/3, 1.5/3, -0.5/3},
{0.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, -0.5/3},
{-1.5/3, -1.5/3, -1.5/3, -0.5/3, -0.5/3, -0.5/3},
{-1.5/3, -0.5/3, -0.5/3, 1.5/3, 0.5/3, 1.5/3},
{-1.5/3, -1.5/3, 0.5/3, -0.5/3, -0.5/3, 1.5/3},
{0.5/3, -1.5/3, 0.5/3, 1.5/3, -0.5/3, 1.5/3},
},
{--coffe table
{-1.5/3, -0.5/3, -1.5/3, 1.5/3, 0.5/3, 1.5/3},
{0.5/3, -1.5/3, 0.5/3, 1.5/3, -0.5/3, 1.5/3},
{0.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, -0.5/3},
{-1.5/3, -1.5/3, -1.5/3, -0.5/3, -0.5/3, -0.5/3},
{-1.5/3, -1.5/3, 0.5/3, -0.5/3, -0.5/3, 1.5/3},
},
{--counter top
{-1.5/3, 0.5/3, -1.5/3, 1.5/3, 1.5/3, 1.5/3},
},
{ -- corner
{-1.5/3, 0.5/3, -1.5/3, 1.5/3, 1.5/3, 1.5/3},
{-1.5/3, -1.5/3, -1.5/3, 1.5/3, 0.5/3, -0.5/3},
},
{--chair single leg
{-0.5/3, -1.5/3, -0.5/3, 0.5/3, -0.5/3, 0.5/3},
{-1.5/3, -0.5/3, -1.5/3, 1.5/3, 0.5/3, 1.5/3},
{-1.5/3, 0.5/3, -1.5/3, 1.5/3, 1.5/3, -0.5/3},
},
{ -- closet open
{0.5/3, -1.5/3, -1.5/3, 1.5/3, 1.5/3, 1.5/3},
{-1.5/3, -1.5/3, -1.5/3, -0.5/3, 1.5/3, 1.5/3},
{-0.5/3, -1.5/3, -1.5/3, 0.5/3, -0.5/3, 1.5/3},
{-0.5/3, 0.5/3, -1.5/3, 0.5/3, 1.5/3, 1.5/3},
},
{----closet inner
{-1.5/3, -0.5/3, -1.5/3, 1.5/3, 0.5/3, 1.5/3},
{-0.5/3, -1.5/3, -1.5/3, 0.5/3, 1.5/3, 1.5/3},
},
{ -- lounge chair
{-1.5/3, -1.5/3, -1.5/3, 1.5/3, 0.5/3, -0.5/3},
{-1.5/3, -1.5/3, -0.5/3, 1.5/3, -0.5/3, 1.5/3},
},
{--closet 2 open
{0.5/3, -1.5/3, -1.5/3, 1.5/3, 1.5/3, 1.5/3},
{-1.5/3, -1.5/3, -1.5/3, -0.5/3, 1.5/3, 1.5/3},
{-0.5/3, -0.5/3, -1.5/3, 0.5/3, 0.5/3, 1.5/3},
},
{--table low one leg
{-1.5/3, -0.5/3, -1.5/3, 1.5/3, 0.5/3, 1.5/3},
{-1.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, -0.5/3},
},
{--low table
{-1.5/3, -0.5/3, -1.5/3, 1.5/3, 0.5/3, 1.5/3},
},
{--single corner
{-1.5/3, -1.5/3, -1.5/3, -0.5/3, 1.5/3, 1.5/3},
{-0.5/3, -0.5/3, -1.5/3, 1.5/3, 0.5/3, 1.5/3},
},
{--side
{-1.5/3, -1.5/3, 0.5/3, 1.5/3, 1.5/3, 1.5/3},
},
{--side low
{-1.5/3, -1.5/3, 0.5/3, 1.5/3, 0.5/3, 1.5/3},
},
{--lowest table
{-1.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, 1.5/3},
},
{--no legs table
{-1.5/3, -1.5/3, -1.5/3, 1.5/3, 0.5/3, 1.5/3},
},
{--t up
{-1.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, 1.5/3},
{-0.5/3, -0.5/3, -1.5/3, 0.5/3, 1.5/3, 1.5/3},
},
{ --middle wall
{-1.5/3, -1.5/3, -0.5/3, 1.5/3, 1.5/3, 0.5/3},
},
{--low wall
{-1.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, -0.5/3},
},
{--middle low
{-1.5/3, -1.5/3, -0.5/3, 1.5/3, -0.5/3, 0.5/3},
},
{--middle mid
{-1.5/3, -1.5/3, -0.5/3, 1.5/3, 0.5/3, 0.5/3},
},
{--singl nodie corner
{0.5/3, -1.5/3, 0.5/3, 1.5/3, -0.5/3, 1.5/3},
},
{--singl nodie middle
{-0.5/3, -1.5/3, 0.5/3, 0.5/3, -0.5/3, 1.5/3},
},
{--singl nodie center
{-0.5/3, -0.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3},
},
{
{-1.5/3, -0.5/3, -0.5/3, 1.5/3, 0.5/3, 1.5/3},
},
{
{-1.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3, 1.5/3},
},
{--middle straight
{-1.5/3, -0.5/3, -0.5/3, 1.5/3, 0.5/3, 0.5/3},
},
{
{-0.5/3, -1.5/3, -0.5/3, 1.5/3, -0.5/3, 1.5/3},
{0.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3, 1.5/3},
},
{
{-0.5/3, -1.5/3, -0.5/3, 1.5/3, -0.5/3, 1.5/3},
{-0.5/3, -0.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3},
},
{
{-0.5/3, -0.5/3, -0.5/3, 1.5/3, 0.5/3, 1.5/3},
{0.5/3, -1.5/3, 0.5/3, 1.5/3, -0.5/3, 1.5/3},
},
{
{-0.5/3, -1.5/3, -0.5/3, 0.5/3, -0.5/3, 0.5/3},
{-0.5/3, -0.5/3, -0.5/3, 1.5/3, 0.5/3, 1.5/3},
},
{
{-0.5/3, -1.5/3, -0.5/3, 0.5/3, -0.5/3, 0.5/3},
},
{{-0.5/3, -1.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3},{-1.5/3, 0.5/3, -1.5/3, 1.5/3, 1.5/3, 1.5/3},},
{{-1.5/3, -0.5/3, -1.5/3, 1.5/3, 1.5/3, -0.5/3},{0.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, -0.5/3},{-1.5/3, -1.5/3, -1.5/3, -0.5/3, -0.5/3, -0.5/3},{-1.5/3, -0.5/3, -0.5/3, 1.5/3, 0.5/3, 1.5/3},{-1.5/3, -1.5/3, 0.5/3, -0.5/3, -0.5/3, 1.5/3},{0.5/3, -1.5/3, 0.5/3, 1.5/3, -0.5/3, 1.5/3},},
{{-1.5/3, -0.5/3, -1.5/3, 1.5/3, 0.5/3, 1.5/3},{0.5/3, -1.5/3, 0.5/3, 1.5/3, -0.5/3, 1.5/3},{0.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, -0.5/3},{-1.5/3, -1.5/3, -1.5/3, -0.5/3, -0.5/3, -0.5/3},{-1.5/3, -1.5/3, 0.5/3, -0.5/3, -0.5/3, 1.5/3},},
{{-1.5/3, 0.5/3, -1.5/3, 1.5/3, 1.5/3, 1.5/3},{-1.5/3, -1.5/3, -1.5/3, 1.5/3, 0.5/3, -0.5/3},},
{{-0.5/3, -1.5/3, -0.5/3, 0.5/3, -0.5/3, 0.5/3},{-1.5/3, -0.5/3, -1.5/3, 1.5/3, 0.5/3, 1.5/3},{-1.5/3, 0.5/3, -1.5/3, 1.5/3, 1.5/3, -0.5/3},},
{{0.5/3, -1.5/3, -1.5/3, 1.5/3, 1.5/3, 1.5/3},{-1.5/3, -1.5/3, -1.5/3, -0.5/3, 1.5/3, 1.5/3},{-0.5/3, -1.5/3, -1.5/3, 0.5/3, -0.5/3, 1.5/3},{-0.5/3, 0.5/3, -1.5/3, 0.5/3, 1.5/3, 1.5/3},},
{{-1.5/3, -0.5/3, -1.5/3, 1.5/3, 0.5/3, 1.5/3},{-0.5/3, -1.5/3, -1.5/3, 0.5/3, 1.5/3, 1.5/3},},
{{-1.5/3, -1.5/3, -1.5/3, 1.5/3, 0.5/3, -0.5/3},{-1.5/3, -1.5/3, -0.5/3, 1.5/3, -0.5/3, 1.5/3},},
{{0.5/3, -1.5/3, -1.5/3, 1.5/3, 1.5/3, 1.5/3},{-1.5/3, -1.5/3, -1.5/3, -0.5/3, 1.5/3, 1.5/3},{-0.5/3, -0.5/3, -1.5/3, 0.5/3, 0.5/3, 1.5/3},},
{{-1.5/3, -0.5/3, -1.5/3, 1.5/3, 0.5/3, 1.5/3},{-1.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, -0.5/3},},
{{-1.5/3, -1.5/3, 0.5/3, 1.5/3, 0.5/3, 1.5/3},},
{{-1.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, 1.5/3},},
{{-1.5/3, -1.5/3, -1.5/3, 1.5/3, 0.5/3, 1.5/3},},
{{-1.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, 1.5/3},{-0.5/3, -0.5/3, -1.5/3, 0.5/3, 1.5/3, 1.5/3},},
{{-1.5/3, -1.5/3, -0.5/3, 1.5/3, 1.5/3, 0.5/3},},
{{-1.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, -0.5/3},},
{{-1.5/3, -1.5/3, -0.5/3, 1.5/3, -0.5/3, 0.5/3},},
{{-1.5/3, -1.5/3, -0.5/3, 1.5/3, 0.5/3, 0.5/3},},
{{0.5/3, -1.5/3, 0.5/3, 1.5/3, -0.5/3, 1.5/3},},
{{-0.5/3, -1.5/3, 0.5/3, 0.5/3, -0.5/3, 1.5/3},},
{{-0.5/3, -0.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3},},
{{-1.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3, 1.5/3},},
{{-1.5/3, -0.5/3, -0.5/3, 1.5/3, 0.5/3, 0.5/3},},
{{-0.5/3, -1.5/3, -0.5/3, 1.5/3, -0.5/3, 1.5/3},{0.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3, 1.5/3},},
{{-0.5/3, -1.5/3, -0.5/3, 1.5/3, -0.5/3, 1.5/3},{-0.5/3, -0.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3},},
{{-0.5/3, -0.5/3, -0.5/3, 1.5/3, 0.5/3, 1.5/3},{0.5/3, -1.5/3, 0.5/3, 1.5/3, -0.5/3, 1.5/3},},
{{-0.5/3, -1.5/3, -0.5/3, 0.5/3, -0.5/3, 0.5/3},{-0.5/3, -0.5/3, -0.5/3, 1.5/3, 0.5/3, 1.5/3},},
{{-0.5/3, -1.5/3, -0.5/3, 0.5/3, -0.5/3, 0.5/3},},
{{0.5/3, -1.5/3, -0.5/3, 1.5/3, -0.5/3, 1.5/3},},
{{-1.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, 1.5/3},{0.5/3, -0.5/3, 0.5/3, 1.5/3, 1.5/3, 1.5/3},},
{{-1.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, 1.5/3},{-0.5/3, -0.5/3, -0.5/3, 1.5/3, 0.5/3, 1.5/3},{0.5/3, 0.5/3, 0.5/3, 1.5/3, 1.5/3, 1.5/3},},
{{-1.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, 1.5/3},{-1.5/3, -0.5/3, -0.5/3, 1.5/3, 0.5/3, 1.5/3},{-1.5/3, 0.5/3, 0.5/3, 1.5/3, 1.5/3, 1.5/3},},
{{-1.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, 1.5/3},{-0.5/3, -0.5/3, -0.5/3, 1.5/3, 0.5/3, 1.5/3},},
{{-0.5/3, -1.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3},},
{{-1.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, 1.5/3},{-1.5/3, 0.5/3, -1.5/3, 1.5/3, 1.5/3, 1.5/3},{-1.5/3, -0.5/3, -1.5/3, -0.5/3, 0.5/3, 1.5/3},{0.5/3, -0.5/3, -1.5/3, 1.5/3, 0.5/3, 1.5/3},{-0.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3, 1.5/3},},
{{-1.5/3, -1.5/3, -1.5/3, -0.5/3, -0.5/3, -0.5/3},{-1.5/3, -1.5/3, 0.5/3, 0.5/3, -0.5/3, 1.5/3},{0.5/3, -1.5/3, -0.5/3, 1.5/3, -0.5/3, 1.5/3},{-0.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, -0.5/3},},
{{-1.5/3, -1.5/3, -1.5/3, -0.5/3, -0.5/3, 0.5/3},{-1.5/3, -1.5/3, 0.5/3, 0.5/3, -0.5/3, 1.5/3},{0.5/3, -1.5/3, -0.5/3, 1.5/3, -0.5/3, 1.5/3},{-0.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, -0.5/3},},
{{-1.5/3, -1.5/3, 0.5/3, 1.5/3, -0.5/3, 1.5/3},{-1.5/3, -1.5/3, -1.5/3, -0.5/3, -0.5/3, 0.5/3},},
{{-0.5/3, -1.5/3, -1.5/3, 0.5/3, -0.5/3, 1.5/3},{-0.5/3, -0.5/3, 0.5/3, 0.5/3, 1.5/3, 1.5/3},},
{{0.5/3, -1.5/3, 0.5/3, 1.5/3, 1.5/3, 1.5/3},{0.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, 0.5/3},{-1.5/3, -1.5/3, 0.5/3, 0.5/3, -0.5/3, 1.5/3},},
{{-3/6, -3/6, -3/6, -2/6, 2/6, -2/6},{2/6, -3/6, -3/6, 3/6, 2/6, -2/6},{-3/6, 2/6, -3/6, 3/6, 3/6, 3/6},{-3/6, -3/6, 2/6, -2/6, 2/6, 3/6},{2/6, -3/6, 2/6, 3/6, 2/6, 3/6},},
{{0/6, -3/6, -2/6, 1/6, 3/6, -1/6},{0/6, -3/6, 1/6, 1/6, 3/6, 2/6},{0/6, 2/6, -1/6, 1/6, 3/6, 1/6},{-3/6, -1/6, -2/6, 1/6, 0/6, 2/6},{-3/6, -3/6, -2/6, -2/6, -1/6, -1/6},{-3/6, -3/6, 1/6, -2/6, -1/6, 2/6},},
{{1/6, -3/6, -2/6, 2/6, -1/6, -1/6},{1/6, -3/6, 1/6, 2/6, -1/6, 2/6},{-2/6, -3/6, 1/6, -1/6, -1/6, 2/6},{-2/6, -3/6, -2/6, -1/6, -1/6, -1/6},{-2/6, -1/6, -2/6, 2/6, 0/6, 2/6},},
{{-1/6, -3/6, -1/6, 1/6, 2/6, 1/6},{-3/6, 2/6, -3/6, 3/6, 3/6, 3/6},},
{{-1.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, 1.5/3},{0.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3, 1.5/3},},
{{-1.5/3, -0.5/3, -1.5/3, 1.5/3, 1.5/3, 0.5/3},{-1.5/3, -1.5/3, -0.5/3, 1.5/3, 0.5/3, 1.5/3},},
{{-1.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, 1.5/3},{-1.5/3, 0.5/3, -1.5/3, 1.5/3, 1.5/3, 1.5/3},{0.5/3, -0.5/3, -1.5/3, 1.5/3, 0.5/3, -0.5/3},{0.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3, 1.5/3},{-1.5/3, -0.5/3, 0.5/3, -0.5/3, 0.5/3, 1.5/3},{-1.5/3, -0.5/3, -1.5/3, -0.5/3, 0.5/3, -0.5/3},},
{{-1.5/3, -1.5/3, -1.5/3, -0.5/3, -0.5/3, 0.5/3},{-1.5/3, -1.5/3, 0.5/3, 0.5/3, -0.5/3, 1.5/3},{0.5/3, -1.5/3, -0.5/3, 1.5/3, -0.5/3, 1.5/3},{-0.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, -0.5/3},{-1.5/3, -0.5/3, -1.5/3, -0.5/3, 0.5/3, -0.5/3},{-1.5/3, 0.5/3, -1.5/3, 0.5/3, 1.5/3, -0.5/3},{0.5/3, 0.5/3, -1.5/3, 1.5/3, 1.5/3, 0.5/3},{-0.5/3, 0.5/3, 0.5/3, 1.5/3, 1.5/3, 1.5/3},{-1.5/3, 0.5/3, -0.5/3, -0.5/3, 1.5/3, 1.5/3},{-1.5/3, -0.5/3, 0.5/3, -0.5/3, 0.5/3, 1.5/3},{0.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3, 1.5/3},{0.5/3, -0.5/3, -1.5/3, 1.5/3, 0.5/3, -0.5/3},},
{{-1.5/3, -1.5/3, -0.5/3, 1.5/3, 0.5/3, 0.5/3},},
{{-0.5/3, -0.5/3, -0.5/3, 0.5/3, 0.5/3, 1.5/3},{-0.5/3, -1.5/3, -0.5/3, 0.5/3, -0.5/3, 0.5/3},},
{{-0.5/3, -1.5/3, -1.5/3, 0.5/3, -0.5/3, 1.5/3},{-1.5/3, -1.5/3, -0.5/3, 1.5/3, -0.5/3, 0.5/3},},
{{-0.5/3, -1.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3},{-0.5/3, -0.5/3, -1.5/3, 0.5/3, 0.5/3, 1.5/3},},
{{-0.5/3, -1.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3},{-0.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3, 1.5/3},{-1.5/3, -0.5/3, -0.5/3, -0.5/3, 0.5/3, 0.5/3},},
{{-0.5/3, -1.5/3, -0.5/3, 0.5/3, -0.5/3, 1.5/3},},
{{-0.5/3, -1.5/3, -1.5/3, 0.5/3, -0.5/3, -0.5/3},{-0.5/3, -1.5/3, -0.5/3, 0.5/3, 0.5/3, 1.5/3},{-0.5/3, 0.5/3, 0.5/3, 0.5/3, 1.5/3, 1.5/3},},
{{0.5/3, -1.5/3, 0.5/3, 1.5/3, -0.5/3, 1.5/3},{-1.5/3, -1.5/3, -0.5/3, 0.5/3, -0.5/3, 1.5/3},{-1.5/3, -1.5/3, -1.5/3, -0.5/3, -0.5/3, -0.5/3},},
{{-0.5/3, -1.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3},{-0.5/3, -0.5/3, -1.5/3, 0.5/3, 0.5/3, 1.5/3},{-1.5/3, -0.5/3, -0.5/3, 1.5/3, 0.5/3, 0.5/3},},
{{-0.5/3, -1.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3},{-0.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3, 1.5/3},},
{{-0.5/3, -1.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3},{-0.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3, 1.5/3},{-1.5/3, -0.5/3, -0.5/3, -0.5/3, 0.5/3, 0.5/3},{0.5/3, -0.5/3, -0.5/3, 1.5/3, 0.5/3, 0.5/3},},
{{-0.5/3, -1.5/3, 0.5/3, 0.5/3, -0.5/3, 1.5/3},{-1.5/3, -1.5/3, -0.5/3, 1.5/3, -0.5/3, 0.5/3},},
{{-0.5/3, -1.5/3, -0.5/3, 0.5/3, -0.5/3, 1.5/3},},
{{-1.5/3, -1.5/3, -0.5/3, 1.5/3, -0.5/3, 0.5/3},{-0.5/3, -0.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3},},
{{-1.5/3, -1.5/3, 0.5/3, 1.5/3, -0.5/3, 1.5/3},{-0.5/3, -1.5/3, -1.5/3, 0.5/3, -0.5/3, 0.5/3},},
{{-1.5/3, 0.5/3, 0.5/3, 0.5/3, 1.5/3, 1.5/3},{-0.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3, 1.5/3},{-1.5/3, -1.5/3, 0.5/3, 1.5/3, -0.5/3, 1.5/3},},
{{0.5/3, -1.5/3, 0.5/3, 1.5/3, 1.5/3, 1.5/3},{-1.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3, 1.5/3},{-1.5/3, 0.5/3, 0.5/3, -0.5/3, 1.5/3, 1.5/3},},
{{-0.5/3, -1.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3},{-0.5/3, -0.5/3, -1.5/3, 0.5/3, 0.5/3, 1.5/3},{-1.5/3, -0.5/3, -0.5/3, 1.5/3, 0.5/3, 0.5/3},{-1.5/3, -1.5/3, -1.5/3, -0.5/3, -0.5/3, -0.5/3},{0.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, -0.5/3},{0.5/3, -1.5/3, 0.5/3, 1.5/3, -0.5/3, 1.5/3},{0.5/3, 0.5/3, 0.5/3, 1.5/3, 1.5/3, 1.5/3},{0.5/3, 0.5/3, -1.5/3, 1.5/3, 1.5/3, -0.5/3},{-1.5/3, 0.5/3, 0.5/3, -0.5/3, 1.5/3, 1.5/3},{-1.5/3, 0.5/3, -1.5/3, -0.5/3, 1.5/3, -0.5/3},{-1.5/3, -1.5/3, 0.5/3, -0.5/3, -0.5/3, 1.5/3},},
{{-1/6, -3/6, -3/6, 0/6, -2/6, 3/6},{-1/6, -2/6, -1/6, 0/6, 3/6, 0/6},{0/6, 0/6, -1/6, 3/6, 2/6, 0/6},},
{{-0.5/5, -2.5/5, -1.5/5, 0.5/5, -1.5/5, 1.5/5},{-1.5/5, -2.5/5, -0.5/5, 1.5/5, -1.5/5, 0.5/5},{-0.5/5, -1.5/5, -0.5/5, 0.5/5, 1.5/5, 0.5/5},{-2.5/5, 1.5/5, -2.5/5, 2.5/5, 2.5/5, 2.5/5},},
{{-1.5/5, -2.5/5, -1.5/5, -0.5/5, 0.5/5, -0.5/5},{1.5/5, -2.5/5, -2.5/5, 2.5/5, -0.5/5, -1.5/5},{0.5/5, -2.5/5, -0.5/5, 1.5/5, 0.5/5, 0.5/5},{-0.5/5, -2.5/5, 0.5/5, 0.5/5, -1.5/5, 1.5/5},{-2.5/5, -2.5/5, 1.5/5, -1.5/5, 0.5/5, 2.5/5},{1.5/5, -2.5/5, 1.5/5, 2.5/5, -0.5/5, 2.5/5},},
{{-1.5/5, -2.5/5, -1.5/5, -0.5/5, -1.5/5, -0.5/5},{-1.5/5, -2.5/5, 0.5/5, -0.5/5, -1.5/5, 1.5/5},{0.5/5, -2.5/5, 0.5/5, 1.5/5, -1.5/5, 1.5/5},{0.5/5, -2.5/5, -1.5/5, 1.5/5, -1.5/5, -0.5/5},},
{{-1.5/5, -2.5/5, -1.5/5, -0.5/5, -0.5/5, -0.5/5},{0.5/5, -2.5/5, -1.5/5, 1.5/5, -0.5/5, -0.5/5},{0.5/5, -2.5/5, 0.5/5, 1.5/5, -0.5/5, 1.5/5},{-1.5/5, -2.5/5, 0.5/5, -0.5/5, -0.5/5, 1.5/5},},
{{-1.5/5, -2.5/5, -1.5/5, -0.5/5, -0.5/5, -0.5/5},{0.5/5, -2.5/5, -1.5/5, 1.5/5, -0.5/5, -0.5/5},{0.5/5, -2.5/5, 0.5/5, 1.5/5, -0.5/5, 1.5/5},{-1.5/5, -2.5/5, 0.5/5, -0.5/5, -0.5/5, 1.5/5},{-0.5/5, -2.5/5, -0.5/5, 0.5/5, -1.5/5, 0.5/5},},
{{-1.5/5, -2.5/5, -1.5/5, -0.5/5, 0.5/5, -0.5/5},{0.5/5, -2.5/5, -1.5/5, 1.5/5, 0.5/5, -0.5/5},{0.5/5, -2.5/5, 0.5/5, 1.5/5, 0.5/5, 1.5/5},{-1.5/5, -2.5/5, 0.5/5, -0.5/5, 0.5/5, 1.5/5},{-0.5/5, -2.5/5, -0.5/5, 0.5/5, -1.5/5, 0.5/5},},
{{-1.5/5, -2.5/5, -1.5/5, -0.5/5, 1.5/5, -0.5/5},{-0.5/5, -2.5/5, -0.5/5, 0.5/5, -1.5/5, 0.5/5},{0.5/5, -2.5/5, -1.5/5, 1.5/5, 0.5/5, -0.5/5},{1.5/5, 0.5/5, -2.5/5, 2.5/5, 1.5/5, -1.5/5},{-2.5/5, 0.5/5, 1.5/5, -1.5/5, 1.5/5, 2.5/5},{-1.5/5, -2.5/5, 0.5/5, -0.5/5, 0.5/5, 1.5/5},{0.5/5, -2.5/5, 0.5/5, 1.5/5, 1.5/5, 1.5/5},{-2.5/5, 1.5/5, -2.5/5, -1.5/5, 2.5/5, -1.5/5},{1.5/5, 1.5/5, 1.5/5, 2.5/5, 2.5/5, 2.5/5},},
{{-2.5/5, -1.5/5, -2.5/5, -1.5/5, -0.5/5, -1.5/5},{-1.5/5, -2.5/5, -1.5/5, -0.5/5, -1.5/5, -0.5/5},{0.5/5, -2.5/5, -1.5/5, 1.5/5, -1.5/5, -0.5/5},{0.5/5, -2.5/5, 0.5/5, 1.5/5, -1.5/5, 1.5/5},{1.5/5, -1.5/5, 1.5/5, 2.5/5, -0.5/5, 2.5/5},{-1.5/5, -2.5/5, 0.5/5, -0.5/5, -1.5/5, 1.5/5},},
{{-1.5/5, -2.5/5, -1.5/5, -0.5/5, -1.5/5, -0.5/5},{0.5/5, -2.5/5, -1.5/5, 1.5/5, -0.5/5, -0.5/5},{0.5/5, -2.5/5, 0.5/5, 1.5/5, -1.5/5, 1.5/5},{-1.5/5, -2.5/5, 0.5/5, -0.5/5, -0.5/5, 1.5/5},{-2.5/5, -1.5/5, -2.5/5, -1.5/5, -0.5/5, -1.5/5},{1.5/5, -1.5/5, 1.5/5, 2.5/5, -0.5/5, 2.5/5},},
{{-1.5/5, -2.5/5, -1.5/5, -0.5/5, -0.5/5, -0.5/5},{-2.5/5, -0.5/5, -2.5/5, -1.5/5, 0.5/5, -1.5/5},{1.5/5, -0.5/5, 1.5/5, 2.5/5, 0.5/5, 2.5/5},{0.5/5, -2.5/5, 0.5/5, 1.5/5, -0.5/5, 1.5/5},{0.5/5, -2.5/5, -1.5/5, 1.5/5, -0.5/5, -0.5/5},{-1.5/5, -2.5/5, 0.5/5, -0.5/5, -0.5/5, 1.5/5},},
{{-3/6, 2/6, -3/6, 3/6, 3/6, 3/6},{2/6, -3/6, 1/6, 3/6, 2/6, 3/6},{1/6, -3/6, -3/6, 3/6, 2/6, -2/6},{-3/6, -3/6, -3/6, -2/6, 2/6, -1/6},{-3/6, -3/6, 2/6, -1/6, 2/6, 3/6},},
}

17
mods/polymer/code Normal file
View File

@ -0,0 +1,17 @@
for i, nodebox in ipairs(node_boxes) do
local name = "polymer:item_"..i
polymer.node_amount = polymer.node_amount + 1
minetest.register_node(name, {
drawtype = "nodebox",
paramtype2 = "facedir",
description = "Plastic Item #"..i,
paramtype = "light",
groups = {dig_immediate=3, polymer=3, not_in_creative_inventory=1},
tiles = {"wool_red.png"},
node_box = {
type = "fixed",
fixed = nodebox,
}
})
polymer.registered_nodes[i] = name
end

1
mods/polymer/depends.txt Normal file
View File

@ -0,0 +1 @@
default

349
mods/polymer/init.lua Normal file
View File

@ -0,0 +1,349 @@
polymer = {}
polymer.registered_nodes = {}
polymer.node_amount = 0
polymer.extrude_amount = 0
local resolution = 12
local place_ori = nil
local place_one = nil
local place_two = nil
local node_num = 0
local node_box = {}
local node_box_string = {}
local node_current = 0
polymer.extruder_formspec =
"size[8,9]"..
"list[current_name;models;0,0;8,4;]"..
"button[2.5,4;1,1;polymer_prev;<]"..
"list[current_name;input;3.5,4;1,1;]"..
"button[4.5,4;1,1;polymer_next;>]"..
"list[current_player;main;0,5;8,4;]"
polymer.setformspec = function(inv, page)
local count = 0
for i=(page-1)*8*4+1,(page)*8*4, 1 do
count = count + 1
if polymer.registered_nodes[i] == nil then
inv:set_stack("models", count, "")
else
inv:set_stack("models", count, polymer.registered_nodes[i].." "..polymer.extrude_amount)
if count >= (8*4) or polymer.registered_nodes[i] == nil then return end
end
end
end,
minetest.register_node("polymer:extruder", {
tiles = {"polymer_model.png"},
drawtype = "node",
description = "Polymer Extruder",
groups = {not_in_creative_inventory=1, snappy = 3,flammable=2, attached_node=1},
can_dig = function(pos,player)
local meta = minetest.get_meta(pos);
local inv = meta:get_inventory()
return inv:is_empty("input")
end,
on_construct = function(pos, node)
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
inv:set_size("models", 8*4)
inv:set_size("input", 1)
inv:set_size("select", 1)
inv:set_size("output", 1)
meta:set_string("formspec", polymer.extruder_formspec)
meta:set_int("page", 1)
polymer.setformspec(inv, 1)
end,
on_receive_fields = function(pos, formname, fields, sender)
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
local page = meta:get_int("page")
if fields.polymer_prev and page > 1 then
polymer.setformspec(inv, page - 1)
meta:set_int("page", page - 1)
end
if fields.polymer_next and polymer.node_amount-(page)*4*8 > 0 then
polymer.setformspec(inv, page + 1)
meta:set_int("page", page + 1)
end
end,
allow_metadata_inventory_put = function(pos, listname, index, stack, player)
if listname == "models" then return 0 end
if listname == "input" then
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
local node_stack = inv:get_stack("input", 1)
print(node_stack:get_count())
if node_stack:get_count() ~= 0 and node_stack:get_name() ~= stack:get_name() then return 0 end
return stack:get_count()
end
return 0
end,
on_metadata_inventory_put = function(pos, listname, index, stack, player)
if listname == "input" then
--print(minetest.get_item_group(minetest.get_node(pos).name, "polymer"))
--minetest.get_node_group(self.node.name, "polymer")
print(minetest.get_node_group(minetest.get_node(pos).name, "polymer"))
if minetest.get_node_group(stack:get_name(), "polymer") == 0 then
local player_name=player:get_player_name()
minetest.chat_send_player(player_name,"[polymer] only works with plastic nodes")
return
else
end
--if minetest.get_node_group(, "polymer") ~= 0 then return end
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
polymer.extrude_amount = inv:get_stack("input", 1):get_count()
local page = meta:get_int("page")
polymer.setformspec(inv, page)
end
end,
on_metadata_inventory_take = function(pos, listname, index, stack, player)
if listname == "input" then
local meta = minetest.get_meta(pos)
local page = meta:get_int("page")
local inv = meta:get_inventory()
polymer.extrude_amount = inv:get_stack("input", 1):get_count()
polymer.setformspec(inv, page)
end
if listname == "models" then
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
local take = stack:get_count()
print(take)
local input_stack = inv:get_stack("input", 1)
polymer.extrude_amount = (input_stack:get_count() - take)
local page = meta:get_int("page")
local name = input_stack:get_name()
inv:set_stack("input", 1 ,name.." "..polymer.extrude_amount)
print(stack:get_name())
polymer.setformspec(inv, page)
end
end,
})
minetest.register_node("polymer:spawn", {
tiles = {"polymer_model.png"},
drawtype = "node",
description = "Polymer Designer",
groups = {not_in_creative_inventory=1, snappy = 3,flammable=2, attached_node=1},
on_receive_fields = function(pos, formname, fields, clicker)
--print("Sign at "..minetest.pos_to_string(pos).." got "..dump(fields))
local meta = minetest.get_meta(pos)
resolution = fields.text or ""
meta:set_string("infotext", '"'..fields.text..'"')
place_one = nil
place_two = nil
place_ori = pos
node_num = 0
for x=-resolution, resolution*2+1, 1 do
for y=-1, resolution*2+1, 1 do
for z=-resolution, resolution*2+1, 1 do
if ( x == 0 and y == 0 and z == 0 ) then
local a = 0
else
minetest.remove_node({x=pos.x+x,y=pos.y+y,z=pos.z+z})
end
if (x==-resolution or y==-1 or z==-resolution or x==resolution*2+1 or y==resolution*2+1 or z==resolution*2+1 ) then
minetest.add_node({x=pos.x+x,y=pos.y+y,z=pos.z+z}, {name = "polymer:wall"})
end
end
end
end
local player_name=clicker:get_player_name()
minetest.chat_send_player(player_name,"[polymer] New "..resolution.." project started")
for x=1, resolution, 1 do
for y=1, resolution, 1 do
for z=1, resolution, 1 do
local pos = {x=pos.x+x,y=pos.y+y,z=pos.z+z}
minetest.set_node(pos, {name = "polymer:grid"})
local meta = minetest.get_meta(pos)
end
end
end
end,
on_construct = function(pos, node)
local meta = minetest.get_meta(pos)
meta:set_string("infotext", "Left click to save | Right click for new project")
meta:set_string("formspec", "field[text;;12]")
for x=-resolution, resolution*2+1, 1 do
for y=-1, resolution*2+1, 1 do
for z=-resolution, resolution*2+1, 1 do
if ( x == 0 and y == 0 and z == 0 ) then
local a = 0
else
minetest.remove_node({x=pos.x+x,y=pos.y+y,z=pos.z+z})
end
if (x==-resolution or y==-1 or z==-resolution or x==resolution*2+1 or y==resolution*2+1 or z==resolution*2+1 ) then
minetest.add_node({x=pos.x+x,y=pos.y+y,z=pos.z+z}, {name = "polymer:wall"})
end
end
end
end
place_ori = pos
for x=1, resolution, 1 do
for y=1, resolution, 1 do
for z=1, resolution, 1 do
local pos = {x=pos.x+x,y=pos.y+y,z=pos.z+z}
minetest.set_node(pos, {name = "polymer:grid"})
local meta = minetest.get_meta(pos)
end
end
end
end,
on_destruct = function(pos, node, digger)
for x=1, resolution, 1 do
for y=1, resolution, 1 do
for z=1, resolution, 1 do
minetest.remove_node({x=pos.x+x,y=pos.y+y,z=pos.z+z})
end
end
end
local place_one = nil
local place_two = nil
end,
on_punch = function(pos, node, puncher)
local player_name=puncher:get_player_name()
if node_num == 0 then
minetest.chat_send_player(player_name,"[polymer] You have to draw before you can save.")
return
end
local table_string = ""
for i=1, node_num, 1 do
minetest.chat_send_player(player_name,node_box_string[i])
table_string = table_string..node_box_string[i]
end
minetest.chat_send_player(player_name,"[polymer] Saved project to mod folder")
local file = minetest.get_modpath("polymer").."/nodeboxes"
local f = io.open(file, "r")
local contents = f:read("*all")
f = io.open(file, "w")
f:write(contents.."{"..table_string.."},\n")
f:close()
file = minetest.get_modpath("polymer").."/code"
local f = io.open(file, "r")
local code = f:read("*all")
file = minetest.get_modpath("polymer").."/nodeboxes.lua"
f = io.open(file, "w")
f:write("local node_boxes ={ "..contents.."{"..table_string.."},}\n"..code)
f:close()
end,
})
minetest.register_node("polymer:grid", {--register wild plant
drawtype = "glasslike_framed",
paramtype = "light",
groups = {dig_immediate=3,not_in_creative_inventory=1},
light_source = 12,
drop = "polymer:paint",
tiles = {"polymer_wire.png"},
sunlight_propagates = true,
buildable_to = true,
pointable = true,
walkable = false,
climbable = true,
})
minetest.register_node("polymer:wall", {--register wild plant
drawtype = "node",
paramtype = "light",
groups = {indestructable=1},
light_source = 12,
tiles = {"polymer_wall.png"},
--pointable = false,
})
minetest.register_node("polymer:draw", {
paramtype = "light",
groups = {dig_immediate=3,not_in_creative_inventory=1},
tiles = {"wool_red.png"},
pointable = true,
climbable = true,
buildable_to = true,
walkable = false,
after_dig_node = function(pos)
place_one = nil
place_two = nil
end,
after_place_node = function(pos, player)
local player_name=player:get_player_name()
if place_one == nil then
if place_ori == nil then
minetest.chat_send_player(player_name,"[polymer] Select a nodebox designer block")
return
end
place_one = pos
minetest.chat_send_player(player_name,"[polymer] position 1 set")
elseif place_two == nil then
place_two = pos
local min_x = math.min(place_one.x, place_two.x)
local min_y = math.min(place_one.y, place_two.y)
local min_z = math.min(place_one.z, place_two.z)
local max_x = math.max(place_one.x, place_two.x)
local max_y = math.max(place_one.y, place_two.y)
local max_z = math.max(place_one.z, place_two.z)
node_num = node_num + 1
node_box[node_num] = {{x=min_x, y=min_y, z=min_z},{x=max_x, y=max_y, z=max_z}}
node_box_string[node_num] = "{"..(min_x-place_ori.x-(resolution/2+1)).."/"..resolution..", "..(min_y-place_ori.y-(resolution/2+1)).."/"..resolution..", "..(min_z-place_ori.z-(resolution/2+1)).."/"..resolution..", "..(max_x-place_ori.x-(resolution/2)).."/"..resolution..", "..(max_y-place_ori.y-(resolution/2)).."/"..resolution..", "..(max_z-place_ori.z-(resolution/2)).."/"..resolution.."},"
minetest.chat_send_player(player_name,"[polymer] position 2 set "..node_box_string[node_num])
place_one = nil
place_two = nil
for x=min_x, max_x, 1 do
for y=min_y, max_y, 1 do
for z=min_z, max_z, 1 do
--categorized[x.."-"..y.."-"..z] = nil
minetest.add_node({x=x,y=y,z=z}, {name="polymer:paint"})
end
end
end
end
end,
})
minetest.register_node("polymer:paint", {
paramtype = "light",
groups = {dig_immediate=3,not_in_creative_inventory=1},
tiles = {"wool_blue.png"},
pointable = true,
walkable = false,
climbable = true,
})
local file = minetest.get_modpath("polymer").."/nodeboxes"
local f = io.open(file, "r")
local contents = f:read("*all")
file = minetest.get_modpath("polymer").."/code"
f = io.open(file, "r")
local code = f:read("*all")
file = minetest.get_modpath("polymer").."/nodeboxes.lua"
f = io.open(file, "w")
f:write("local node_boxes ={ "..contents.."}\n"..code)
f:close()
dofile(minetest.get_modpath("polymer").."/nodeboxes.lua")
--crafts
minetest.register_craft({
output = 'polymer:draw',
recipe = {
{'polymer:paint'},
}
})
minetest.register_craft({
output = 'polymer:paint',
recipe = {
{'polymer:draw'},
}
})
minetest.register_craftitem("polymer:polymers", {
description = "Polymer",
inventory_image = "farming_cake_mix_pumpkin.png",
})
minetest.register_craft({
type = "cooking",
output = "polymer:polymers",
recipe = "farming:wheat_harvested",
cooktime = 10
})

90
mods/polymer/nodeboxes Normal file
View File

@ -0,0 +1,90 @@
{{-1.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, 1.5/3},{-1.5/3, -0.5/3, -0.5/3, 1.5/3, 0.5/3, 1.5/3},{-1.5/3, 0.5/3, 0.5/3, 1.5/3, 1.5/3, 1.5/3},},
{{-0.5/3, -1.5/3, -0.5/3, 1.5/3, -0.5/3, 1.5/3},{-1.5/3, -1.5/3, 0.5/3, -0.5/3, -0.5/3, 1.5/3},{0.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, -0.5/3},{0.5/3, -0.5/3, -0.5/3, 1.5/3, 0.5/3, 0.5/3},{-0.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3, 1.5/3},{0.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3, 1.5/3},},
{{-0.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, 0.5/3},{-1.5/3, -1.5/3, -0.5/3, 0.5/3, -0.5/3, 1.5/3},{-0.5/3, -0.5/3, -0.5/3, 1.5/3, 0.5/3, 1.5/3},},
{{-0.5/3, -1.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3},{-1.5/3, 0.5/3, -1.5/3, 1.5/3, 1.5/3, 1.5/3},},
{{-1.5/3, -0.5/3, -1.5/3, 1.5/3, 1.5/3, -0.5/3},{0.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, -0.5/3},{-1.5/3, -1.5/3, -1.5/3, -0.5/3, -0.5/3, -0.5/3},{-1.5/3, -0.5/3, -0.5/3, 1.5/3, 0.5/3, 1.5/3},{-1.5/3, -1.5/3, 0.5/3, -0.5/3, -0.5/3, 1.5/3},{0.5/3, -1.5/3, 0.5/3, 1.5/3, -0.5/3, 1.5/3},},
{{-1.5/3, -0.5/3, -1.5/3, 1.5/3, 0.5/3, 1.5/3},{0.5/3, -1.5/3, 0.5/3, 1.5/3, -0.5/3, 1.5/3},{0.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, -0.5/3},{-1.5/3, -1.5/3, -1.5/3, -0.5/3, -0.5/3, -0.5/3},{-1.5/3, -1.5/3, 0.5/3, -0.5/3, -0.5/3, 1.5/3},},
{{-1.5/3, 0.5/3, -1.5/3, 1.5/3, 1.5/3, 1.5/3},{-1.5/3, -1.5/3, -1.5/3, 1.5/3, 0.5/3, -0.5/3},},
{{-0.5/3, -1.5/3, -0.5/3, 0.5/3, -0.5/3, 0.5/3},{-1.5/3, -0.5/3, -1.5/3, 1.5/3, 0.5/3, 1.5/3},{-1.5/3, 0.5/3, -1.5/3, 1.5/3, 1.5/3, -0.5/3},},
{{0.5/3, -1.5/3, -1.5/3, 1.5/3, 1.5/3, 1.5/3},{-1.5/3, -1.5/3, -1.5/3, -0.5/3, 1.5/3, 1.5/3},{-0.5/3, -1.5/3, -1.5/3, 0.5/3, -0.5/3, 1.5/3},{-0.5/3, 0.5/3, -1.5/3, 0.5/3, 1.5/3, 1.5/3},},
{{-1.5/3, -0.5/3, -1.5/3, 1.5/3, 0.5/3, 1.5/3},{-0.5/3, -1.5/3, -1.5/3, 0.5/3, 1.5/3, 1.5/3},},
{{-1.5/3, -1.5/3, -1.5/3, 1.5/3, 0.5/3, -0.5/3},{-1.5/3, -1.5/3, -0.5/3, 1.5/3, -0.5/3, 1.5/3},},
{{0.5/3, -1.5/3, -1.5/3, 1.5/3, 1.5/3, 1.5/3},{-1.5/3, -1.5/3, -1.5/3, -0.5/3, 1.5/3, 1.5/3},{-0.5/3, -0.5/3, -1.5/3, 0.5/3, 0.5/3, 1.5/3},},
{{-1.5/3, -0.5/3, -1.5/3, 1.5/3, 0.5/3, 1.5/3},{-1.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, -0.5/3},},
{{-1.5/3, -1.5/3, 0.5/3, 1.5/3, 0.5/3, 1.5/3},},
{{-1.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, 1.5/3},},
{{-1.5/3, -1.5/3, -1.5/3, 1.5/3, 0.5/3, 1.5/3},},
{{-1.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, 1.5/3},{-0.5/3, -0.5/3, -1.5/3, 0.5/3, 1.5/3, 1.5/3},},
{{-1.5/3, -1.5/3, -0.5/3, 1.5/3, 1.5/3, 0.5/3},},
{{-1.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, -0.5/3},},
{{-1.5/3, -1.5/3, -0.5/3, 1.5/3, -0.5/3, 0.5/3},},
{{-1.5/3, -1.5/3, -0.5/3, 1.5/3, 0.5/3, 0.5/3},},
{{0.5/3, -1.5/3, 0.5/3, 1.5/3, -0.5/3, 1.5/3},},
{{-0.5/3, -1.5/3, 0.5/3, 0.5/3, -0.5/3, 1.5/3},},
{{-0.5/3, -0.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3},},
{{-1.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3, 1.5/3},},
{{-1.5/3, -0.5/3, -0.5/3, 1.5/3, 0.5/3, 0.5/3},},
{{-0.5/3, -1.5/3, -0.5/3, 1.5/3, -0.5/3, 1.5/3},{0.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3, 1.5/3},},
{{-0.5/3, -1.5/3, -0.5/3, 1.5/3, -0.5/3, 1.5/3},{-0.5/3, -0.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3},},
{{-0.5/3, -0.5/3, -0.5/3, 1.5/3, 0.5/3, 1.5/3},{0.5/3, -1.5/3, 0.5/3, 1.5/3, -0.5/3, 1.5/3},},
{{-0.5/3, -1.5/3, -0.5/3, 0.5/3, -0.5/3, 0.5/3},{-0.5/3, -0.5/3, -0.5/3, 1.5/3, 0.5/3, 1.5/3},},
{{-0.5/3, -1.5/3, -0.5/3, 0.5/3, -0.5/3, 0.5/3},},
{{0.5/3, -1.5/3, -0.5/3, 1.5/3, -0.5/3, 1.5/3},},
{{-1.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, 1.5/3},{0.5/3, -0.5/3, 0.5/3, 1.5/3, 1.5/3, 1.5/3},},
{{-1.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, 1.5/3},{-0.5/3, -0.5/3, -0.5/3, 1.5/3, 0.5/3, 1.5/3},{0.5/3, 0.5/3, 0.5/3, 1.5/3, 1.5/3, 1.5/3},},
{{-1.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, 1.5/3},{-1.5/3, -0.5/3, -0.5/3, 1.5/3, 0.5/3, 1.5/3},{-1.5/3, 0.5/3, 0.5/3, 1.5/3, 1.5/3, 1.5/3},},
{{-1.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, 1.5/3},{-0.5/3, -0.5/3, -0.5/3, 1.5/3, 0.5/3, 1.5/3},},
{{-0.5/3, -1.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3},},
{{-1.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, 1.5/3},{-1.5/3, 0.5/3, -1.5/3, 1.5/3, 1.5/3, 1.5/3},{-1.5/3, -0.5/3, -1.5/3, -0.5/3, 0.5/3, 1.5/3},{0.5/3, -0.5/3, -1.5/3, 1.5/3, 0.5/3, 1.5/3},{-0.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3, 1.5/3},},
{{-1.5/3, -1.5/3, -1.5/3, -0.5/3, -0.5/3, -0.5/3},{-1.5/3, -1.5/3, 0.5/3, 0.5/3, -0.5/3, 1.5/3},{0.5/3, -1.5/3, -0.5/3, 1.5/3, -0.5/3, 1.5/3},{-0.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, -0.5/3},},
{{-1.5/3, -1.5/3, -1.5/3, -0.5/3, -0.5/3, 0.5/3},{-1.5/3, -1.5/3, 0.5/3, 0.5/3, -0.5/3, 1.5/3},{0.5/3, -1.5/3, -0.5/3, 1.5/3, -0.5/3, 1.5/3},{-0.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, -0.5/3},},
{{-1.5/3, -1.5/3, 0.5/3, 1.5/3, -0.5/3, 1.5/3},{-1.5/3, -1.5/3, -1.5/3, -0.5/3, -0.5/3, 0.5/3},},
{{-0.5/3, -1.5/3, -1.5/3, 0.5/3, -0.5/3, 1.5/3},{-0.5/3, -0.5/3, 0.5/3, 0.5/3, 1.5/3, 1.5/3},},
{{0.5/3, -1.5/3, 0.5/3, 1.5/3, 1.5/3, 1.5/3},{0.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, 0.5/3},{-1.5/3, -1.5/3, 0.5/3, 0.5/3, -0.5/3, 1.5/3},},
{{-3/6, -3/6, -3/6, -2/6, 2/6, -2/6},{2/6, -3/6, -3/6, 3/6, 2/6, -2/6},{-3/6, 2/6, -3/6, 3/6, 3/6, 3/6},{-3/6, -3/6, 2/6, -2/6, 2/6, 3/6},{2/6, -3/6, 2/6, 3/6, 2/6, 3/6},},
{{0/6, -3/6, -2/6, 1/6, 3/6, -1/6},{0/6, -3/6, 1/6, 1/6, 3/6, 2/6},{0/6, 2/6, -1/6, 1/6, 3/6, 1/6},{-3/6, -1/6, -2/6, 1/6, 0/6, 2/6},{-3/6, -3/6, -2/6, -2/6, -1/6, -1/6},{-3/6, -3/6, 1/6, -2/6, -1/6, 2/6},},
{{1/6, -3/6, -2/6, 2/6, -1/6, -1/6},{1/6, -3/6, 1/6, 2/6, -1/6, 2/6},{-2/6, -3/6, 1/6, -1/6, -1/6, 2/6},{-2/6, -3/6, -2/6, -1/6, -1/6, -1/6},{-2/6, -1/6, -2/6, 2/6, 0/6, 2/6},},
{{-1/6, -3/6, -1/6, 1/6, 2/6, 1/6},{-3/6, 2/6, -3/6, 3/6, 3/6, 3/6},},
{{-1.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, 1.5/3},{0.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3, 1.5/3},},
{{-1.5/3, -0.5/3, -1.5/3, 1.5/3, 1.5/3, 0.5/3},{-1.5/3, -1.5/3, -0.5/3, 1.5/3, 0.5/3, 1.5/3},},
{{-1.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, 1.5/3},{-1.5/3, 0.5/3, -1.5/3, 1.5/3, 1.5/3, 1.5/3},{0.5/3, -0.5/3, -1.5/3, 1.5/3, 0.5/3, -0.5/3},{0.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3, 1.5/3},{-1.5/3, -0.5/3, 0.5/3, -0.5/3, 0.5/3, 1.5/3},{-1.5/3, -0.5/3, -1.5/3, -0.5/3, 0.5/3, -0.5/3},},
{{-1.5/3, -1.5/3, -1.5/3, -0.5/3, -0.5/3, 0.5/3},{-1.5/3, -1.5/3, 0.5/3, 0.5/3, -0.5/3, 1.5/3},{0.5/3, -1.5/3, -0.5/3, 1.5/3, -0.5/3, 1.5/3},{-0.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, -0.5/3},{-1.5/3, -0.5/3, -1.5/3, -0.5/3, 0.5/3, -0.5/3},{-1.5/3, 0.5/3, -1.5/3, 0.5/3, 1.5/3, -0.5/3},{0.5/3, 0.5/3, -1.5/3, 1.5/3, 1.5/3, 0.5/3},{-0.5/3, 0.5/3, 0.5/3, 1.5/3, 1.5/3, 1.5/3},{-1.5/3, 0.5/3, -0.5/3, -0.5/3, 1.5/3, 1.5/3},{-1.5/3, -0.5/3, 0.5/3, -0.5/3, 0.5/3, 1.5/3},{0.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3, 1.5/3},{0.5/3, -0.5/3, -1.5/3, 1.5/3, 0.5/3, -0.5/3},},
{{-1.5/3, -1.5/3, -0.5/3, 1.5/3, 0.5/3, 0.5/3},},
{{-0.5/3, -0.5/3, -0.5/3, 0.5/3, 0.5/3, 1.5/3},{-0.5/3, -1.5/3, -0.5/3, 0.5/3, -0.5/3, 0.5/3},},
{{-0.5/3, -1.5/3, -1.5/3, 0.5/3, -0.5/3, 1.5/3},{-1.5/3, -1.5/3, -0.5/3, 1.5/3, -0.5/3, 0.5/3},},
{{-0.5/3, -1.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3},{-0.5/3, -0.5/3, -1.5/3, 0.5/3, 0.5/3, 1.5/3},},
{{-0.5/3, -1.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3},{-0.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3, 1.5/3},{-1.5/3, -0.5/3, -0.5/3, -0.5/3, 0.5/3, 0.5/3},},
{{-0.5/3, -1.5/3, -0.5/3, 0.5/3, -0.5/3, 1.5/3},},
{{-0.5/3, -1.5/3, -1.5/3, 0.5/3, -0.5/3, -0.5/3},{-0.5/3, -1.5/3, -0.5/3, 0.5/3, 0.5/3, 1.5/3},{-0.5/3, 0.5/3, 0.5/3, 0.5/3, 1.5/3, 1.5/3},},
{{0.5/3, -1.5/3, 0.5/3, 1.5/3, -0.5/3, 1.5/3},{-1.5/3, -1.5/3, -0.5/3, 0.5/3, -0.5/3, 1.5/3},{-1.5/3, -1.5/3, -1.5/3, -0.5/3, -0.5/3, -0.5/3},},
{{-0.5/3, -1.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3},{-0.5/3, -0.5/3, -1.5/3, 0.5/3, 0.5/3, 1.5/3},{-1.5/3, -0.5/3, -0.5/3, 1.5/3, 0.5/3, 0.5/3},},
{{-0.5/3, -1.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3},{-0.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3, 1.5/3},},
{{-0.5/3, -1.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3},{-0.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3, 1.5/3},{-1.5/3, -0.5/3, -0.5/3, -0.5/3, 0.5/3, 0.5/3},{0.5/3, -0.5/3, -0.5/3, 1.5/3, 0.5/3, 0.5/3},},
{{-0.5/3, -1.5/3, 0.5/3, 0.5/3, -0.5/3, 1.5/3},{-1.5/3, -1.5/3, -0.5/3, 1.5/3, -0.5/3, 0.5/3},},
{{-0.5/3, -1.5/3, -0.5/3, 0.5/3, -0.5/3, 1.5/3},},
{{-1.5/3, -1.5/3, -0.5/3, 1.5/3, -0.5/3, 0.5/3},{-0.5/3, -0.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3},},
{{-1.5/3, -1.5/3, 0.5/3, 1.5/3, -0.5/3, 1.5/3},{-0.5/3, -1.5/3, -1.5/3, 0.5/3, -0.5/3, 0.5/3},},
{{-1.5/3, 0.5/3, 0.5/3, 0.5/3, 1.5/3, 1.5/3},{-0.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3, 1.5/3},{-1.5/3, -1.5/3, 0.5/3, 1.5/3, -0.5/3, 1.5/3},},
{{0.5/3, -1.5/3, 0.5/3, 1.5/3, 1.5/3, 1.5/3},{-1.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3, 1.5/3},{-1.5/3, 0.5/3, 0.5/3, -0.5/3, 1.5/3, 1.5/3},},
{{-0.5/3, -1.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3},{-0.5/3, -0.5/3, -1.5/3, 0.5/3, 0.5/3, 1.5/3},{-1.5/3, -0.5/3, -0.5/3, 1.5/3, 0.5/3, 0.5/3},{-1.5/3, -1.5/3, -1.5/3, -0.5/3, -0.5/3, -0.5/3},{0.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, -0.5/3},{0.5/3, -1.5/3, 0.5/3, 1.5/3, -0.5/3, 1.5/3},{0.5/3, 0.5/3, 0.5/3, 1.5/3, 1.5/3, 1.5/3},{0.5/3, 0.5/3, -1.5/3, 1.5/3, 1.5/3, -0.5/3},{-1.5/3, 0.5/3, 0.5/3, -0.5/3, 1.5/3, 1.5/3},{-1.5/3, 0.5/3, -1.5/3, -0.5/3, 1.5/3, -0.5/3},{-1.5/3, -1.5/3, 0.5/3, -0.5/3, -0.5/3, 1.5/3},},
{{-1/6, -3/6, -3/6, 0/6, -2/6, 3/6},{-1/6, -2/6, -1/6, 0/6, 3/6, 0/6},{0/6, 0/6, -1/6, 3/6, 2/6, 0/6},},
{{-0.5/5, -2.5/5, -1.5/5, 0.5/5, -1.5/5, 1.5/5},{-1.5/5, -2.5/5, -0.5/5, 1.5/5, -1.5/5, 0.5/5},{-0.5/5, -1.5/5, -0.5/5, 0.5/5, 1.5/5, 0.5/5},{-2.5/5, 1.5/5, -2.5/5, 2.5/5, 2.5/5, 2.5/5},},
{{-1.5/5, -2.5/5, -1.5/5, -0.5/5, 0.5/5, -0.5/5},{1.5/5, -2.5/5, -2.5/5, 2.5/5, -0.5/5, -1.5/5},{0.5/5, -2.5/5, -0.5/5, 1.5/5, 0.5/5, 0.5/5},{-0.5/5, -2.5/5, 0.5/5, 0.5/5, -1.5/5, 1.5/5},{-2.5/5, -2.5/5, 1.5/5, -1.5/5, 0.5/5, 2.5/5},{1.5/5, -2.5/5, 1.5/5, 2.5/5, -0.5/5, 2.5/5},},
{{-1.5/5, -2.5/5, -1.5/5, -0.5/5, -1.5/5, -0.5/5},{-1.5/5, -2.5/5, 0.5/5, -0.5/5, -1.5/5, 1.5/5},{0.5/5, -2.5/5, 0.5/5, 1.5/5, -1.5/5, 1.5/5},{0.5/5, -2.5/5, -1.5/5, 1.5/5, -1.5/5, -0.5/5},},
{{-1.5/5, -2.5/5, -1.5/5, -0.5/5, -0.5/5, -0.5/5},{0.5/5, -2.5/5, -1.5/5, 1.5/5, -0.5/5, -0.5/5},{0.5/5, -2.5/5, 0.5/5, 1.5/5, -0.5/5, 1.5/5},{-1.5/5, -2.5/5, 0.5/5, -0.5/5, -0.5/5, 1.5/5},},
{{-1.5/5, -2.5/5, -1.5/5, -0.5/5, -0.5/5, -0.5/5},{0.5/5, -2.5/5, -1.5/5, 1.5/5, -0.5/5, -0.5/5},{0.5/5, -2.5/5, 0.5/5, 1.5/5, -0.5/5, 1.5/5},{-1.5/5, -2.5/5, 0.5/5, -0.5/5, -0.5/5, 1.5/5},{-0.5/5, -2.5/5, -0.5/5, 0.5/5, -1.5/5, 0.5/5},},
{{-1.5/5, -2.5/5, -1.5/5, -0.5/5, 0.5/5, -0.5/5},{0.5/5, -2.5/5, -1.5/5, 1.5/5, 0.5/5, -0.5/5},{0.5/5, -2.5/5, 0.5/5, 1.5/5, 0.5/5, 1.5/5},{-1.5/5, -2.5/5, 0.5/5, -0.5/5, 0.5/5, 1.5/5},{-0.5/5, -2.5/5, -0.5/5, 0.5/5, -1.5/5, 0.5/5},},
{{-1.5/5, -2.5/5, -1.5/5, -0.5/5, 1.5/5, -0.5/5},{-0.5/5, -2.5/5, -0.5/5, 0.5/5, -1.5/5, 0.5/5},{0.5/5, -2.5/5, -1.5/5, 1.5/5, 0.5/5, -0.5/5},{1.5/5, 0.5/5, -2.5/5, 2.5/5, 1.5/5, -1.5/5},{-2.5/5, 0.5/5, 1.5/5, -1.5/5, 1.5/5, 2.5/5},{-1.5/5, -2.5/5, 0.5/5, -0.5/5, 0.5/5, 1.5/5},{0.5/5, -2.5/5, 0.5/5, 1.5/5, 1.5/5, 1.5/5},{-2.5/5, 1.5/5, -2.5/5, -1.5/5, 2.5/5, -1.5/5},{1.5/5, 1.5/5, 1.5/5, 2.5/5, 2.5/5, 2.5/5},},
{{-2.5/5, -1.5/5, -2.5/5, -1.5/5, -0.5/5, -1.5/5},{-1.5/5, -2.5/5, -1.5/5, -0.5/5, -1.5/5, -0.5/5},{0.5/5, -2.5/5, -1.5/5, 1.5/5, -1.5/5, -0.5/5},{0.5/5, -2.5/5, 0.5/5, 1.5/5, -1.5/5, 1.5/5},{1.5/5, -1.5/5, 1.5/5, 2.5/5, -0.5/5, 2.5/5},{-1.5/5, -2.5/5, 0.5/5, -0.5/5, -1.5/5, 1.5/5},},
{{-1.5/5, -2.5/5, -1.5/5, -0.5/5, -1.5/5, -0.5/5},{0.5/5, -2.5/5, -1.5/5, 1.5/5, -0.5/5, -0.5/5},{0.5/5, -2.5/5, 0.5/5, 1.5/5, -1.5/5, 1.5/5},{-1.5/5, -2.5/5, 0.5/5, -0.5/5, -0.5/5, 1.5/5},{-2.5/5, -1.5/5, -2.5/5, -1.5/5, -0.5/5, -1.5/5},{1.5/5, -1.5/5, 1.5/5, 2.5/5, -0.5/5, 2.5/5},},
{{-1.5/5, -2.5/5, -1.5/5, -0.5/5, -0.5/5, -0.5/5},{-2.5/5, -0.5/5, -2.5/5, -1.5/5, 0.5/5, -1.5/5},{1.5/5, -0.5/5, 1.5/5, 2.5/5, 0.5/5, 2.5/5},{0.5/5, -2.5/5, 0.5/5, 1.5/5, -0.5/5, 1.5/5},{0.5/5, -2.5/5, -1.5/5, 1.5/5, -0.5/5, -0.5/5},{-1.5/5, -2.5/5, 0.5/5, -0.5/5, -0.5/5, 1.5/5},},
{{-3/6, 2/6, -3/6, 3/6, 3/6, 3/6},{2/6, -3/6, 1/6, 3/6, 2/6, 3/6},{1/6, -3/6, -3/6, 3/6, 2/6, -2/6},{-3/6, -3/6, -3/6, -2/6, 2/6, -1/6},{-3/6, -3/6, 2/6, -1/6, 2/6, 3/6},},
{{0.5/3, -1.5/3, -1.5/3, 1.5/3, 1.5/3, 1.5/3},{-1.5/3, -1.5/3, 0.5/3, 0.5/3, 1.5/3, 1.5/3},{-0.5/3, -1.5/3, -1.5/3, 0.5/3, 0.5/3, 0.5/3},{-1.5/3, -1.5/3, -0.5/3, -0.5/3, 0.5/3, 0.5/3},{-1.5/3, -1.5/3, -1.5/3, -0.5/3, -0.5/3, -0.5/3},},
{{-3/6, -3/6, 0/6, 3/6, -2/6, 3/6},{2/6, -2/6, 1/6, 3/6, 0/6, 3/6},{1/6, -2/6, 1/6, 2/6, 1/6, 3/6},{0/6, -2/6, 0/6, 1/6, 2/6, 3/6},{-1/6, -2/6, 1/6, 0/6, 1/6, 3/6},{-2/6, -2/6, 1/6, -1/6, 0/6, 3/6},{-3/6, -2/6, 1/6, -2/6, 1/6, 3/6},},
{{-4/8, 3/8, -4/8, 4/8, 4/8, 4/8},{3/8, -4/8, -4/8, 4/8, 3/8, -3/8},{-4/8, -4/8, -4/8, -3/8, 3/8, -3/8},{-4/8, -4/8, 2/8, -2/8, 3/8, 4/8},{2/8, -4/8, 2/8, 4/8, 3/8, 4/8},{-4/8, -4/8, -4/8, -2/8, 3/8, -2/8},{2/8, -4/8, -4/8, 4/8, 3/8, -2/8},},
{{-0.5/3, -1.5/3, -1.5/3, 0.5/3, 1.5/3, 1.5/3},{-1.5/3, -0.5/3, -0.5/3, 1.5/3, 0.5/3, 0.5/3},},
{{-3/6, -3/6, -3/6, 3/6, -2/6, 3/6},{-2/6, -2/6, -2/6, 2/6, -1/6, 2/6},{-1/6, -1/6, -1/6, 1/6, 0/6, 1/6},},
{{-3/6, 2/6, 1/6, 3/6, 3/6, 3/6},{-2/6, 2/6, 0/6, 2/6, 3/6, 1/6},{-1/6, 2/6, -1/6, 1/6, 3/6, 0/6},{-1/6, 1/6, 1/6, 1/6, 2/6, 3/6},{-1/6, 0/6, 2/6, 1/6, 1/6, 3/6},},
{{4/12, -6/12, -6/12, 6/12, 6/12, 6/12},{-6/12, -6/12, 4/12, 4/12, 6/12, 6/12},{-6/12, -6/12, -6/12, -4/12, 6/12, 4/12},{-4/12, -2/12, -6/12, 4/12, 0/12, 4/12},{-4/12, -3/12, -5/12, 4/12, -2/12, -3/12},{-4/12, -4/12, -5/12, 4/12, -3/12, -3/12},{-2/12, 0/12, 3/12, 3/12, 5/12, 4/12},{-4/12, 0/12, 3/12, -2/12, 3/12, 4/12},{-3/12, 3/12, 3/12, -2/12, 5/12, 4/12},{3/12, 0/12, 3/12, 4/12, 3/12, 4/12},},
{{-2.5/9, -4.5/9, -0.5/9, -1.5/9, 0.5/9, 0.5/9},{0.5/9, -4.5/9, -0.5/9, 1.5/9, 0.5/9, 0.5/9},{3.5/9, -4.5/9, -0.5/9, 4.5/9, 0.5/9, 0.5/9},{-4.5/9, 0.5/9, -1.5/9, 4.5/9, 1.5/9, 1.5/9},},
{{-3.5/9, -4.5/9, 3.5/9, -2.5/9, -0.5/9, 4.5/9},{-0.5/9, -4.5/9, 3.5/9, 0.5/9, -0.5/9, 4.5/9},{2.5/9, -4.5/9, 3.5/9, 3.5/9, -0.5/9, 4.5/9},{-4.5/9, -0.5/9, 2.5/9, 4.5/9, 0.5/9, 4.5/9},},

108
mods/polymer/nodeboxes.lua Normal file
View File

@ -0,0 +1,108 @@
local node_boxes ={ {{-1.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, 1.5/3},{-1.5/3, -0.5/3, -0.5/3, 1.5/3, 0.5/3, 1.5/3},{-1.5/3, 0.5/3, 0.5/3, 1.5/3, 1.5/3, 1.5/3},},
{{-0.5/3, -1.5/3, -0.5/3, 1.5/3, -0.5/3, 1.5/3},{-1.5/3, -1.5/3, 0.5/3, -0.5/3, -0.5/3, 1.5/3},{0.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, -0.5/3},{0.5/3, -0.5/3, -0.5/3, 1.5/3, 0.5/3, 0.5/3},{-0.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3, 1.5/3},{0.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3, 1.5/3},},
{{-0.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, 0.5/3},{-1.5/3, -1.5/3, -0.5/3, 0.5/3, -0.5/3, 1.5/3},{-0.5/3, -0.5/3, -0.5/3, 1.5/3, 0.5/3, 1.5/3},},
{{-0.5/3, -1.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3},{-1.5/3, 0.5/3, -1.5/3, 1.5/3, 1.5/3, 1.5/3},},
{{-1.5/3, -0.5/3, -1.5/3, 1.5/3, 1.5/3, -0.5/3},{0.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, -0.5/3},{-1.5/3, -1.5/3, -1.5/3, -0.5/3, -0.5/3, -0.5/3},{-1.5/3, -0.5/3, -0.5/3, 1.5/3, 0.5/3, 1.5/3},{-1.5/3, -1.5/3, 0.5/3, -0.5/3, -0.5/3, 1.5/3},{0.5/3, -1.5/3, 0.5/3, 1.5/3, -0.5/3, 1.5/3},},
{{-1.5/3, -0.5/3, -1.5/3, 1.5/3, 0.5/3, 1.5/3},{0.5/3, -1.5/3, 0.5/3, 1.5/3, -0.5/3, 1.5/3},{0.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, -0.5/3},{-1.5/3, -1.5/3, -1.5/3, -0.5/3, -0.5/3, -0.5/3},{-1.5/3, -1.5/3, 0.5/3, -0.5/3, -0.5/3, 1.5/3},},
{{-1.5/3, 0.5/3, -1.5/3, 1.5/3, 1.5/3, 1.5/3},{-1.5/3, -1.5/3, -1.5/3, 1.5/3, 0.5/3, -0.5/3},},
{{-0.5/3, -1.5/3, -0.5/3, 0.5/3, -0.5/3, 0.5/3},{-1.5/3, -0.5/3, -1.5/3, 1.5/3, 0.5/3, 1.5/3},{-1.5/3, 0.5/3, -1.5/3, 1.5/3, 1.5/3, -0.5/3},},
{{0.5/3, -1.5/3, -1.5/3, 1.5/3, 1.5/3, 1.5/3},{-1.5/3, -1.5/3, -1.5/3, -0.5/3, 1.5/3, 1.5/3},{-0.5/3, -1.5/3, -1.5/3, 0.5/3, -0.5/3, 1.5/3},{-0.5/3, 0.5/3, -1.5/3, 0.5/3, 1.5/3, 1.5/3},},
{{-1.5/3, -0.5/3, -1.5/3, 1.5/3, 0.5/3, 1.5/3},{-0.5/3, -1.5/3, -1.5/3, 0.5/3, 1.5/3, 1.5/3},},
{{-1.5/3, -1.5/3, -1.5/3, 1.5/3, 0.5/3, -0.5/3},{-1.5/3, -1.5/3, -0.5/3, 1.5/3, -0.5/3, 1.5/3},},
{{0.5/3, -1.5/3, -1.5/3, 1.5/3, 1.5/3, 1.5/3},{-1.5/3, -1.5/3, -1.5/3, -0.5/3, 1.5/3, 1.5/3},{-0.5/3, -0.5/3, -1.5/3, 0.5/3, 0.5/3, 1.5/3},},
{{-1.5/3, -0.5/3, -1.5/3, 1.5/3, 0.5/3, 1.5/3},{-1.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, -0.5/3},},
{{-1.5/3, -1.5/3, 0.5/3, 1.5/3, 0.5/3, 1.5/3},},
{{-1.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, 1.5/3},},
{{-1.5/3, -1.5/3, -1.5/3, 1.5/3, 0.5/3, 1.5/3},},
{{-1.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, 1.5/3},{-0.5/3, -0.5/3, -1.5/3, 0.5/3, 1.5/3, 1.5/3},},
{{-1.5/3, -1.5/3, -0.5/3, 1.5/3, 1.5/3, 0.5/3},},
{{-1.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, -0.5/3},},
{{-1.5/3, -1.5/3, -0.5/3, 1.5/3, -0.5/3, 0.5/3},},
{{-1.5/3, -1.5/3, -0.5/3, 1.5/3, 0.5/3, 0.5/3},},
{{0.5/3, -1.5/3, 0.5/3, 1.5/3, -0.5/3, 1.5/3},},
{{-0.5/3, -1.5/3, 0.5/3, 0.5/3, -0.5/3, 1.5/3},},
{{-0.5/3, -0.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3},},
{{-1.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3, 1.5/3},},
{{-1.5/3, -0.5/3, -0.5/3, 1.5/3, 0.5/3, 0.5/3},},
{{-0.5/3, -1.5/3, -0.5/3, 1.5/3, -0.5/3, 1.5/3},{0.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3, 1.5/3},},
{{-0.5/3, -1.5/3, -0.5/3, 1.5/3, -0.5/3, 1.5/3},{-0.5/3, -0.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3},},
{{-0.5/3, -0.5/3, -0.5/3, 1.5/3, 0.5/3, 1.5/3},{0.5/3, -1.5/3, 0.5/3, 1.5/3, -0.5/3, 1.5/3},},
{{-0.5/3, -1.5/3, -0.5/3, 0.5/3, -0.5/3, 0.5/3},{-0.5/3, -0.5/3, -0.5/3, 1.5/3, 0.5/3, 1.5/3},},
{{-0.5/3, -1.5/3, -0.5/3, 0.5/3, -0.5/3, 0.5/3},},
{{0.5/3, -1.5/3, -0.5/3, 1.5/3, -0.5/3, 1.5/3},},
{{-1.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, 1.5/3},{0.5/3, -0.5/3, 0.5/3, 1.5/3, 1.5/3, 1.5/3},},
{{-1.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, 1.5/3},{-0.5/3, -0.5/3, -0.5/3, 1.5/3, 0.5/3, 1.5/3},{0.5/3, 0.5/3, 0.5/3, 1.5/3, 1.5/3, 1.5/3},},
{{-1.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, 1.5/3},{-1.5/3, -0.5/3, -0.5/3, 1.5/3, 0.5/3, 1.5/3},{-1.5/3, 0.5/3, 0.5/3, 1.5/3, 1.5/3, 1.5/3},},
{{-1.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, 1.5/3},{-0.5/3, -0.5/3, -0.5/3, 1.5/3, 0.5/3, 1.5/3},},
{{-0.5/3, -1.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3},},
{{-1.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, 1.5/3},{-1.5/3, 0.5/3, -1.5/3, 1.5/3, 1.5/3, 1.5/3},{-1.5/3, -0.5/3, -1.5/3, -0.5/3, 0.5/3, 1.5/3},{0.5/3, -0.5/3, -1.5/3, 1.5/3, 0.5/3, 1.5/3},{-0.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3, 1.5/3},},
{{-1.5/3, -1.5/3, -1.5/3, -0.5/3, -0.5/3, -0.5/3},{-1.5/3, -1.5/3, 0.5/3, 0.5/3, -0.5/3, 1.5/3},{0.5/3, -1.5/3, -0.5/3, 1.5/3, -0.5/3, 1.5/3},{-0.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, -0.5/3},},
{{-1.5/3, -1.5/3, -1.5/3, -0.5/3, -0.5/3, 0.5/3},{-1.5/3, -1.5/3, 0.5/3, 0.5/3, -0.5/3, 1.5/3},{0.5/3, -1.5/3, -0.5/3, 1.5/3, -0.5/3, 1.5/3},{-0.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, -0.5/3},},
{{-1.5/3, -1.5/3, 0.5/3, 1.5/3, -0.5/3, 1.5/3},{-1.5/3, -1.5/3, -1.5/3, -0.5/3, -0.5/3, 0.5/3},},
{{-0.5/3, -1.5/3, -1.5/3, 0.5/3, -0.5/3, 1.5/3},{-0.5/3, -0.5/3, 0.5/3, 0.5/3, 1.5/3, 1.5/3},},
{{0.5/3, -1.5/3, 0.5/3, 1.5/3, 1.5/3, 1.5/3},{0.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, 0.5/3},{-1.5/3, -1.5/3, 0.5/3, 0.5/3, -0.5/3, 1.5/3},},
{{-3/6, -3/6, -3/6, -2/6, 2/6, -2/6},{2/6, -3/6, -3/6, 3/6, 2/6, -2/6},{-3/6, 2/6, -3/6, 3/6, 3/6, 3/6},{-3/6, -3/6, 2/6, -2/6, 2/6, 3/6},{2/6, -3/6, 2/6, 3/6, 2/6, 3/6},},
{{0/6, -3/6, -2/6, 1/6, 3/6, -1/6},{0/6, -3/6, 1/6, 1/6, 3/6, 2/6},{0/6, 2/6, -1/6, 1/6, 3/6, 1/6},{-3/6, -1/6, -2/6, 1/6, 0/6, 2/6},{-3/6, -3/6, -2/6, -2/6, -1/6, -1/6},{-3/6, -3/6, 1/6, -2/6, -1/6, 2/6},},
{{1/6, -3/6, -2/6, 2/6, -1/6, -1/6},{1/6, -3/6, 1/6, 2/6, -1/6, 2/6},{-2/6, -3/6, 1/6, -1/6, -1/6, 2/6},{-2/6, -3/6, -2/6, -1/6, -1/6, -1/6},{-2/6, -1/6, -2/6, 2/6, 0/6, 2/6},},
{{-1/6, -3/6, -1/6, 1/6, 2/6, 1/6},{-3/6, 2/6, -3/6, 3/6, 3/6, 3/6},},
{{-1.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, 1.5/3},{0.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3, 1.5/3},},
{{-1.5/3, -0.5/3, -1.5/3, 1.5/3, 1.5/3, 0.5/3},{-1.5/3, -1.5/3, -0.5/3, 1.5/3, 0.5/3, 1.5/3},},
{{-1.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, 1.5/3},{-1.5/3, 0.5/3, -1.5/3, 1.5/3, 1.5/3, 1.5/3},{0.5/3, -0.5/3, -1.5/3, 1.5/3, 0.5/3, -0.5/3},{0.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3, 1.5/3},{-1.5/3, -0.5/3, 0.5/3, -0.5/3, 0.5/3, 1.5/3},{-1.5/3, -0.5/3, -1.5/3, -0.5/3, 0.5/3, -0.5/3},},
{{-1.5/3, -1.5/3, -1.5/3, -0.5/3, -0.5/3, 0.5/3},{-1.5/3, -1.5/3, 0.5/3, 0.5/3, -0.5/3, 1.5/3},{0.5/3, -1.5/3, -0.5/3, 1.5/3, -0.5/3, 1.5/3},{-0.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, -0.5/3},{-1.5/3, -0.5/3, -1.5/3, -0.5/3, 0.5/3, -0.5/3},{-1.5/3, 0.5/3, -1.5/3, 0.5/3, 1.5/3, -0.5/3},{0.5/3, 0.5/3, -1.5/3, 1.5/3, 1.5/3, 0.5/3},{-0.5/3, 0.5/3, 0.5/3, 1.5/3, 1.5/3, 1.5/3},{-1.5/3, 0.5/3, -0.5/3, -0.5/3, 1.5/3, 1.5/3},{-1.5/3, -0.5/3, 0.5/3, -0.5/3, 0.5/3, 1.5/3},{0.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3, 1.5/3},{0.5/3, -0.5/3, -1.5/3, 1.5/3, 0.5/3, -0.5/3},},
{{-1.5/3, -1.5/3, -0.5/3, 1.5/3, 0.5/3, 0.5/3},},
{{-0.5/3, -0.5/3, -0.5/3, 0.5/3, 0.5/3, 1.5/3},{-0.5/3, -1.5/3, -0.5/3, 0.5/3, -0.5/3, 0.5/3},},
{{-0.5/3, -1.5/3, -1.5/3, 0.5/3, -0.5/3, 1.5/3},{-1.5/3, -1.5/3, -0.5/3, 1.5/3, -0.5/3, 0.5/3},},
{{-0.5/3, -1.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3},{-0.5/3, -0.5/3, -1.5/3, 0.5/3, 0.5/3, 1.5/3},},
{{-0.5/3, -1.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3},{-0.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3, 1.5/3},{-1.5/3, -0.5/3, -0.5/3, -0.5/3, 0.5/3, 0.5/3},},
{{-0.5/3, -1.5/3, -0.5/3, 0.5/3, -0.5/3, 1.5/3},},
{{-0.5/3, -1.5/3, -1.5/3, 0.5/3, -0.5/3, -0.5/3},{-0.5/3, -1.5/3, -0.5/3, 0.5/3, 0.5/3, 1.5/3},{-0.5/3, 0.5/3, 0.5/3, 0.5/3, 1.5/3, 1.5/3},},
{{0.5/3, -1.5/3, 0.5/3, 1.5/3, -0.5/3, 1.5/3},{-1.5/3, -1.5/3, -0.5/3, 0.5/3, -0.5/3, 1.5/3},{-1.5/3, -1.5/3, -1.5/3, -0.5/3, -0.5/3, -0.5/3},},
{{-0.5/3, -1.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3},{-0.5/3, -0.5/3, -1.5/3, 0.5/3, 0.5/3, 1.5/3},{-1.5/3, -0.5/3, -0.5/3, 1.5/3, 0.5/3, 0.5/3},},
{{-0.5/3, -1.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3},{-0.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3, 1.5/3},},
{{-0.5/3, -1.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3},{-0.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3, 1.5/3},{-1.5/3, -0.5/3, -0.5/3, -0.5/3, 0.5/3, 0.5/3},{0.5/3, -0.5/3, -0.5/3, 1.5/3, 0.5/3, 0.5/3},},
{{-0.5/3, -1.5/3, 0.5/3, 0.5/3, -0.5/3, 1.5/3},{-1.5/3, -1.5/3, -0.5/3, 1.5/3, -0.5/3, 0.5/3},},
{{-0.5/3, -1.5/3, -0.5/3, 0.5/3, -0.5/3, 1.5/3},},
{{-1.5/3, -1.5/3, -0.5/3, 1.5/3, -0.5/3, 0.5/3},{-0.5/3, -0.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3},},
{{-1.5/3, -1.5/3, 0.5/3, 1.5/3, -0.5/3, 1.5/3},{-0.5/3, -1.5/3, -1.5/3, 0.5/3, -0.5/3, 0.5/3},},
{{-1.5/3, 0.5/3, 0.5/3, 0.5/3, 1.5/3, 1.5/3},{-0.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3, 1.5/3},{-1.5/3, -1.5/3, 0.5/3, 1.5/3, -0.5/3, 1.5/3},},
{{0.5/3, -1.5/3, 0.5/3, 1.5/3, 1.5/3, 1.5/3},{-1.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3, 1.5/3},{-1.5/3, 0.5/3, 0.5/3, -0.5/3, 1.5/3, 1.5/3},},
{{-0.5/3, -1.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3},{-0.5/3, -0.5/3, -1.5/3, 0.5/3, 0.5/3, 1.5/3},{-1.5/3, -0.5/3, -0.5/3, 1.5/3, 0.5/3, 0.5/3},{-1.5/3, -1.5/3, -1.5/3, -0.5/3, -0.5/3, -0.5/3},{0.5/3, -1.5/3, -1.5/3, 1.5/3, -0.5/3, -0.5/3},{0.5/3, -1.5/3, 0.5/3, 1.5/3, -0.5/3, 1.5/3},{0.5/3, 0.5/3, 0.5/3, 1.5/3, 1.5/3, 1.5/3},{0.5/3, 0.5/3, -1.5/3, 1.5/3, 1.5/3, -0.5/3},{-1.5/3, 0.5/3, 0.5/3, -0.5/3, 1.5/3, 1.5/3},{-1.5/3, 0.5/3, -1.5/3, -0.5/3, 1.5/3, -0.5/3},{-1.5/3, -1.5/3, 0.5/3, -0.5/3, -0.5/3, 1.5/3},},
{{-1/6, -3/6, -3/6, 0/6, -2/6, 3/6},{-1/6, -2/6, -1/6, 0/6, 3/6, 0/6},{0/6, 0/6, -1/6, 3/6, 2/6, 0/6},},
{{-0.5/5, -2.5/5, -1.5/5, 0.5/5, -1.5/5, 1.5/5},{-1.5/5, -2.5/5, -0.5/5, 1.5/5, -1.5/5, 0.5/5},{-0.5/5, -1.5/5, -0.5/5, 0.5/5, 1.5/5, 0.5/5},{-2.5/5, 1.5/5, -2.5/5, 2.5/5, 2.5/5, 2.5/5},},
{{-1.5/5, -2.5/5, -1.5/5, -0.5/5, 0.5/5, -0.5/5},{1.5/5, -2.5/5, -2.5/5, 2.5/5, -0.5/5, -1.5/5},{0.5/5, -2.5/5, -0.5/5, 1.5/5, 0.5/5, 0.5/5},{-0.5/5, -2.5/5, 0.5/5, 0.5/5, -1.5/5, 1.5/5},{-2.5/5, -2.5/5, 1.5/5, -1.5/5, 0.5/5, 2.5/5},{1.5/5, -2.5/5, 1.5/5, 2.5/5, -0.5/5, 2.5/5},},
{{-1.5/5, -2.5/5, -1.5/5, -0.5/5, -1.5/5, -0.5/5},{-1.5/5, -2.5/5, 0.5/5, -0.5/5, -1.5/5, 1.5/5},{0.5/5, -2.5/5, 0.5/5, 1.5/5, -1.5/5, 1.5/5},{0.5/5, -2.5/5, -1.5/5, 1.5/5, -1.5/5, -0.5/5},},
{{-1.5/5, -2.5/5, -1.5/5, -0.5/5, -0.5/5, -0.5/5},{0.5/5, -2.5/5, -1.5/5, 1.5/5, -0.5/5, -0.5/5},{0.5/5, -2.5/5, 0.5/5, 1.5/5, -0.5/5, 1.5/5},{-1.5/5, -2.5/5, 0.5/5, -0.5/5, -0.5/5, 1.5/5},},
{{-1.5/5, -2.5/5, -1.5/5, -0.5/5, -0.5/5, -0.5/5},{0.5/5, -2.5/5, -1.5/5, 1.5/5, -0.5/5, -0.5/5},{0.5/5, -2.5/5, 0.5/5, 1.5/5, -0.5/5, 1.5/5},{-1.5/5, -2.5/5, 0.5/5, -0.5/5, -0.5/5, 1.5/5},{-0.5/5, -2.5/5, -0.5/5, 0.5/5, -1.5/5, 0.5/5},},
{{-1.5/5, -2.5/5, -1.5/5, -0.5/5, 0.5/5, -0.5/5},{0.5/5, -2.5/5, -1.5/5, 1.5/5, 0.5/5, -0.5/5},{0.5/5, -2.5/5, 0.5/5, 1.5/5, 0.5/5, 1.5/5},{-1.5/5, -2.5/5, 0.5/5, -0.5/5, 0.5/5, 1.5/5},{-0.5/5, -2.5/5, -0.5/5, 0.5/5, -1.5/5, 0.5/5},},
{{-1.5/5, -2.5/5, -1.5/5, -0.5/5, 1.5/5, -0.5/5},{-0.5/5, -2.5/5, -0.5/5, 0.5/5, -1.5/5, 0.5/5},{0.5/5, -2.5/5, -1.5/5, 1.5/5, 0.5/5, -0.5/5},{1.5/5, 0.5/5, -2.5/5, 2.5/5, 1.5/5, -1.5/5},{-2.5/5, 0.5/5, 1.5/5, -1.5/5, 1.5/5, 2.5/5},{-1.5/5, -2.5/5, 0.5/5, -0.5/5, 0.5/5, 1.5/5},{0.5/5, -2.5/5, 0.5/5, 1.5/5, 1.5/5, 1.5/5},{-2.5/5, 1.5/5, -2.5/5, -1.5/5, 2.5/5, -1.5/5},{1.5/5, 1.5/5, 1.5/5, 2.5/5, 2.5/5, 2.5/5},},
{{-2.5/5, -1.5/5, -2.5/5, -1.5/5, -0.5/5, -1.5/5},{-1.5/5, -2.5/5, -1.5/5, -0.5/5, -1.5/5, -0.5/5},{0.5/5, -2.5/5, -1.5/5, 1.5/5, -1.5/5, -0.5/5},{0.5/5, -2.5/5, 0.5/5, 1.5/5, -1.5/5, 1.5/5},{1.5/5, -1.5/5, 1.5/5, 2.5/5, -0.5/5, 2.5/5},{-1.5/5, -2.5/5, 0.5/5, -0.5/5, -1.5/5, 1.5/5},},
{{-1.5/5, -2.5/5, -1.5/5, -0.5/5, -1.5/5, -0.5/5},{0.5/5, -2.5/5, -1.5/5, 1.5/5, -0.5/5, -0.5/5},{0.5/5, -2.5/5, 0.5/5, 1.5/5, -1.5/5, 1.5/5},{-1.5/5, -2.5/5, 0.5/5, -0.5/5, -0.5/5, 1.5/5},{-2.5/5, -1.5/5, -2.5/5, -1.5/5, -0.5/5, -1.5/5},{1.5/5, -1.5/5, 1.5/5, 2.5/5, -0.5/5, 2.5/5},},
{{-1.5/5, -2.5/5, -1.5/5, -0.5/5, -0.5/5, -0.5/5},{-2.5/5, -0.5/5, -2.5/5, -1.5/5, 0.5/5, -1.5/5},{1.5/5, -0.5/5, 1.5/5, 2.5/5, 0.5/5, 2.5/5},{0.5/5, -2.5/5, 0.5/5, 1.5/5, -0.5/5, 1.5/5},{0.5/5, -2.5/5, -1.5/5, 1.5/5, -0.5/5, -0.5/5},{-1.5/5, -2.5/5, 0.5/5, -0.5/5, -0.5/5, 1.5/5},},
{{-3/6, 2/6, -3/6, 3/6, 3/6, 3/6},{2/6, -3/6, 1/6, 3/6, 2/6, 3/6},{1/6, -3/6, -3/6, 3/6, 2/6, -2/6},{-3/6, -3/6, -3/6, -2/6, 2/6, -1/6},{-3/6, -3/6, 2/6, -1/6, 2/6, 3/6},},
{{0.5/3, -1.5/3, -1.5/3, 1.5/3, 1.5/3, 1.5/3},{-1.5/3, -1.5/3, 0.5/3, 0.5/3, 1.5/3, 1.5/3},{-0.5/3, -1.5/3, -1.5/3, 0.5/3, 0.5/3, 0.5/3},{-1.5/3, -1.5/3, -0.5/3, -0.5/3, 0.5/3, 0.5/3},{-1.5/3, -1.5/3, -1.5/3, -0.5/3, -0.5/3, -0.5/3},},
{{-3/6, -3/6, 0/6, 3/6, -2/6, 3/6},{2/6, -2/6, 1/6, 3/6, 0/6, 3/6},{1/6, -2/6, 1/6, 2/6, 1/6, 3/6},{0/6, -2/6, 0/6, 1/6, 2/6, 3/6},{-1/6, -2/6, 1/6, 0/6, 1/6, 3/6},{-2/6, -2/6, 1/6, -1/6, 0/6, 3/6},{-3/6, -2/6, 1/6, -2/6, 1/6, 3/6},},
{{-4/8, 3/8, -4/8, 4/8, 4/8, 4/8},{3/8, -4/8, -4/8, 4/8, 3/8, -3/8},{-4/8, -4/8, -4/8, -3/8, 3/8, -3/8},{-4/8, -4/8, 2/8, -2/8, 3/8, 4/8},{2/8, -4/8, 2/8, 4/8, 3/8, 4/8},{-4/8, -4/8, -4/8, -2/8, 3/8, -2/8},{2/8, -4/8, -4/8, 4/8, 3/8, -2/8},},
{{-0.5/3, -1.5/3, -1.5/3, 0.5/3, 1.5/3, 1.5/3},{-1.5/3, -0.5/3, -0.5/3, 1.5/3, 0.5/3, 0.5/3},},
{{-3/6, -3/6, -3/6, 3/6, -2/6, 3/6},{-2/6, -2/6, -2/6, 2/6, -1/6, 2/6},{-1/6, -1/6, -1/6, 1/6, 0/6, 1/6},},
{{-3/6, 2/6, 1/6, 3/6, 3/6, 3/6},{-2/6, 2/6, 0/6, 2/6, 3/6, 1/6},{-1/6, 2/6, -1/6, 1/6, 3/6, 0/6},{-1/6, 1/6, 1/6, 1/6, 2/6, 3/6},{-1/6, 0/6, 2/6, 1/6, 1/6, 3/6},},
{{4/12, -6/12, -6/12, 6/12, 6/12, 6/12},{-6/12, -6/12, 4/12, 4/12, 6/12, 6/12},{-6/12, -6/12, -6/12, -4/12, 6/12, 4/12},{-4/12, -2/12, -6/12, 4/12, 0/12, 4/12},{-4/12, -3/12, -5/12, 4/12, -2/12, -3/12},{-4/12, -4/12, -5/12, 4/12, -3/12, -3/12},{-2/12, 0/12, 3/12, 3/12, 5/12, 4/12},{-4/12, 0/12, 3/12, -2/12, 3/12, 4/12},{-3/12, 3/12, 3/12, -2/12, 5/12, 4/12},{3/12, 0/12, 3/12, 4/12, 3/12, 4/12},},
{{-2.5/9, -4.5/9, -0.5/9, -1.5/9, 0.5/9, 0.5/9},{0.5/9, -4.5/9, -0.5/9, 1.5/9, 0.5/9, 0.5/9},{3.5/9, -4.5/9, -0.5/9, 4.5/9, 0.5/9, 0.5/9},{-4.5/9, 0.5/9, -1.5/9, 4.5/9, 1.5/9, 1.5/9},},
{{-3.5/9, -4.5/9, 3.5/9, -2.5/9, -0.5/9, 4.5/9},{-0.5/9, -4.5/9, 3.5/9, 0.5/9, -0.5/9, 4.5/9},{2.5/9, -4.5/9, 3.5/9, 3.5/9, -0.5/9, 4.5/9},{-4.5/9, -0.5/9, 2.5/9, 4.5/9, 0.5/9, 4.5/9},},
}
for i, nodebox in ipairs(node_boxes) do
local name = "polymer:item_"..i
polymer.node_amount = polymer.node_amount + 1
minetest.register_node(name, {
drawtype = "nodebox",
paramtype2 = "facedir",
description = "Plastic Item #"..i,
paramtype = "light",
groups = {dig_immediate=3, polymer=3, not_in_creative_inventory=1},
tiles = {"wool_red.png"},
node_box = {
type = "fixed",
fixed = nodebox,
}
})
polymer.registered_nodes[i] = name
end

Binary file not shown.

After

Width:  |  Height:  |  Size: 420 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 354 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 B

View File

@ -122,19 +122,6 @@ stairsplus.register_stair_and_slab_and_panel_and_micro("stairsplus", "desert_sto
"desert_stone",
default.node_sound_stone_defaults()
)
stairsplus.register_stair_and_slab_and_panel_and_micro("stairsplus", "glass", "default:glass",
{cracky=3,oddly_breakable_by_hand=3, not_in_creative_inventory=1},
{"default_glass.png"},
"Glass Stairs",
"Glass Corner",
"Glass Slab",
"Glass Wall",
"Glass Panel",
"Glass Microblock",
"glass",
default.node_sound_glass_defaults(),
true)
--[[
stairsplus.register_stair_and_slab_and_panel_and_micro("stairsplus", "tree", "default:tree",
@ -173,5 +160,5 @@ stairsplus.register_stair_and_slab_and_panel_and_micro("stairsplus", "copperbloc
default.node_sound_stone_defaults()
)
stairsplus.register_stair("stairsplus", "gravel", "default:gravel", {crumbly=2, falling_node=1}, {"default_gravel.png"}, "Gravel Stair", "gravel", default.node_sound_dirt_defaults(), false)
stairsplus.register_slab( "stairsplus", "gravel", "default:gravel", {crumbly=2, falling_node=1}, {"default_gravel.png"}, "Gravel Slab", "gravel", default.node_sound_dirt_defaults(), false)
stairsplus.register_stair("stairsplus", "gravel", "default:gravel", {crumbly=2, falling_node=1, not_in_creative_inventory=1}, {"default_gravel.png"}, "Gravel Stair", "gravel", default.node_sound_dirt_defaults(), false)
stairsplus.register_slab( "stairsplus", "gravel", "default:gravel", {crumbly=2, falling_node=1, not_in_creative_inventory=1}, {"default_gravel.png"}, "Gravel Slab", "gravel", default.node_sound_dirt_defaults(), false)

10
mods/volcano/README.txt Normal file
View File

@ -0,0 +1,10 @@
volcano 0.1.1 by paramat
For latest stable Minetest and back to 0.4.6
Depends default
Licenses: Code WTFPL, textures CC BY-SA. Ash is recoloured default sand by VanessaE
* To form a volcano, travel to a lava cave no lower than y = -256, this mod looks for lava up against a ceiling of stone and therefore 'under pressure', forming a conduit to the surface. Specifically the ABM looks for mese, diamond or gold ore directly above "lava source" or "lava flowing", this makes volcanos rare you may need to visit many lava caves before a conduit forms. To cheat or grow a volcano in a chosen place just place an ore above lava.
* When the conduit forms the co-ordinates are printed to the terminal, the magma will then rise fast towards the surface. ABMs are only active on nearby nodes so you need to stay nearby the conduit and follow it to the surface.
* At the surface the vent then rises slowly, emitting particles: lavabombs and ashcloud. As it rises towards a chosen maximum altitude the vent slowly widens to it's chosen maximum radius. Lava flows cool to obsidian and ash nodes. Lava spreading and cooling on water drops an obsidian or stone pillar to the lakebed to avoid the floating volcano bug.

Some files were not shown because too many files have changed in this diff Show More