Added mapgen mods, demon mob, hovercraft and experimental polymer mod.
BIN
menu/icon.png
Before Width: | Height: | Size: 303 B After Width: | Height: | Size: 369 B |
|
@ -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, _, _)
|
||||
|
|
|
@ -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!")
|
||||
]]--
|
||||
|
|
|
@ -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',''}
|
||||
}
|
||||
})
|
||||
|
||||
|
|
|
@ -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(),
|
||||
})
|
||||
|
|
Before Width: | Height: | Size: 147 B After Width: | Height: | Size: 150 B |
Before Width: | Height: | Size: 171 B After Width: | Height: | Size: 117 B |
Before Width: | Height: | Size: 171 B After Width: | Height: | Size: 117 B |
Before Width: | Height: | Size: 157 B After Width: | Height: | Size: 139 B |
|
@ -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,
|
||||
})
|
After Width: | Height: | Size: 175 B |
After Width: | Height: | Size: 201 B |
After Width: | Height: | Size: 150 B |
Before Width: | Height: | Size: 381 B After Width: | Height: | Size: 178 B |
Before Width: | Height: | Size: 351 B After Width: | Height: | Size: 179 B |
|
@ -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,
|
||||
|
|
|
@ -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=""})
|
||||
|
|
|
@ -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
|
||||
|
|
Before Width: | Height: | Size: 235 B After Width: | Height: | Size: 141 B |
Before Width: | Height: | Size: 215 B After Width: | Height: | Size: 148 B |
Before Width: | Height: | Size: 214 B After Width: | Height: | Size: 146 B |
Before Width: | Height: | Size: 197 B After Width: | Height: | Size: 141 B |
|
@ -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
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
## Generic ignorable patterns and files
|
||||
*~
|
||||
.*.swp
|
||||
*bak*
|
||||
tags
|
||||
*.vim
|
||||
|
|
@ -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
|
||||
|
|
@ -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.
|
|
@ -0,0 +1 @@
|
|||
default
|
|
@ -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
|
||||
|
|
@ -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,
|
||||
})
|
||||
|
After Width: | Height: | Size: 905 B |
After Width: | Height: | Size: 228 B |
After Width: | Height: | Size: 874 B |
After Width: | Height: | Size: 228 B |
After Width: | Height: | Size: 889 B |
After Width: | Height: | Size: 218 B |
After Width: | Height: | Size: 909 B |
After Width: | Height: | Size: 232 B |
|
@ -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
|
|
@ -0,0 +1 @@
|
|||
default
|
|
@ -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
|
|
@ -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.
|
||||
|
After Width: | Height: | Size: 174 B |
After Width: | Height: | Size: 156 B |
After Width: | Height: | Size: 139 B |
After Width: | Height: | Size: 201 B |
After Width: | Height: | Size: 139 B |
After Width: | Height: | Size: 199 B |
After Width: | Height: | Size: 207 B |
After Width: | Height: | Size: 155 B |
After Width: | Height: | Size: 611 B |
After Width: | Height: | Size: 554 B |
After Width: | Height: | Size: 460 B |
After Width: | Height: | Size: 590 B |
After Width: | Height: | Size: 670 B |
After Width: | Height: | Size: 688 B |
After Width: | Height: | Size: 147 B |
After Width: | Height: | Size: 684 B |
After Width: | Height: | Size: 491 B |
After Width: | Height: | Size: 175 B |
After Width: | Height: | Size: 160 B |
After Width: | Height: | Size: 159 B |
After Width: | Height: | Size: 860 B |
After Width: | Height: | Size: 406 B |
After Width: | Height: | Size: 490 B |
|
@ -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
|
|
@ -0,0 +1 @@
|
|||
default
|
|
@ -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
|
|
@ -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.
|
||||
|
After Width: | Height: | Size: 517 B |
|
@ -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
|
|
@ -0,0 +1 @@
|
|||
default
|
|
@ -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")
|
After Width: | Height: | Size: 509 B |
After Width: | Height: | Size: 876 B |
After Width: | Height: | Size: 226 B |
After Width: | Height: | Size: 382 B |
After Width: | Height: | Size: 556 B |
After Width: | Height: | Size: 527 B |
After Width: | Height: | Size: 128 B |
|
@ -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},},
|
||||
}
|
|
@ -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
|
|
@ -0,0 +1 @@
|
|||
default
|
|
@ -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
|
||||
})
|
|
@ -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},},
|
|
@ -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
|
After Width: | Height: | Size: 420 B |
After Width: | Height: | Size: 354 B |
After Width: | Height: | Size: 52 KiB |
After Width: | Height: | Size: 166 B |
|
@ -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)
|
||||
|
|
|
@ -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.
|