diff --git a/.gitignore b/.gitignore index 28b690a..c8f4201 100644 --- a/.gitignore +++ b/.gitignore @@ -8,8 +8,8 @@ tags *.rej ## Non-static Minetest directories /bin/ -/games/* -!/games/minimal/ + + /cache/ /textures/* !/textures/base/ diff --git a/games/minetime_game/.gitignore b/games/minetime_game/.gitignore new file mode 100644 index 0000000..a57dbc9 --- /dev/null +++ b/games/minetime_game/.gitignore @@ -0,0 +1,7 @@ +## Generic ignorable patterns and files +*~ +.*.swp +*bak* +tags +*.vim + diff --git a/games/minetime_game/README.txt b/games/minetime_game/README.txt new file mode 100644 index 0000000..9456f81 --- /dev/null +++ b/games/minetime_game/README.txt @@ -0,0 +1,52 @@ +The main game for the Minetest game engine [minetest_game] +========================================================== + +To use this game with Minetest, insert this repository as + /games/minetest_game +in the Minetest Engine. + +The Minetest Engine can be found in: + https://github.com/minetest/minetest/ + +Compatibility +-------------- +The minetest_game github master HEAD is generally compatible with the github +master HEAD of minetest. + +Additionally, when the minetest engine is tagged to be a certain version (eg. +0.4.10), minetest_game is tagged with the version too. + +When stable releases are made, minetest_game is packaged and made available in + http://minetest.net/download.php +and in case the repository has grown too much, it may be reset. In that sense, +this is not a "real" git repository. (Package maintainers please note!) + +License of source code +---------------------- +Copyright (C) 2010-2012 celeron55, Perttu Ahola +See README.txt in each mod directory for information about other authors. + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License along +with this program; if not, write to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +License of media (textures and sounds) +-------------------------------------- +Copyright (C) 2010-2012 celeron55, Perttu Ahola +See README.txt in each mod directory for information about other authors. + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +http://creativecommons.org/licenses/by-sa/3.0/ + +License of menu/header.png +Copyright (C) 2013 BlockMen CC BY-3.0 diff --git a/games/minetime_game/game.conf b/games/minetime_game/game.conf new file mode 100644 index 0000000..8b819bb --- /dev/null +++ b/games/minetime_game/game.conf @@ -0,0 +1 @@ +name = Minetest diff --git a/games/minetime_game/game_api.txt b/games/minetime_game/game_api.txt new file mode 100644 index 0000000..4eb2d78 --- /dev/null +++ b/games/minetime_game/game_api.txt @@ -0,0 +1,201 @@ +minetest_game API +====================== +GitHub Repo: https://github.com/minetest/minetest_game + +Introduction +------------ +The minetest_game gamemode offers multiple new possibilities in addition to Minetest's built-in API, allowing you to +add new plants to farming mod, buckets for new liquids, new stairs and custom panes. +For information on the Minetest API, visit https://github.com/minetest/minetest/blob/master/doc/lua_api.txt +Please note: + [XYZ] refers to a section the Minetest API + [#ABC] refers to a section in this document + ^ Explanation for line above + +Bucket API +---------- +The bucket API allows registering new types of buckets for non-default liquids. + + bucket.register_liquid( + "default:lava_source", -- Source node name + "default:lava_flowing", -- Flowing node name + "bucket:bucket_lava", -- Name to be used for bucket + "bucket_lava.png", -- Bucket texture (for wielditem and inventory_image) + "Lava Bucket" -- Bucket description + ) + +Doors API +--------- +The doors mod allows modders to register custom doors. + + doors.register_door(name, def) + ^ name: "Door name" + ^ def: See [#Door definition] + +#Door definition +---------------- +{ + description = "Door description", + inventory_image = "mod_door_inv.png", + groups = {group = 1}, + tiles_bottom: [Tile definition], + ^ the tiles of the bottom part of the door {front, side} + tiles_top: [Tile definition], + ^ the tiles of the bottom part of the door {front, side} + node_box_bottom = regular nodebox, see [Node boxes], OPTIONAL, + node_box_top = regular nodebox, see [Node boxes], OPTIONAL, + selection_box_bottom = regular nodebox, see [Node boxes], OPTIONAL, + selection_box_top = regular nodebox, see [Node boxes], OPTIONAL, + sound_open_door = sound play for open door, OPTIONAL, + sound_close_door = sound play for close door, OPTIONAL, + only_placer_can_open = true/false, + ^ If true, only placer can open the door (locked for others) +} + +Farming API +----------- +The farming API allows you to easily register plants and hoes. + +farming.register_hoe(name, hoe definition) + -> Register a new hoe, see [#hoe definition] + +farming.register_plant(name, Plant definition) + -> Register a new growing plant, see [#Plant definition] + +#Hoe Definition +--------------- +{ + description = "", -- Description for tooltip + inventory_image = "unknown_item.png", -- Image to be used as wield- and inventory image + max_uses = 30, -- Uses until destroyed + recipe = { -- Craft recipe + {"air", "air", "air"}, + {"", "group:stick"}, + {"", "group:stick"}, + } +} + +#Plant definition +----------------- +{ + description = "", -- Description of seed item + inventory_image = "unknown_item.png", -- Image to be used as seed's wield- and inventory image + steps = 8, -- How many steps the plant has to grow, until it can be harvested + ^ Always provide a plant texture for ech step, format: modname_plantname_i.png (i = stepnumber) + minlight = 13, -- Minimum light to grow + maxlight = LIGHT_MAX -- Maximum light to grow +} + +Stairs API +---------- +The stairs API lets you register stairs and slabs and ensures that they are registered the same way as those +delivered with minetest_game, to keep them compatible with other mods. + +stairs.register_stair(subname, recipeitem, groups, images, description, sounds) + -> Registers a stair. + -> subname: Basically the material name (e.g. cobble) used for the stair name. Nodename pattern: "stairs:stair_subname" + -> recipeitem: Item used in the craft recipe, e.g. "default:cobble" + -> groups: see [Known damage and digging time defining groups] + -> images: see [Tile definition] + -> description: used for the description field in the stair's definition + -> sounds: see [#Default sounds] + +stairs.register_slab(subname, recipeitem, groups, images, description, sounds) + -> Registers a slabs + -> subname: Basically the material name (e.g. cobble) used for the stair name. Nodename pattern: "stairs:stair_subname" + -> recipeitem: Item used in the craft recipe, e.g. "default:cobble" + -> groups: see [Known damage and digging time defining groups] + -> images: see [Tile definition] + -> description: used for the description field in the stair's definition + -> sounds: see [#Default sounds] + +stairs.register_stair_and_slab(subname, recipeitem, groups, images, desc_stair, desc_slab, sounds) + -> A wrapper for stairs.register_stair and stairs.register_slab + -> Uses almost the same arguments as stairs.register_stair + -> desc_stair: Description for stair node + -> desc_slab: Description for slab node + +Xpanes API +---------- +Creates panes that automatically connect to each other + +xpanes.register_pane(subname, def) + -> subname: used for nodename. Result: "xpanes:subname_{1..16}" + -> def: See [#Pane definition] + +#Pane definition +---------------- +{ + textures = {"texture_Bottom_top", "texture_left_right", "texture_front_back"}, + ^ More tiles aren't supported + groups = {group = rating}, + ^ Uses the known node groups, see [Known damage and digging time defining groups] + sounds = SoundSpec, + ^ See [#Default sounds] + recipe = {{"","","","","","","","",""}}, + ^ Recipe field only + on_construct = function(pos) + update_pane(pos, "pane") + end, + ^ Required to handle rotation correctly +} + +Default sounds +-------------- +Sounds inside the default table can be used within the sounds field of node definitions. + +default.node_sound_defaults() +default.node_sound_stone_defaults() +default.node_sound_dirt_defaults() +default.node_sound_sand_defaults() +default.node_sound_wood_defaults() +default.node_sound_leaves_defaults() +default.node_sound_glass_defaults() + +Player API +---------- +The player API can register player models and update the player's appearence + +default.player_register_model(name, def) +^ Register a new model to be used by players. + -> name: model filename such as "character.x", "foo.b3d", etc. + -> def: See [#Model definition] + +default.registered_player_models[name] +^ Get a model's definition + -> see [#Model definition] + +default.player_set_model(player, model_name) +^ Change a player's model + -> player: PlayerRef + -> model_name: model registered with player_register_model() + +default.player_set_animation(player, anim_name [, speed]) +^ Applies an animation to a player + -> anim_name: name of the animation. + -> speed: frames per second. If nil, default from the model is used + +default.player_set_textures(player, textures) +^ Sets player textures + -> player: PlayerRef + -> textures: array of textures + ^ If is nil, the default textures from the model def are used + +default.player_get_animation(player) +^ Returns a table containing fields "model", "textures" and "animation". +^ Any of the fields of the returned table may be nil. + -> player: PlayerRef + +Model Definition +---------------- +{ + animation_speed = 30, -- Default animation speed, in FPS. + textures = {"character.png", }, -- Default array of textures. + visual_size = {x=1, y=1,}, -- Used to scale the model. + animations = { + -- = { x=, y=, }, + foo = { x= 0, y=19, }, + bar = { x=20, y=39, }, + -- ... + }, +} diff --git a/games/minetime_game/menu/header.png b/games/minetime_game/menu/header.png new file mode 100644 index 0000000..c8a878e Binary files /dev/null and b/games/minetime_game/menu/header.png differ diff --git a/games/minetime_game/menu/icon.png b/games/minetime_game/menu/icon.png new file mode 100644 index 0000000..c541558 Binary files /dev/null and b/games/minetime_game/menu/icon.png differ diff --git a/games/minetime_game/mods/boats/README.txt b/games/minetime_game/mods/boats/README.txt new file mode 100644 index 0000000..5100481 --- /dev/null +++ b/games/minetime_game/mods/boats/README.txt @@ -0,0 +1,16 @@ +Minetest 0.4 mod: boats +======================= +by PilzAdam, slightly modified for NeXt + +License of source code: +----------------------- +WTFPL + +License of media (textures and sounds): +--------------------------------------- +WTFPL + +Authors of media files: +----------------------- +textures: Zeg9 +model: thetoon and Zeg9, modified by PavelS(SokolovPavel) diff --git a/games/minimal/mods/stairs/depends.txt b/games/minetime_game/mods/boats/depends.txt similarity index 100% rename from games/minimal/mods/stairs/depends.txt rename to games/minetime_game/mods/boats/depends.txt diff --git a/games/minetime_game/mods/boats/init.lua b/games/minetime_game/mods/boats/init.lua new file mode 100644 index 0000000..470b381 --- /dev/null +++ b/games/minetime_game/mods/boats/init.lua @@ -0,0 +1,211 @@ + +-- +-- Helper functions +-- + +local function is_water(pos) + local nn = minetest.get_node(pos).name + return minetest.get_item_group(nn, "water") ~= 0 +end + +local function get_sign(i) + if i == 0 then + return 0 + else + return i / math.abs(i) + end +end + +local function get_velocity(v, yaw, y) + local x = -math.sin(yaw) * v + local z = math.cos(yaw) * v + return {x = x, y = y, z = z} +end + +local function get_v(v) + return math.sqrt(v.x ^ 2 + v.z ^ 2) +end + +-- +-- Boat entity +-- + +local boat = { + physical = true, + collisionbox = {-0.6, -0.4, -0.6, 0.6, 0.3, 0.6}, + visual = "mesh", + mesh = "boat.x", + textures = {"default_junglewood.png"}, + + driver = nil, + v = 0, + last_v = 0, + removed = false +} + +function boat.on_rightclick(self, clicker) + if not clicker or not clicker:is_player() then + return + end + local name = clicker:get_player_name() + if self.driver and clicker == self.driver then + self.driver = nil + clicker:set_detach() + default.player_attached[name] = false + default.player_set_animation(clicker, "stand" , 30) + elseif not self.driver then + self.driver = clicker + clicker:set_attach(self.object, "", {x = 0, y = 11, z = -3}, {x = 0, y = 0, z = 0}) + default.player_attached[name] = true + minetest.after(0.2, function() + default.player_set_animation(clicker, "sit" , 30) + end) + self.object:setyaw(clicker:get_look_yaw() - math.pi / 2) + end +end + +function boat.on_activate(self, staticdata, dtime_s) + self.object:set_armor_groups({immortal = 1}) + if staticdata then + self.v = tonumber(staticdata) + end + self.last_v = self.v +end + +function boat.get_staticdata(self) + return tostring(self.v) +end + +function boat.on_punch(self, puncher, time_from_last_punch, tool_capabilities, direction) + if not puncher or not puncher:is_player() or self.removed then + return + end + puncher:set_detach() + default.player_attached[puncher:get_player_name()] = false + + self.removed = true + -- delay remove to ensure player is detached + minetest.after(0.1, function() + self.object:remove() + end) + if not minetest.setting_getbool("creative_mode") then + puncher:get_inventory():add_item("main", "boats:boat") + end +end + +function boat.on_step(self, dtime) + self.v = get_v(self.object:getvelocity()) * get_sign(self.v) + if self.driver then + local ctrl = self.driver:get_player_control() + local yaw = self.object:getyaw() + if ctrl.up then + self.v = self.v + 0.1 + end + if ctrl.down then + self.v = self.v - 0.08 + end + if ctrl.left then + if ctrl.down then + self.object:setyaw(yaw - (1 + dtime) * 0.03) + else + self.object:setyaw(yaw + (1 + dtime) * 0.03) + end + end + if ctrl.right then + if ctrl.down then + self.object:setyaw(yaw + (1 + dtime) * 0.03) + else + self.object:setyaw(yaw - (1 + dtime) * 0.03) + end + end + end + local velo = self.object:getvelocity() + if self.v == 0 and velo.x == 0 and velo.y == 0 and velo.z == 0 then + return + end + local s = get_sign(self.v) + self.v = self.v - 0.02 * s + if s ~= get_sign(self.v) then + self.object:setvelocity({x = 0, y = 0, z = 0}) + self.v = 0 + return + end + if math.abs(self.v) > 4.5 then + self.v = 4.5 * get_sign(self.v) + end + + local p = self.object:getpos() + p.y = p.y - 0.5 + local new_velo = {x = 0, y = 0, z = 0} + local new_acce = {x = 0, y = 0, z = 0} + if not is_water(p) then + local nodedef = minetest.registered_nodes[minetest.get_node(p).name] + if (not nodedef) or nodedef.walkable then + self.v = 0 + new_acce = {x = 0, y = 1, z = 0} + else + new_acce = {x = 0, y = -9.8, z = 0} -- freefall in air -9.81 + end + new_velo = get_velocity(self.v, self.object:getyaw(), self.object:getvelocity().y) + else + p.y = p.y + 1 + if is_water(p) then + new_acce = {x = 0, y = 3, z = 0} + local y = self.object:getvelocity().y + if y > 2 then + y = 2 + end + if y < 0 then + self.object:setacceleration({x = 0, y = 10, z = 0}) + end + new_velo = get_velocity(self.v, self.object:getyaw(), y) + else + new_acce = {x = 0, y = 0, z = 0} + if math.abs(self.object:getvelocity().y) <= 2 then + local pos = self.object:getpos() + pos.y = math.floor(pos.y) + 0.5 + self.object:setpos(pos) + new_velo = get_velocity(self.v, self.object:getyaw(), 0) + else + new_velo = get_velocity(self.v, self.object:getyaw(), self.object:getvelocity().y) + end + end + end + self.object:setvelocity(new_velo) + self.object:setacceleration(new_acce) +end + +minetest.register_entity("boats:boat", boat) + + +minetest.register_craftitem("boats:boat", { + description = "Boat", + inventory_image = "boat_inventory.png", + wield_image = "boat_wield.png", + wield_scale = {x = 2, y = 2, z = 1}, + liquids_pointable = true, + + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type ~= "node" then + return + end + if not is_water(pointed_thing.under) then + return + end + pointed_thing.under.y = pointed_thing.under.y + 0.5 + minetest.add_entity(pointed_thing.under, "boats:boat") + if not minetest.setting_getbool("creative_mode") then + itemstack:take_item() + end + return itemstack + end, +}) + +minetest.register_craft({ + output = "boats:boat", + recipe = { + {"", "", "" }, + {"group:wood", "", "group:wood"}, + {"group:wood", "group:wood", "group:wood"}, + }, +}) diff --git a/games/minetime_game/mods/boats/models/boat.x b/games/minetime_game/mods/boats/models/boat.x new file mode 100644 index 0000000..581998e --- /dev/null +++ b/games/minetime_game/mods/boats/models/boat.x @@ -0,0 +1,11110 @@ +xof 0303txt 0032 + +Frame Root { + FrameTransformMatrix { + 0.000000, 0.000000, 1.000000, 0.000000, + -1.000000, 0.000000, 0.000000, 0.000000, + 0.000000, 1.000000, 0.000000, 0.000000, + 0.000000, 0.000000, 0.000000, 1.000000;; + } + Frame Plane { + FrameTransformMatrix { + 0.000000,-9.104475, 0.000000, 0.000000, + 9.104475, 0.000000, 0.000000, 0.000000, + 0.000000, 0.000000, 9.104475, 0.000000, + -0.310965, 0.042220,-1.967153, 1.000000;; + } + Mesh { //Plane_000 Mesh + 2952; + 0.750000;-0.500000;-0.117178;, + 0.750000;-0.625000;-0.117178;, + 0.750000;-0.625000; 0.000000;, + 0.750000;-0.500000; 0.000000;, + -0.625000;-0.875000;-0.117178;, + -0.625000;-0.750000;-0.117178;, + -0.625000;-0.750000; 0.000000;, + -0.625000;-0.875000; 0.000000;, + 0.250000;-0.625000;-0.117178;, + 0.250000;-0.750000;-0.117178;, + 0.250000;-0.750000; 0.000000;, + 0.250000;-0.625000; 0.000000;, + -0.250000;-0.375000;-0.117178;, + -0.250000;-0.500000;-0.117178;, + -0.250000;-0.500000; 0.000000;, + -0.250000;-0.375000; 0.000000;, + -0.250000; 0.750000;-0.117178;, + -0.250000; 0.625000;-0.117178;, + -0.250000; 0.625000; 0.000000;, + -0.250000; 0.750000; 0.000000;, + 0.375000; 0.750000;-0.117178;, + 0.375000; 0.875000;-0.117178;, + 0.375000; 0.875000; 0.000000;, + 0.375000; 0.750000; 0.000000;, + -0.500000; 1.000000;-0.117178;, + -0.375000; 1.000000;-0.117178;, + -0.375000; 1.000000; 0.000000;, + -0.500000; 1.000000; 0.000000;, + -0.125000; 0.250000;-0.117178;, + -0.125000; 0.375000;-0.117178;, + -0.125000; 0.375000; 0.000000;, + -0.125000; 0.250000; 0.000000;, + -0.125000; 1.000000;-0.117178;, + 0.000000; 1.000000;-0.117178;, + 0.000000; 1.000000; 0.000000;, + -0.125000; 1.000000; 0.000000;, + 0.375000;-0.250000;-0.117178;, + 0.375000;-0.125000;-0.117178;, + 0.375000;-0.125000; 0.000000;, + 0.375000;-0.250000; 0.000000;, + 0.750000; 0.000000;-0.117178;, + 0.750000;-0.125000;-0.117178;, + 0.750000;-0.125000; 0.000000;, + 0.750000; 0.000000; 0.000000;, + -0.250000;-0.125000;-0.117178;, + -0.250000;-0.250000;-0.117178;, + -0.250000;-0.250000; 0.000000;, + -0.250000;-0.125000; 0.000000;, + 0.375000; 0.375000;-0.117178;, + 0.375000; 0.500000;-0.117178;, + 0.375000; 0.500000; 0.000000;, + 0.375000; 0.375000; 0.000000;, + 0.750000; 0.250000;-0.117178;, + 0.750000; 0.125000;-0.117178;, + 0.750000; 0.125000; 0.000000;, + 0.750000; 0.250000; 0.000000;, + -0.250000;-1.000000;-0.117178;, + -0.375000;-1.000000;-0.117178;, + -0.375000;-1.000000; 0.000000;, + -0.250000;-1.000000; 0.000000;, + -0.625000;-0.125000;-0.117178;, + -0.625000; 0.000000;-0.117178;, + -0.625000; 0.000000; 0.000000;, + -0.625000;-0.125000; 0.000000;, + 0.375000;-0.625000;-0.117178;, + 0.375000;-0.500000;-0.117178;, + 0.375000;-0.500000; 0.000000;, + 0.375000;-0.625000; 0.000000;, + 0.250000; 1.000000;-0.117178;, + 0.250000; 0.875000;-0.117178;, + 0.250000; 0.875000; 0.000000;, + 0.250000; 1.000000; 0.000000;, + -0.125000; 0.875000; 0.000000;, + -0.125000; 1.000000; 0.000000;, + -0.250000; 1.000000; 0.000000;, + -0.250000; 0.875000; 0.000000;, + -0.125000; 0.750000; 0.000000;, + -0.125000; 0.875000; 0.000000;, + -0.250000; 0.875000; 0.000000;, + -0.250000; 0.750000; 0.000000;, + -0.625000; 0.500000;-0.117178;, + -0.625000; 0.625000;-0.117178;, + -0.625000; 0.625000; 0.000000;, + -0.625000; 0.500000; 0.000000;, + -0.125000;-0.125000; 0.000000;, + -0.125000; 0.000000; 0.000000;, + -0.250000; 0.000000; 0.000000;, + -0.250000;-0.125000; 0.000000;, + -0.125000;-0.250000; 0.000000;, + -0.125000;-0.125000; 0.000000;, + -0.250000;-0.125000; 0.000000;, + -0.250000;-0.250000; 0.000000;, + -0.125000;-0.375000;-0.117178;, + -0.125000;-0.250000;-0.117178;, + -0.125000;-0.250000; 0.000000;, + -0.125000;-0.375000; 0.000000;, + 0.375000; 0.875000; 0.000000;, + 0.375000; 1.000000; 0.000000;, + 0.250000; 1.000000; 0.000000;, + 0.250000; 0.875000; 0.000000;, + 0.375000; 0.750000; 0.000000;, + 0.375000; 0.875000; 0.000000;, + 0.250000; 0.875000; 0.000000;, + 0.250000; 0.750000; 0.000000;, + 0.250000;-0.375000;-0.117178;, + 0.250000;-0.500000;-0.117178;, + 0.250000;-0.500000; 0.000000;, + 0.250000;-0.375000; 0.000000;, + 0.375000; 0.375000; 0.000000;, + 0.375000; 0.500000; 0.000000;, + 0.250000; 0.500000; 0.000000;, + 0.250000; 0.375000; 0.000000;, + 0.375000; 0.250000; 0.000000;, + 0.375000; 0.375000; 0.000000;, + 0.250000; 0.375000; 0.000000;, + 0.250000; 0.250000; 0.000000;, + -0.125000; 0.000000;-0.117178;, + -0.125000; 0.125000;-0.117178;, + -0.125000; 0.125000; 0.000000;, + -0.125000; 0.000000; 0.000000;, + -0.625000; 0.875000; 0.000000;, + -0.625000; 1.000000; 0.000000;, + -0.750000; 1.000000; 0.000000;, + -0.750000; 0.875000; 0.000000;, + -0.625000; 0.750000; 0.000000;, + -0.625000; 0.875000; 0.000000;, + -0.750000; 0.875000; 0.000000;, + -0.750000; 0.750000; 0.000000;, + -0.250000;-0.750000;-0.117178;, + -0.250000;-0.875000;-0.117178;, + -0.250000;-0.875000; 0.000000;, + -0.250000;-0.750000; 0.000000;, + -0.625000; 0.375000; 0.000000;, + -0.625000; 0.500000; 0.000000;, + -0.750000; 0.500000; 0.000000;, + -0.750000; 0.375000; 0.000000;, + -0.625000; 0.250000; 0.000000;, + -0.625000; 0.375000; 0.000000;, + -0.750000; 0.375000; 0.000000;, + -0.750000; 0.250000; 0.000000;, + 0.750000; 0.625000;-0.117178;, + 0.750000; 0.500000;-0.117178;, + 0.750000; 0.500000; 0.000000;, + 0.750000; 0.625000; 0.000000;, + -0.125000; 0.375000; 0.000000;, + -0.125000; 0.500000; 0.000000;, + -0.250000; 0.500000; 0.000000;, + -0.250000; 0.375000; 0.000000;, + -0.125000; 0.250000; 0.000000;, + -0.125000; 0.375000; 0.000000;, + -0.250000; 0.375000; 0.000000;, + -0.250000; 0.250000; 0.000000;, + 0.125000; 1.000000;-0.117178;, + 0.250000; 1.000000;-0.117178;, + 0.250000; 1.000000; 0.000000;, + 0.125000; 1.000000; 0.000000;, + -0.625000;-0.125000; 0.000000;, + -0.625000; 0.000000; 0.000000;, + -0.750000; 0.000000; 0.000000;, + -0.750000;-0.125000; 0.000000;, + -0.625000;-0.250000; 0.000000;, + -0.625000;-0.125000; 0.000000;, + -0.750000;-0.125000; 0.000000;, + -0.750000;-0.250000; 0.000000;, + 0.375000; 0.125000;-0.117178;, + 0.375000; 0.250000;-0.117178;, + 0.375000; 0.250000; 0.000000;, + 0.375000; 0.125000; 0.000000;, + -0.625000;-0.625000; 0.000000;, + -0.625000;-0.500000; 0.000000;, + -0.750000;-0.500000; 0.000000;, + -0.750000;-0.625000; 0.000000;, + -0.625000;-0.750000; 0.000000;, + -0.625000;-0.625000; 0.000000;, + -0.750000;-0.625000; 0.000000;, + -0.750000;-0.750000; 0.000000;, + 0.625000;-1.000000;-0.117178;, + 0.500000;-1.000000;-0.117178;, + 0.500000;-1.000000; 0.000000;, + 0.625000;-1.000000; 0.000000;, + -0.125000;-0.625000; 0.000000;, + -0.125000;-0.500000; 0.000000;, + -0.250000;-0.500000; 0.000000;, + -0.250000;-0.625000; 0.000000;, + -0.125000;-0.750000; 0.000000;, + -0.125000;-0.625000; 0.000000;, + -0.250000;-0.625000; 0.000000;, + -0.250000;-0.750000; 0.000000;, + 0.375000;-0.500000;-0.117178;, + 0.375000;-0.375000;-0.117178;, + 0.375000;-0.375000; 0.000000;, + 0.375000;-0.500000; 0.000000;, + 0.375000;-0.125000; 0.000000;, + 0.375000; 0.000000; 0.000000;, + 0.250000; 0.000000; 0.000000;, + 0.250000;-0.125000; 0.000000;, + 0.375000;-0.250000; 0.000000;, + 0.375000;-0.125000; 0.000000;, + 0.250000;-0.125000; 0.000000;, + 0.250000;-0.250000; 0.000000;, + -0.625000; 0.125000;-0.117178;, + -0.625000; 0.250000;-0.117178;, + -0.625000; 0.250000; 0.000000;, + -0.625000; 0.125000; 0.000000;, + 0.375000;-0.625000; 0.000000;, + 0.375000;-0.500000; 0.000000;, + 0.250000;-0.500000; 0.000000;, + 0.250000;-0.625000; 0.000000;, + 0.375000;-0.750000; 0.000000;, + 0.375000;-0.625000; 0.000000;, + 0.250000;-0.625000; 0.000000;, + 0.250000;-0.750000; 0.000000;, + 0.250000;-0.500000;-0.117178;, + 0.250000;-0.625000;-0.117178;, + 0.250000;-0.625000; 0.000000;, + 0.250000;-0.500000; 0.000000;, + -0.625000;-0.375000;-0.117178;, + -0.625000;-0.250000;-0.117178;, + -0.625000;-0.250000; 0.000000;, + -0.625000;-0.375000; 0.000000;, + 0.250000;-0.125000;-0.117178;, + 0.250000;-0.250000;-0.117178;, + 0.250000;-0.250000; 0.000000;, + 0.250000;-0.125000; 0.000000;, + -0.250000; 0.625000;-0.117178;, + -0.250000; 0.500000;-0.117178;, + -0.250000; 0.500000; 0.000000;, + -0.250000; 0.625000; 0.000000;, + 0.750000; 0.875000;-0.117178;, + 0.750000; 0.750000;-0.117178;, + 0.750000; 0.750000; 0.000000;, + 0.750000; 0.875000; 0.000000;, + -0.125000;-0.875000;-0.117178;, + -0.125000;-0.750000;-0.117178;, + -0.125000;-0.750000; 0.000000;, + -0.125000;-0.875000; 0.000000;, + -0.125000;-0.250000;-0.117178;, + -0.125000;-0.125000;-0.117178;, + -0.125000;-0.125000; 0.000000;, + -0.125000;-0.250000; 0.000000;, + -0.625000; 0.250000;-0.117178;, + -0.625000; 0.375000;-0.117178;, + -0.625000; 0.375000; 0.000000;, + -0.625000; 0.250000; 0.000000;, + -0.250000; 0.250000;-0.117178;, + -0.250000; 0.125000;-0.117178;, + -0.250000; 0.125000; 0.000000;, + -0.250000; 0.250000; 0.000000;, + -0.125000;-0.750000;-0.117178;, + -0.125000;-0.625000;-0.117178;, + -0.125000;-0.625000; 0.000000;, + -0.125000;-0.750000; 0.000000;, + -0.250000; 0.000000;-0.117178;, + -0.250000;-0.125000;-0.117178;, + -0.250000;-0.125000; 0.000000;, + -0.250000; 0.000000; 0.000000;, + -0.250000; 0.875000;-0.117178;, + -0.250000; 0.750000;-0.117178;, + -0.250000; 0.750000; 0.000000;, + -0.250000; 0.875000; 0.000000;, + 0.375000; 0.875000;-0.117178;, + 0.375000; 1.000000;-0.117178;, + 0.375000; 1.000000; 0.000000;, + 0.375000; 0.875000; 0.000000;, + -0.125000; 0.625000; 0.000000;, + -0.125000; 0.750000; 0.000000;, + -0.250000; 0.750000; 0.000000;, + -0.250000; 0.625000; 0.000000;, + -0.125000; 0.500000; 0.000000;, + -0.125000; 0.625000; 0.000000;, + -0.250000; 0.625000; 0.000000;, + -0.250000; 0.500000; 0.000000;, + 0.750000; 0.125000;-0.117178;, + 0.750000; 0.000000;-0.117178;, + 0.750000; 0.000000; 0.000000;, + 0.750000; 0.125000; 0.000000;, + 0.250000; 0.250000;-0.117178;, + 0.250000; 0.125000;-0.117178;, + 0.250000; 0.125000; 0.000000;, + 0.250000; 0.250000; 0.000000;, + -0.375000;-1.000000;-0.117178;, + -0.500000;-1.000000;-0.117178;, + -0.500000;-1.000000; 0.000000;, + -0.375000;-1.000000; 0.000000;, + -0.125000; 0.375000;-0.117178;, + -0.125000; 0.500000;-0.117178;, + -0.125000; 0.500000; 0.000000;, + -0.125000; 0.375000; 0.000000;, + 0.000000;-1.000000;-0.117178;, + -0.125000;-1.000000;-0.117178;, + -0.125000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.375000;-0.125000;-0.117178;, + 0.375000; 0.000000;-0.117178;, + 0.375000; 0.000000; 0.000000;, + 0.375000;-0.125000; 0.000000;, + 0.750000; 0.375000;-0.117178;, + 0.750000; 0.250000;-0.117178;, + 0.750000; 0.250000; 0.000000;, + 0.750000; 0.375000; 0.000000;, + -0.125000;-0.375000; 0.000000;, + -0.125000;-0.250000; 0.000000;, + -0.250000;-0.250000; 0.000000;, + -0.250000;-0.375000; 0.000000;, + -0.125000;-0.500000; 0.000000;, + -0.125000;-0.375000; 0.000000;, + -0.250000;-0.375000; 0.000000;, + -0.250000;-0.500000; 0.000000;, + 0.375000; 1.000000;-0.117178;, + 0.500000; 1.000000;-0.117178;, + 0.500000; 1.000000; 0.000000;, + 0.375000; 1.000000; 0.000000;, + -0.250000;-0.875000;-0.117178;, + -0.250000;-1.000000;-0.117178;, + -0.250000;-1.000000; 0.000000;, + -0.250000;-0.875000; 0.000000;, + 0.000000; 1.000000;-0.117178;, + 0.125000; 1.000000;-0.117178;, + 0.125000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.750000;-0.750000;-0.117178;, + 0.750000;-0.875000;-0.117178;, + 0.750000;-0.875000; 0.000000;, + 0.750000;-0.750000; 0.000000;, + -0.625000; 0.625000;-0.117178;, + -0.625000; 0.750000;-0.117178;, + -0.625000; 0.750000; 0.000000;, + -0.625000; 0.625000; 0.000000;, + 0.375000;-1.000000;-0.117178;, + 0.375000;-0.875000;-0.117178;, + 0.375000;-0.875000; 0.000000;, + 0.375000;-1.000000; 0.000000;, + 0.250000; 0.000000;-0.117178;, + 0.250000;-0.125000;-0.117178;, + 0.250000;-0.125000; 0.000000;, + 0.250000; 0.000000; 0.000000;, + -0.125000; 0.125000;-0.117178;, + -0.125000; 0.250000;-0.117178;, + -0.125000; 0.250000; 0.000000;, + -0.125000; 0.125000; 0.000000;, + -0.250000;-0.625000;-0.117178;, + -0.250000;-0.750000;-0.117178;, + -0.250000;-0.750000; 0.000000;, + -0.250000;-0.625000; 0.000000;, + 0.750000; 1.000000;-0.117178;, + 0.750000; 0.875000;-0.117178;, + 0.750000; 0.875000; 0.000000;, + 0.750000; 1.000000; 0.000000;, + 0.250000;-1.000000;-0.117178;, + 0.125000;-1.000000;-0.117178;, + 0.125000;-1.000000; 0.000000;, + 0.250000;-1.000000; 0.000000;, + -0.125000; 0.750000;-0.117178;, + -0.125000; 0.875000;-0.117178;, + -0.125000; 0.875000; 0.000000;, + -0.125000; 0.750000; 0.000000;, + 0.750000;-0.250000;-0.117178;, + 0.750000;-0.375000;-0.117178;, + 0.750000;-0.375000; 0.000000;, + 0.750000;-0.250000; 0.000000;, + 0.375000; 0.625000; 0.000000;, + 0.375000; 0.750000; 0.000000;, + 0.250000; 0.750000; 0.000000;, + 0.250000; 0.625000; 0.000000;, + 0.375000; 0.500000; 0.000000;, + 0.375000; 0.625000; 0.000000;, + 0.250000; 0.625000; 0.000000;, + 0.250000; 0.500000; 0.000000;, + -0.625000; 1.000000;-0.117178;, + -0.500000; 1.000000;-0.117178;, + -0.500000; 1.000000; 0.000000;, + -0.625000; 1.000000; 0.000000;, + 0.375000;-0.375000;-0.117178;, + 0.375000;-0.250000;-0.117178;, + 0.375000;-0.250000; 0.000000;, + 0.375000;-0.375000; 0.000000;, + -0.625000; 0.750000;-0.117178;, + -0.625000; 0.875000;-0.117178;, + -0.625000; 0.875000; 0.000000;, + -0.625000; 0.750000; 0.000000;, + -0.250000; 0.125000;-0.117178;, + -0.250000; 0.000000;-0.117178;, + -0.250000; 0.000000; 0.000000;, + -0.250000; 0.125000; 0.000000;, + -0.625000;-0.750000;-0.117178;, + -0.625000;-0.625000;-0.117178;, + -0.625000;-0.625000; 0.000000;, + -0.625000;-0.750000; 0.000000;, + -0.250000; 1.000000;-0.117178;, + -0.250000; 0.875000;-0.117178;, + -0.250000; 0.875000; 0.000000;, + -0.250000; 1.000000; 0.000000;, + -0.125000;-0.125000;-0.117178;, + -0.125000; 0.000000;-0.117178;, + -0.125000; 0.000000; 0.000000;, + -0.125000;-0.125000; 0.000000;, + 0.375000; 0.125000; 0.000000;, + 0.375000; 0.250000; 0.000000;, + 0.250000; 0.250000; 0.000000;, + 0.250000; 0.125000; 0.000000;, + 0.375000; 0.000000; 0.000000;, + 0.375000; 0.125000; 0.000000;, + 0.250000; 0.125000; 0.000000;, + 0.250000; 0.000000; 0.000000;, + 0.250000; 0.125000;-0.117178;, + 0.250000; 0.000000;-0.117178;, + 0.250000; 0.000000; 0.000000;, + 0.250000; 0.125000; 0.000000;, + 0.250000; 0.750000;-0.117178;, + 0.250000; 0.625000;-0.117178;, + 0.250000; 0.625000; 0.000000;, + 0.250000; 0.750000; 0.000000;, + -0.125000; 0.500000;-0.117178;, + -0.125000; 0.625000;-0.117178;, + -0.125000; 0.625000; 0.000000;, + -0.125000; 0.500000; 0.000000;, + -0.625000; 0.375000;-0.117178;, + -0.625000; 0.500000;-0.117178;, + -0.625000; 0.500000; 0.000000;, + -0.625000; 0.375000; 0.000000;, + -0.250000; 0.375000;-0.117178;, + -0.250000; 0.250000;-0.117178;, + -0.250000; 0.250000; 0.000000;, + -0.250000; 0.375000; 0.000000;, + -0.125000;-0.625000;-0.117178;, + -0.125000;-0.500000;-0.117178;, + -0.125000;-0.500000; 0.000000;, + -0.125000;-0.625000; 0.000000;, + 0.375000; 0.500000;-0.117178;, + 0.375000; 0.625000;-0.117178;, + 0.375000; 0.625000; 0.000000;, + 0.375000; 0.500000; 0.000000;, + -0.625000; 0.625000; 0.000000;, + -0.625000; 0.750000; 0.000000;, + -0.750000; 0.750000; 0.000000;, + -0.750000; 0.625000; 0.000000;, + -0.625000; 0.500000; 0.000000;, + -0.625000; 0.625000; 0.000000;, + -0.750000; 0.625000; 0.000000;, + -0.750000; 0.500000; 0.000000;, + 0.750000; 0.500000;-0.117178;, + 0.750000; 0.375000;-0.117178;, + 0.750000; 0.375000; 0.000000;, + 0.750000; 0.500000; 0.000000;, + -0.625000; 0.125000; 0.000000;, + -0.625000; 0.250000; 0.000000;, + -0.750000; 0.250000; 0.000000;, + -0.750000; 0.125000; 0.000000;, + -0.625000; 0.000000; 0.000000;, + -0.625000; 0.125000; 0.000000;, + -0.750000; 0.125000; 0.000000;, + -0.750000; 0.000000; 0.000000;, + 0.250000; 0.375000;-0.117178;, + 0.250000; 0.250000;-0.117178;, + 0.250000; 0.250000; 0.000000;, + 0.250000; 0.375000; 0.000000;, + 0.625000; 1.000000;-0.117178;, + 0.750000; 1.000000;-0.117178;, + 0.750000; 1.000000; 0.000000;, + 0.625000; 1.000000; 0.000000;, + 0.750000;-0.875000;-0.117178;, + 0.750000;-1.000000;-0.117178;, + 0.750000;-1.000000; 0.000000;, + 0.750000;-0.875000; 0.000000;, + -0.625000;-1.000000;-0.117178;, + -0.625000;-0.875000;-0.117178;, + -0.625000;-0.875000; 0.000000;, + -0.625000;-1.000000; 0.000000;, + 0.250000;-0.750000;-0.117178;, + 0.250000;-0.875000;-0.117178;, + 0.250000;-0.875000; 0.000000;, + 0.250000;-0.750000; 0.000000;, + 0.500000;-1.000000;-0.117178;, + 0.375000;-1.000000;-0.117178;, + 0.375000;-1.000000; 0.000000;, + 0.500000;-1.000000; 0.000000;, + -0.250000;-0.500000;-0.117178;, + -0.250000;-0.625000;-0.117178;, + -0.250000;-0.625000; 0.000000;, + -0.250000;-0.500000; 0.000000;, + -0.125000; 0.125000; 0.000000;, + -0.125000; 0.250000; 0.000000;, + -0.250000; 0.250000; 0.000000;, + -0.250000; 0.125000; 0.000000;, + -0.125000; 0.000000; 0.000000;, + -0.125000; 0.125000; 0.000000;, + -0.250000; 0.125000; 0.000000;, + -0.250000; 0.000000; 0.000000;, + 0.125000;-1.000000;-0.117178;, + 0.000000;-1.000000;-0.117178;, + 0.000000;-1.000000; 0.000000;, + 0.125000;-1.000000; 0.000000;, + -0.625000;-0.375000; 0.000000;, + -0.625000;-0.250000; 0.000000;, + -0.750000;-0.250000; 0.000000;, + -0.750000;-0.375000; 0.000000;, + -0.625000;-0.500000; 0.000000;, + -0.625000;-0.375000; 0.000000;, + -0.750000;-0.375000; 0.000000;, + -0.750000;-0.500000; 0.000000;, + 0.750000;-0.625000;-0.117178;, + 0.750000;-0.750000;-0.117178;, + 0.750000;-0.750000; 0.000000;, + 0.750000;-0.625000; 0.000000;, + -0.625000;-0.875000; 0.000000;, + -0.625000;-0.750000; 0.000000;, + -0.750000;-0.750000; 0.000000;, + -0.750000;-0.875000; 0.000000;, + -0.625000;-1.000000; 0.000000;, + -0.625000;-0.875000; 0.000000;, + -0.750000;-0.875000; 0.000000;, + -0.750000;-1.000000; 0.000000;, + 0.750000;-0.375000;-0.117178;, + 0.750000;-0.500000;-0.117178;, + 0.750000;-0.500000; 0.000000;, + 0.750000;-0.375000; 0.000000;, + -0.250000;-0.250000;-0.117178;, + -0.250000;-0.375000;-0.117178;, + -0.250000;-0.375000; 0.000000;, + -0.250000;-0.250000; 0.000000;, + 0.375000; 0.250000;-0.117178;, + 0.375000; 0.375000;-0.117178;, + 0.375000; 0.375000; 0.000000;, + 0.375000; 0.250000; 0.000000;, + -0.375000; 1.000000;-0.117178;, + -0.250000; 1.000000;-0.117178;, + -0.250000; 1.000000; 0.000000;, + -0.375000; 1.000000; 0.000000;, + 0.375000;-0.875000;-0.117178;, + 0.375000;-0.750000;-0.117178;, + 0.375000;-0.750000; 0.000000;, + 0.375000;-0.875000; 0.000000;, + -0.625000;-0.250000;-0.117178;, + -0.625000;-0.125000;-0.117178;, + -0.625000;-0.125000; 0.000000;, + -0.625000;-0.250000; 0.000000;, + 0.375000;-0.750000;-0.117178;, + 0.375000;-0.625000;-0.117178;, + 0.375000;-0.625000; 0.000000;, + 0.375000;-0.750000; 0.000000;, + -0.125000;-0.875000; 0.000000;, + -0.125000;-0.750000; 0.000000;, + -0.250000;-0.750000; 0.000000;, + -0.250000;-0.875000; 0.000000;, + -0.125000;-1.000000; 0.000000;, + -0.125000;-0.875000; 0.000000;, + -0.250000;-0.875000; 0.000000;, + -0.250000;-1.000000; 0.000000;, + -0.125000; 0.875000;-0.117178;, + -0.125000; 1.000000;-0.117178;, + -0.125000; 1.000000; 0.000000;, + -0.125000; 0.875000; 0.000000;, + 0.250000; 0.625000;-0.117178;, + 0.250000; 0.500000;-0.117178;, + 0.250000; 0.500000; 0.000000;, + 0.250000; 0.625000; 0.000000;, + 0.750000;-0.125000;-0.117178;, + 0.750000;-0.250000;-0.117178;, + 0.750000;-0.250000; 0.000000;, + 0.750000;-0.125000; 0.000000;, + -0.500000;-1.000000;-0.117178;, + -0.625000;-1.000000;-0.117178;, + -0.625000;-1.000000; 0.000000;, + -0.500000;-1.000000; 0.000000;, + -0.625000; 0.875000;-0.117178;, + -0.625000; 1.000000;-0.117178;, + -0.625000; 1.000000; 0.000000;, + -0.625000; 0.875000; 0.000000;, + -0.250000; 0.500000;-0.117178;, + -0.250000; 0.375000;-0.117178;, + -0.250000; 0.375000; 0.000000;, + -0.250000; 0.500000; 0.000000;, + -0.125000;-0.500000;-0.117178;, + -0.125000;-0.375000;-0.117178;, + -0.125000;-0.375000; 0.000000;, + -0.125000;-0.500000; 0.000000;, + 0.375000;-0.375000; 0.000000;, + 0.375000;-0.250000; 0.000000;, + 0.250000;-0.250000; 0.000000;, + 0.250000;-0.375000; 0.000000;, + 0.375000;-0.500000; 0.000000;, + 0.375000;-0.375000; 0.000000;, + 0.250000;-0.375000; 0.000000;, + 0.250000;-0.500000; 0.000000;, + -0.625000;-0.625000;-0.117178;, + -0.625000;-0.500000;-0.117178;, + -0.625000;-0.500000; 0.000000;, + -0.625000;-0.625000; 0.000000;, + 0.250000; 0.500000;-0.117178;, + 0.250000; 0.375000;-0.117178;, + 0.250000; 0.375000; 0.000000;, + 0.250000; 0.500000; 0.000000;, + 0.375000; 0.000000;-0.117178;, + 0.375000; 0.125000;-0.117178;, + 0.375000; 0.125000; 0.000000;, + 0.375000; 0.000000; 0.000000;, + 0.250000; 0.875000;-0.117178;, + 0.250000; 0.750000;-0.117178;, + 0.250000; 0.750000; 0.000000;, + 0.250000; 0.875000; 0.000000;, + 0.500000; 1.000000;-0.117178;, + 0.625000; 1.000000;-0.117178;, + 0.625000; 1.000000; 0.000000;, + 0.500000; 1.000000; 0.000000;, + -0.125000; 0.625000;-0.117178;, + -0.125000; 0.750000;-0.117178;, + -0.125000; 0.750000; 0.000000;, + -0.125000; 0.625000; 0.000000;, + -0.625000; 0.000000;-0.117178;, + -0.625000; 0.125000;-0.117178;, + -0.625000; 0.125000; 0.000000;, + -0.625000; 0.000000; 0.000000;, + 0.375000;-0.875000; 0.000000;, + 0.375000;-0.750000; 0.000000;, + 0.250000;-0.750000; 0.000000;, + 0.250000;-0.875000; 0.000000;, + 0.375000;-1.000000; 0.000000;, + 0.375000;-0.875000; 0.000000;, + 0.250000;-0.875000; 0.000000;, + 0.250000;-1.000000; 0.000000;, + 0.250000;-0.875000;-0.117178;, + 0.250000;-1.000000;-0.117178;, + 0.250000;-1.000000; 0.000000;, + 0.250000;-0.875000; 0.000000;, + -0.625000;-0.500000;-0.117178;, + -0.625000;-0.375000;-0.117178;, + -0.625000;-0.375000; 0.000000;, + -0.625000;-0.500000; 0.000000;, + 0.250000;-0.250000;-0.117178;, + 0.250000;-0.375000;-0.117178;, + 0.250000;-0.375000; 0.000000;, + 0.250000;-0.250000; 0.000000;, + 0.375000; 0.625000;-0.117178;, + 0.375000; 0.750000;-0.117178;, + 0.375000; 0.750000; 0.000000;, + 0.375000; 0.625000; 0.000000;, + 0.750000; 0.750000;-0.117178;, + 0.750000; 0.625000;-0.117178;, + 0.750000; 0.625000; 0.000000;, + 0.750000; 0.750000; 0.000000;, + -0.125000;-1.000000;-0.117178;, + -0.125000;-0.875000;-0.117178;, + -0.125000;-0.875000; 0.000000;, + -0.125000;-1.000000; 0.000000;, + 0.750000;-1.000000;-0.117178;, + 0.625000;-1.000000;-0.117178;, + 0.625000;-1.000000; 0.000000;, + 0.750000;-1.000000; 0.000000;, + 0.750000; 0.125000;-0.117178;, + 0.750000; 0.250000;-0.117178;, + 0.625000; 0.250000;-0.117178;, + 0.625000; 0.125000;-0.117178;, + 0.750000; 0.375000;-0.117178;, + 0.750000; 0.500000;-0.117178;, + 0.625000; 0.500000;-0.117178;, + 0.625000; 0.375000;-0.117178;, + 0.500000; 0.125000;-0.117178;, + 0.500000; 0.250000;-0.117178;, + 0.375000; 0.250000;-0.117178;, + 0.375000; 0.125000;-0.117178;, + 0.250000; 0.125000;-0.117178;, + 0.250000; 0.250000;-0.117178;, + 0.125000; 0.250000;-0.117178;, + 0.125000; 0.125000;-0.117178;, + 0.250000; 0.375000;-0.117178;, + 0.250000; 0.500000;-0.117178;, + 0.125000; 0.500000;-0.117178;, + 0.125000; 0.375000;-0.117178;, + 0.500000; 0.625000;-0.117178;, + 0.500000; 0.750000;-0.117178;, + 0.375000; 0.750000;-0.117178;, + 0.375000; 0.625000;-0.117178;, + 0.250000; 0.625000;-0.117178;, + 0.250000; 0.750000;-0.117178;, + 0.125000; 0.750000;-0.117178;, + 0.125000; 0.625000;-0.117178;, + 0.250000; 0.875000;-0.117178;, + 0.250000; 1.000000;-0.117178;, + 0.125000; 1.000000;-0.117178;, + 0.125000; 0.875000;-0.117178;, + 0.750000;-0.375000;-0.117178;, + 0.750000;-0.250000;-0.117178;, + 0.625000;-0.250000;-0.117178;, + 0.625000;-0.375000;-0.117178;, + 0.750000;-0.125000;-0.117178;, + 0.750000; 0.000000;-0.117178;, + 0.625000; 0.000000;-0.117178;, + 0.625000;-0.125000;-0.117178;, + 0.000000;-0.375000;-0.117178;, + 0.000000;-0.250000;-0.117178;, + -0.125000;-0.250000;-0.117178;, + -0.125000;-0.375000;-0.117178;, + -0.250000;-0.375000;-0.117178;, + -0.250000;-0.250000;-0.117178;, + -0.375000;-0.250000;-0.117178;, + -0.375000;-0.375000;-0.117178;, + -0.250000;-0.125000;-0.117178;, + -0.250000; 0.000000;-0.117178;, + -0.375000; 0.000000;-0.117178;, + -0.375000;-0.125000;-0.117178;, + 0.000000; 0.625000;-0.117178;, + 0.000000; 0.750000;-0.117178;, + -0.125000; 0.750000;-0.117178;, + -0.125000; 0.625000;-0.117178;, + -0.250000; 0.625000;-0.117178;, + -0.250000; 0.750000;-0.117178;, + -0.375000; 0.750000;-0.117178;, + -0.375000; 0.625000;-0.117178;, + -0.250000; 0.875000;-0.117178;, + -0.250000; 1.000000;-0.117178;, + -0.375000; 1.000000;-0.117178;, + -0.375000; 0.875000;-0.117178;, + 0.750000; 0.625000;-0.117178;, + 0.750000; 0.750000;-0.117178;, + 0.625000; 0.750000;-0.117178;, + 0.625000; 0.625000;-0.117178;, + 0.750000; 0.875000;-0.117178;, + 0.750000; 1.000000;-0.117178;, + 0.625000; 1.000000;-0.117178;, + 0.625000; 0.875000;-0.117178;, + 0.500000;-0.625000;-0.117178;, + 0.500000;-0.500000;-0.117178;, + 0.375000;-0.500000;-0.117178;, + 0.375000;-0.625000;-0.117178;, + 0.500000;-0.125000;-0.117178;, + 0.500000; 0.000000;-0.117178;, + 0.375000; 0.000000;-0.117178;, + 0.375000;-0.125000;-0.117178;, + 0.000000;-0.625000;-0.117178;, + 0.000000;-0.500000;-0.117178;, + -0.125000;-0.500000;-0.117178;, + -0.125000;-0.625000;-0.117178;, + -0.500000;-0.625000;-0.117178;, + -0.500000;-0.500000;-0.117178;, + -0.625000;-0.500000;-0.117178;, + -0.625000;-0.625000;-0.117178;, + -0.500000;-0.125000;-0.117178;, + -0.500000; 0.000000;-0.117178;, + -0.625000; 0.000000;-0.117178;, + -0.625000;-0.125000;-0.117178;, + 0.000000; 0.375000;-0.117178;, + 0.000000; 0.500000;-0.117178;, + -0.125000; 0.500000;-0.117178;, + -0.125000; 0.375000;-0.117178;, + -0.500000; 0.375000;-0.117178;, + -0.500000; 0.500000;-0.117178;, + -0.625000; 0.500000;-0.117178;, + -0.625000; 0.375000;-0.117178;, + -0.500000; 0.875000;-0.117178;, + -0.500000; 1.000000;-0.117178;, + -0.625000; 1.000000;-0.117178;, + -0.625000; 0.875000;-0.117178;, + 0.500000; 0.375000;-0.117178;, + 0.500000; 0.500000;-0.117178;, + 0.375000; 0.500000;-0.117178;, + 0.375000; 0.375000;-0.117178;, + 0.500000; 0.875000;-0.117178;, + 0.500000; 1.000000;-0.117178;, + 0.375000; 1.000000;-0.117178;, + 0.375000; 0.875000;-0.117178;, + 0.000000;-0.125000;-0.117178;, + 0.000000; 0.000000;-0.117178;, + -0.125000; 0.000000;-0.117178;, + -0.125000;-0.125000;-0.117178;, + 0.000000; 0.875000;-0.117178;, + 0.000000; 1.000000;-0.117178;, + -0.125000; 1.000000;-0.117178;, + -0.125000; 0.875000;-0.117178;, + 0.250000;-0.250000; 0.330204;, + 0.250000;-0.125000; 0.330204;, + 0.250000;-0.125000; 0.246450;, + 0.250000;-0.250000; 0.246450;, + -0.250000; 0.500000; 0.330204;, + -0.250000; 0.625000; 0.330204;, + -0.250000; 0.625000; 0.246450;, + -0.250000; 0.500000; 0.246450;, + 0.750000; 0.750000; 0.330204;, + 0.750000; 0.875000; 0.330204;, + 0.750000; 0.875000; 0.246450;, + 0.750000; 0.750000; 0.246450;, + -0.125000;-0.750000; 0.330204;, + -0.125000;-0.875000; 0.330204;, + -0.125000;-0.875000; 0.246450;, + -0.125000;-0.750000; 0.246450;, + -0.125000;-0.125000; 0.330204;, + -0.125000;-0.250000; 0.330204;, + -0.125000;-0.250000; 0.246450;, + -0.125000;-0.125000; 0.246450;, + -0.625000; 0.375000; 0.330204;, + -0.625000; 0.250000; 0.330204;, + -0.625000; 0.250000; 0.246450;, + -0.625000; 0.375000; 0.246450;, + -0.250000; 0.125000; 0.330204;, + -0.250000; 0.250000; 0.330204;, + -0.250000; 0.250000; 0.246450;, + -0.250000; 0.125000; 0.246450;, + -0.125000;-0.625000; 0.330204;, + -0.125000;-0.750000; 0.330204;, + -0.125000;-0.750000; 0.246450;, + -0.125000;-0.625000; 0.246450;, + -0.250000;-0.125000; 0.330204;, + -0.250000; 0.000000; 0.330204;, + -0.250000; 0.000000; 0.246450;, + -0.250000;-0.125000; 0.246450;, + -0.250000; 0.750000; 0.330204;, + -0.250000; 0.875000; 0.330204;, + -0.250000; 0.875000; 0.246450;, + -0.250000; 0.750000; 0.246450;, + 0.375000; 1.000000; 0.330204;, + 0.375000; 0.875000; 0.330204;, + 0.375000; 0.875000; 0.246450;, + 0.375000; 1.000000; 0.246450;, + 0.750000; 0.000000; 0.330204;, + 0.750000; 0.125000; 0.330204;, + 0.750000; 0.125000; 0.246450;, + 0.750000; 0.000000; 0.246450;, + 0.250000; 0.125000; 0.330204;, + 0.250000; 0.250000; 0.330204;, + 0.250000; 0.250000; 0.246450;, + 0.250000; 0.125000; 0.246450;, + -0.500000;-1.000000; 0.330204;, + -0.375000;-1.000000; 0.330204;, + -0.375000;-1.000000; 0.246450;, + -0.500000;-1.000000; 0.246450;, + -0.125000; 0.500000; 0.330204;, + -0.125000; 0.375000; 0.330204;, + -0.125000; 0.375000; 0.246450;, + -0.125000; 0.500000; 0.246450;, + -0.125000;-1.000000; 0.330204;, + 0.000000;-1.000000; 0.330204;, + 0.000000;-1.000000; 0.246450;, + -0.125000;-1.000000; 0.246450;, + 0.375000; 0.000000; 0.330204;, + 0.375000;-0.125000; 0.330204;, + 0.375000;-0.125000; 0.246450;, + 0.375000; 0.000000; 0.246450;, + 0.750000; 0.250000; 0.330204;, + 0.750000; 0.375000; 0.330204;, + 0.750000; 0.375000; 0.246450;, + 0.750000; 0.250000; 0.246450;, + -0.250000; 1.000000; 0.246450;, + -0.125000; 1.000000; 0.246450;, + -0.125000; 0.875000; 0.246450;, + -0.250000; 0.875000; 0.246450;, + -0.250000; 0.875000; 0.246450;, + -0.125000; 0.875000; 0.246450;, + -0.125000; 0.750000; 0.246450;, + -0.250000; 0.750000; 0.246450;, + 0.500000; 1.000000; 0.330204;, + 0.375000; 1.000000; 0.330204;, + 0.375000; 1.000000; 0.246450;, + 0.500000; 1.000000; 0.246450;, + -0.250000; 0.000000; 0.246450;, + -0.125000; 0.000000; 0.246450;, + -0.125000;-0.125000; 0.246450;, + -0.250000;-0.125000; 0.246450;, + -0.250000;-0.125000; 0.246450;, + -0.125000;-0.125000; 0.246450;, + -0.125000;-0.250000; 0.246450;, + -0.250000;-0.250000; 0.246450;, + -0.250000;-1.000000; 0.330204;, + -0.250000;-0.875000; 0.330204;, + -0.250000;-0.875000; 0.246450;, + -0.250000;-1.000000; 0.246450;, + 0.250000; 1.000000; 0.246450;, + 0.375000; 1.000000; 0.246450;, + 0.375000; 0.875000; 0.246450;, + 0.250000; 0.875000; 0.246450;, + 0.250000; 0.875000; 0.246450;, + 0.375000; 0.875000; 0.246450;, + 0.375000; 0.750000; 0.246450;, + 0.250000; 0.750000; 0.246450;, + 0.125000; 1.000000; 0.330204;, + 0.000000; 1.000000; 0.330204;, + 0.000000; 1.000000; 0.246450;, + 0.125000; 1.000000; 0.246450;, + 0.250000; 0.500000; 0.246450;, + 0.375000; 0.500000; 0.246450;, + 0.375000; 0.375000; 0.246450;, + 0.250000; 0.375000; 0.246450;, + 0.250000; 0.375000; 0.246450;, + 0.375000; 0.375000; 0.246450;, + 0.375000; 0.250000; 0.246450;, + 0.250000; 0.250000; 0.246450;, + 0.750000;-0.875000; 0.330204;, + 0.750000;-0.750000; 0.330204;, + 0.750000;-0.750000; 0.246450;, + 0.750000;-0.875000; 0.246450;, + -0.750000; 1.000000; 0.246450;, + -0.625000; 1.000000; 0.246450;, + -0.625000; 0.875000; 0.246450;, + -0.750000; 0.875000; 0.246450;, + -0.750000; 0.875000; 0.246450;, + -0.625000; 0.875000; 0.246450;, + -0.625000; 0.750000; 0.246450;, + -0.750000; 0.750000; 0.246450;, + -0.625000; 0.750000; 0.330204;, + -0.625000; 0.625000; 0.330204;, + -0.625000; 0.625000; 0.246450;, + -0.625000; 0.750000; 0.246450;, + -0.750000; 0.500000; 0.246450;, + -0.625000; 0.500000; 0.246450;, + -0.625000; 0.375000; 0.246450;, + -0.750000; 0.375000; 0.246450;, + -0.750000; 0.375000; 0.246450;, + -0.625000; 0.375000; 0.246450;, + -0.625000; 0.250000; 0.246450;, + -0.750000; 0.250000; 0.246450;, + 0.375000;-0.875000; 0.330204;, + 0.375000;-1.000000; 0.330204;, + 0.375000;-1.000000; 0.246450;, + 0.375000;-0.875000; 0.246450;, + -0.250000; 0.500000; 0.246450;, + -0.125000; 0.500000; 0.246450;, + -0.125000; 0.375000; 0.246450;, + -0.250000; 0.375000; 0.246450;, + -0.250000; 0.375000; 0.246450;, + -0.125000; 0.375000; 0.246450;, + -0.125000; 0.250000; 0.246450;, + -0.250000; 0.250000; 0.246450;, + 0.250000;-0.125000; 0.330204;, + 0.250000; 0.000000; 0.330204;, + 0.250000; 0.000000; 0.246450;, + 0.250000;-0.125000; 0.246450;, + -0.750000; 0.000000; 0.246450;, + -0.625000; 0.000000; 0.246450;, + -0.625000;-0.125000; 0.246450;, + -0.750000;-0.125000; 0.246450;, + -0.750000;-0.125000; 0.246450;, + -0.625000;-0.125000; 0.246450;, + -0.625000;-0.250000; 0.246450;, + -0.750000;-0.250000; 0.246450;, + -0.125000; 0.250000; 0.330204;, + -0.125000; 0.125000; 0.330204;, + -0.125000; 0.125000; 0.246450;, + -0.125000; 0.250000; 0.246450;, + -0.750000;-0.500000; 0.246450;, + -0.625000;-0.500000; 0.246450;, + -0.625000;-0.625000; 0.246450;, + -0.750000;-0.625000; 0.246450;, + -0.750000;-0.625000; 0.246450;, + -0.625000;-0.625000; 0.246450;, + -0.625000;-0.750000; 0.246450;, + -0.750000;-0.750000; 0.246450;, + -0.250000;-0.750000; 0.330204;, + -0.250000;-0.625000; 0.330204;, + -0.250000;-0.625000; 0.246450;, + -0.250000;-0.750000; 0.246450;, + -0.250000;-0.500000; 0.246450;, + -0.125000;-0.500000; 0.246450;, + -0.125000;-0.625000; 0.246450;, + -0.250000;-0.625000; 0.246450;, + -0.250000;-0.625000; 0.246450;, + -0.125000;-0.625000; 0.246450;, + -0.125000;-0.750000; 0.246450;, + -0.250000;-0.750000; 0.246450;, + 0.750000; 0.875000; 0.330204;, + 0.750000; 1.000000; 0.330204;, + 0.750000; 1.000000; 0.246450;, + 0.750000; 0.875000; 0.246450;, + 0.250000; 0.000000; 0.246450;, + 0.375000; 0.000000; 0.246450;, + 0.375000;-0.125000; 0.246450;, + 0.250000;-0.125000; 0.246450;, + 0.250000;-0.125000; 0.246450;, + 0.375000;-0.125000; 0.246450;, + 0.375000;-0.250000; 0.246450;, + 0.250000;-0.250000; 0.246450;, + 0.125000;-1.000000; 0.330204;, + 0.250000;-1.000000; 0.330204;, + 0.250000;-1.000000; 0.246450;, + 0.125000;-1.000000; 0.246450;, + 0.250000;-0.500000; 0.246450;, + 0.375000;-0.500000; 0.246450;, + 0.375000;-0.625000; 0.246450;, + 0.250000;-0.625000; 0.246450;, + 0.250000;-0.625000; 0.246450;, + 0.375000;-0.625000; 0.246450;, + 0.375000;-0.750000; 0.246450;, + 0.250000;-0.750000; 0.246450;, + -0.125000; 0.875000; 0.330204;, + -0.125000; 0.750000; 0.330204;, + -0.125000; 0.750000; 0.246450;, + -0.125000; 0.875000; 0.246450;, + 0.750000;-0.375000; 0.330204;, + 0.750000;-0.250000; 0.330204;, + 0.750000;-0.250000; 0.246450;, + 0.750000;-0.375000; 0.246450;, + -0.500000; 1.000000; 0.330204;, + -0.625000; 1.000000; 0.330204;, + -0.625000; 1.000000; 0.246450;, + -0.500000; 1.000000; 0.246450;, + 0.375000;-0.250000; 0.330204;, + 0.375000;-0.375000; 0.330204;, + 0.375000;-0.375000; 0.246450;, + 0.375000;-0.250000; 0.246450;, + -0.625000; 0.875000; 0.330204;, + -0.625000; 0.750000; 0.330204;, + -0.625000; 0.750000; 0.246450;, + -0.625000; 0.875000; 0.246450;, + -0.250000; 0.000000; 0.330204;, + -0.250000; 0.125000; 0.330204;, + -0.250000; 0.125000; 0.246450;, + -0.250000; 0.000000; 0.246450;, + -0.625000;-0.625000; 0.330204;, + -0.625000;-0.750000; 0.330204;, + -0.625000;-0.750000; 0.246450;, + -0.625000;-0.625000; 0.246450;, + -0.250000; 0.875000; 0.330204;, + -0.250000; 1.000000; 0.330204;, + -0.250000; 1.000000; 0.246450;, + -0.250000; 0.875000; 0.246450;, + -0.125000; 0.000000; 0.330204;, + -0.125000;-0.125000; 0.330204;, + -0.125000;-0.125000; 0.246450;, + -0.125000; 0.000000; 0.246450;, + 0.250000; 0.000000; 0.330204;, + 0.250000; 0.125000; 0.330204;, + 0.250000; 0.125000; 0.246450;, + 0.250000; 0.000000; 0.246450;, + 0.250000; 0.625000; 0.330204;, + 0.250000; 0.750000; 0.330204;, + 0.250000; 0.750000; 0.246450;, + 0.250000; 0.625000; 0.246450;, + -0.125000; 0.625000; 0.330204;, + -0.125000; 0.500000; 0.330204;, + -0.125000; 0.500000; 0.246450;, + -0.125000; 0.625000; 0.246450;, + -0.625000; 0.500000; 0.330204;, + -0.625000; 0.375000; 0.330204;, + -0.625000; 0.375000; 0.246450;, + -0.625000; 0.500000; 0.246450;, + -0.250000; 0.750000; 0.246450;, + -0.125000; 0.750000; 0.246450;, + -0.125000; 0.625000; 0.246450;, + -0.250000; 0.625000; 0.246450;, + -0.250000; 0.625000; 0.246450;, + -0.125000; 0.625000; 0.246450;, + -0.125000; 0.500000; 0.246450;, + -0.250000; 0.500000; 0.246450;, + -0.250000; 0.250000; 0.330204;, + -0.250000; 0.375000; 0.330204;, + -0.250000; 0.375000; 0.246450;, + -0.250000; 0.250000; 0.246450;, + -0.125000;-0.500000; 0.330204;, + -0.125000;-0.625000; 0.330204;, + -0.125000;-0.625000; 0.246450;, + -0.125000;-0.500000; 0.246450;, + 0.375000; 0.625000; 0.330204;, + 0.375000; 0.500000; 0.330204;, + 0.375000; 0.500000; 0.246450;, + 0.375000; 0.625000; 0.246450;, + 0.750000; 0.375000; 0.330204;, + 0.750000; 0.500000; 0.330204;, + 0.750000; 0.500000; 0.246450;, + 0.750000; 0.375000; 0.246450;, + 0.250000; 0.250000; 0.330204;, + 0.250000; 0.375000; 0.330204;, + 0.250000; 0.375000; 0.246450;, + 0.250000; 0.250000; 0.246450;, + 0.750000; 1.000000; 0.330204;, + 0.625000; 1.000000; 0.330204;, + 0.625000; 1.000000; 0.246450;, + 0.750000; 1.000000; 0.246450;, + 0.750000;-1.000000; 0.330204;, + 0.750000;-0.875000; 0.330204;, + 0.750000;-0.875000; 0.246450;, + 0.750000;-1.000000; 0.246450;, + -0.250000;-0.250000; 0.246450;, + -0.125000;-0.250000; 0.246450;, + -0.125000;-0.375000; 0.246450;, + -0.250000;-0.375000; 0.246450;, + -0.250000;-0.375000; 0.246450;, + -0.125000;-0.375000; 0.246450;, + -0.125000;-0.500000; 0.246450;, + -0.250000;-0.500000; 0.246450;, + -0.625000;-0.875000; 0.330204;, + -0.625000;-1.000000; 0.330204;, + -0.625000;-1.000000; 0.246450;, + -0.625000;-0.875000; 0.246450;, + 0.250000;-0.875000; 0.330204;, + 0.250000;-0.750000; 0.330204;, + 0.250000;-0.750000; 0.246450;, + 0.250000;-0.875000; 0.246450;, + 0.375000;-1.000000; 0.330204;, + 0.500000;-1.000000; 0.330204;, + 0.500000;-1.000000; 0.246450;, + 0.375000;-1.000000; 0.246450;, + -0.250000;-0.625000; 0.330204;, + -0.250000;-0.500000; 0.330204;, + -0.250000;-0.500000; 0.246450;, + -0.250000;-0.625000; 0.246450;, + 0.125000;-1.152395; 0.000000;, + 0.125000;-1.152395; 0.246450;, + 0.125000;-1.000000; 0.246450;, + 0.125000;-1.000000; 0.000000;, + 0.750000;-0.750000; 0.330204;, + 0.750000;-0.625000; 0.330204;, + 0.750000;-0.625000; 0.246450;, + 0.750000;-0.750000; 0.246450;, + 0.750000;-0.500000; 0.330204;, + 0.750000;-0.375000; 0.330204;, + 0.750000;-0.375000; 0.246450;, + 0.750000;-0.500000; 0.246450;, + -0.250000;-0.375000; 0.330204;, + -0.250000;-0.250000; 0.330204;, + -0.250000;-0.250000; 0.246450;, + -0.250000;-0.375000; 0.246450;, + 0.375000; 0.375000; 0.330204;, + 0.375000; 0.250000; 0.330204;, + 0.375000; 0.250000; 0.246450;, + 0.375000; 0.375000; 0.246450;, + -0.250000; 1.000000; 0.330204;, + -0.375000; 1.000000; 0.330204;, + -0.375000; 1.000000; 0.246450;, + -0.250000; 1.000000; 0.246450;, + 0.375000;-0.750000; 0.330204;, + 0.375000;-0.875000; 0.330204;, + 0.375000;-0.875000; 0.246450;, + 0.375000;-0.750000; 0.246450;, + -0.625000;-0.125000; 0.330204;, + -0.625000;-0.250000; 0.330204;, + -0.625000;-0.250000; 0.246450;, + -0.625000;-0.125000; 0.246450;, + 0.375000;-0.625000; 0.330204;, + 0.375000;-0.750000; 0.330204;, + 0.375000;-0.750000; 0.246450;, + 0.375000;-0.625000; 0.246450;, + 0.250000; 0.750000; 0.246450;, + 0.375000; 0.750000; 0.246450;, + 0.375000; 0.625000; 0.246450;, + 0.250000; 0.625000; 0.246450;, + 0.250000; 0.625000; 0.246450;, + 0.375000; 0.625000; 0.246450;, + 0.375000; 0.500000; 0.246450;, + 0.250000; 0.500000; 0.246450;, + -0.125000; 1.000000; 0.330204;, + -0.125000; 0.875000; 0.330204;, + -0.125000; 0.875000; 0.246450;, + -0.125000; 1.000000; 0.246450;, + 0.250000; 0.500000; 0.330204;, + 0.250000; 0.625000; 0.330204;, + 0.250000; 0.625000; 0.246450;, + 0.250000; 0.500000; 0.246450;, + 0.750000;-0.250000; 0.330204;, + 0.750000;-0.125000; 0.330204;, + 0.750000;-0.125000; 0.246450;, + 0.750000;-0.250000; 0.246450;, + -0.625000;-1.000000; 0.330204;, + -0.500000;-1.000000; 0.330204;, + -0.500000;-1.000000; 0.246450;, + -0.625000;-1.000000; 0.246450;, + -0.625000; 1.000000; 0.330204;, + -0.625000; 0.875000; 0.330204;, + -0.625000; 0.875000; 0.246450;, + -0.625000; 1.000000; 0.246450;, + -0.250000; 0.375000; 0.330204;, + -0.250000; 0.500000; 0.330204;, + -0.250000; 0.500000; 0.246450;, + -0.250000; 0.375000; 0.246450;, + -0.125000;-0.375000; 0.330204;, + -0.125000;-0.500000; 0.330204;, + -0.125000;-0.500000; 0.246450;, + -0.125000;-0.375000; 0.246450;, + 0.250000; 0.250000; 0.246450;, + 0.375000; 0.250000; 0.246450;, + 0.375000; 0.125000; 0.246450;, + 0.250000; 0.125000; 0.246450;, + 0.250000; 0.125000; 0.246450;, + 0.375000; 0.125000; 0.246450;, + 0.375000; 0.000000; 0.246450;, + 0.250000; 0.000000; 0.246450;, + -0.625000;-0.500000; 0.330204;, + -0.625000;-0.625000; 0.330204;, + -0.625000;-0.625000; 0.246450;, + -0.625000;-0.500000; 0.246450;, + 0.250000; 0.375000; 0.330204;, + 0.250000; 0.500000; 0.330204;, + 0.250000; 0.500000; 0.246450;, + 0.250000; 0.375000; 0.246450;, + 0.375000; 0.125000; 0.330204;, + 0.375000; 0.000000; 0.330204;, + 0.375000; 0.000000; 0.246450;, + 0.375000; 0.125000; 0.246450;, + 0.250000; 0.750000; 0.330204;, + 0.250000; 0.875000; 0.330204;, + 0.250000; 0.875000; 0.246450;, + 0.250000; 0.750000; 0.246450;, + 0.625000; 1.000000; 0.330204;, + 0.500000; 1.000000; 0.330204;, + 0.500000; 1.000000; 0.246450;, + 0.625000; 1.000000; 0.246450;, + -0.125000; 0.750000; 0.330204;, + -0.125000; 0.625000; 0.330204;, + -0.125000; 0.625000; 0.246450;, + -0.125000; 0.750000; 0.246450;, + -0.625000; 0.125000; 0.330204;, + -0.625000; 0.000000; 0.330204;, + -0.625000; 0.000000; 0.246450;, + -0.625000; 0.125000; 0.246450;, + -0.750000; 0.750000; 0.246450;, + -0.625000; 0.750000; 0.246450;, + -0.625000; 0.625000; 0.246450;, + -0.750000; 0.625000; 0.246450;, + -0.750000; 0.625000; 0.246450;, + -0.625000; 0.625000; 0.246450;, + -0.625000; 0.500000; 0.246450;, + -0.750000; 0.500000; 0.246450;, + 0.250000;-1.000000; 0.330204;, + 0.250000;-0.875000; 0.330204;, + 0.250000;-0.875000; 0.246450;, + 0.250000;-1.000000; 0.246450;, + -0.750000; 0.250000; 0.246450;, + -0.625000; 0.250000; 0.246450;, + -0.625000; 0.125000; 0.246450;, + -0.750000; 0.125000; 0.246450;, + -0.750000; 0.125000; 0.246450;, + -0.625000; 0.125000; 0.246450;, + -0.625000; 0.000000; 0.246450;, + -0.750000; 0.000000; 0.246450;, + -0.625000;-0.375000; 0.330204;, + -0.625000;-0.500000; 0.330204;, + -0.625000;-0.500000; 0.246450;, + -0.625000;-0.375000; 0.246450;, + 0.250000;-0.375000; 0.330204;, + 0.250000;-0.250000; 0.330204;, + 0.250000;-0.250000; 0.246450;, + 0.250000;-0.375000; 0.246450;, + 0.375000; 0.750000; 0.330204;, + 0.375000; 0.625000; 0.330204;, + 0.375000; 0.625000; 0.246450;, + 0.375000; 0.750000; 0.246450;, + 0.750000; 0.625000; 0.330204;, + 0.750000; 0.750000; 0.330204;, + 0.750000; 0.750000; 0.246450;, + 0.750000; 0.625000; 0.246450;, + -0.125000;-0.875000; 0.330204;, + -0.125000;-1.000000; 0.330204;, + -0.125000;-1.000000; 0.246450;, + -0.125000;-0.875000; 0.246450;, + 0.625000;-1.000000; 0.330204;, + 0.750000;-1.000000; 0.330204;, + 0.750000;-1.000000; 0.246450;, + 0.625000;-1.000000; 0.246450;, + 0.750000;-0.625000; 0.330204;, + 0.750000;-0.500000; 0.330204;, + 0.750000;-0.500000; 0.246450;, + 0.750000;-0.625000; 0.246450;, + -0.250000; 0.250000; 0.246450;, + -0.125000; 0.250000; 0.246450;, + -0.125000; 0.125000; 0.246450;, + -0.250000; 0.125000; 0.246450;, + -0.250000; 0.125000; 0.246450;, + -0.125000; 0.125000; 0.246450;, + -0.125000; 0.000000; 0.246450;, + -0.250000; 0.000000; 0.246450;, + -0.625000;-0.750000; 0.330204;, + -0.625000;-0.875000; 0.330204;, + -0.625000;-0.875000; 0.246450;, + -0.625000;-0.750000; 0.246450;, + -0.750000;-0.250000; 0.246450;, + -0.625000;-0.250000; 0.246450;, + -0.625000;-0.375000; 0.246450;, + -0.750000;-0.375000; 0.246450;, + -0.750000;-0.375000; 0.246450;, + -0.625000;-0.375000; 0.246450;, + -0.625000;-0.500000; 0.246450;, + -0.750000;-0.500000; 0.246450;, + 0.250000;-0.750000; 0.330204;, + 0.250000;-0.625000; 0.330204;, + 0.250000;-0.625000; 0.246450;, + 0.250000;-0.750000; 0.246450;, + -0.750000;-0.750000; 0.246450;, + -0.625000;-0.750000; 0.246450;, + -0.625000;-0.875000; 0.246450;, + -0.750000;-0.875000; 0.246450;, + -0.750000;-0.875000; 0.246450;, + -0.625000;-0.875000; 0.246450;, + -0.625000;-1.000000; 0.246450;, + -0.750000;-1.000000; 0.246450;, + -0.250000;-0.500000; 0.330204;, + -0.250000;-0.375000; 0.330204;, + -0.250000;-0.375000; 0.246450;, + -0.250000;-0.500000; 0.246450;, + -0.250000; 0.625000; 0.330204;, + -0.250000; 0.750000; 0.330204;, + -0.250000; 0.750000; 0.246450;, + -0.250000; 0.625000; 0.246450;, + 0.375000; 0.875000; 0.330204;, + 0.375000; 0.750000; 0.330204;, + 0.375000; 0.750000; 0.246450;, + 0.375000; 0.875000; 0.246450;, + -0.375000; 1.000000; 0.330204;, + -0.500000; 1.000000; 0.330204;, + -0.500000; 1.000000; 0.246450;, + -0.375000; 1.000000; 0.246450;, + -0.125000; 0.375000; 0.330204;, + -0.125000; 0.250000; 0.330204;, + -0.125000; 0.250000; 0.246450;, + -0.125000; 0.375000; 0.246450;, + 0.000000; 1.000000; 0.330204;, + -0.125000; 1.000000; 0.330204;, + -0.125000; 1.000000; 0.246450;, + 0.000000; 1.000000; 0.246450;, + 0.375000;-0.125000; 0.330204;, + 0.375000;-0.250000; 0.330204;, + 0.375000;-0.250000; 0.246450;, + 0.375000;-0.125000; 0.246450;, + -0.250000;-0.750000; 0.246450;, + -0.125000;-0.750000; 0.246450;, + -0.125000;-0.875000; 0.246450;, + -0.250000;-0.875000; 0.246450;, + -0.250000;-0.875000; 0.246450;, + -0.125000;-0.875000; 0.246450;, + -0.125000;-1.000000; 0.246450;, + -0.250000;-1.000000; 0.246450;, + 0.750000;-0.125000; 0.330204;, + 0.750000; 0.000000; 0.330204;, + 0.750000; 0.000000; 0.246450;, + 0.750000;-0.125000; 0.246450;, + -0.250000;-0.250000; 0.330204;, + -0.250000;-0.125000; 0.330204;, + -0.250000;-0.125000; 0.246450;, + -0.250000;-0.250000; 0.246450;, + 0.375000; 0.500000; 0.330204;, + 0.375000; 0.375000; 0.330204;, + 0.375000; 0.375000; 0.246450;, + 0.375000; 0.500000; 0.246450;, + 0.750000; 0.125000; 0.330204;, + 0.750000; 0.250000; 0.330204;, + 0.750000; 0.250000; 0.246450;, + 0.750000; 0.125000; 0.246450;, + -0.375000;-1.000000; 0.330204;, + -0.250000;-1.000000; 0.330204;, + -0.250000;-1.000000; 0.246450;, + -0.375000;-1.000000; 0.246450;, + -0.625000; 0.000000; 0.330204;, + -0.625000;-0.125000; 0.330204;, + -0.625000;-0.125000; 0.246450;, + -0.625000; 0.000000; 0.246450;, + 0.375000;-0.500000; 0.330204;, + 0.375000;-0.625000; 0.330204;, + 0.375000;-0.625000; 0.246450;, + 0.375000;-0.500000; 0.246450;, + 0.250000;-0.250000; 0.246450;, + 0.375000;-0.250000; 0.246450;, + 0.375000;-0.375000; 0.246450;, + 0.250000;-0.375000; 0.246450;, + 0.250000;-0.375000; 0.246450;, + 0.375000;-0.375000; 0.246450;, + 0.375000;-0.500000; 0.246450;, + 0.250000;-0.500000; 0.246450;, + 0.250000; 0.875000; 0.330204;, + 0.250000; 1.000000; 0.330204;, + 0.250000; 1.000000; 0.246450;, + 0.250000; 0.875000; 0.246450;, + -0.625000; 0.625000; 0.330204;, + -0.625000; 0.500000; 0.330204;, + -0.625000; 0.500000; 0.246450;, + -0.625000; 0.625000; 0.246450;, + -0.125000;-0.250000; 0.330204;, + -0.125000;-0.375000; 0.330204;, + -0.125000;-0.375000; 0.246450;, + -0.125000;-0.250000; 0.246450;, + 0.250000;-0.500000; 0.330204;, + 0.250000;-0.375000; 0.330204;, + 0.250000;-0.375000; 0.246450;, + 0.250000;-0.500000; 0.246450;, + -0.125000; 0.125000; 0.330204;, + -0.125000; 0.000000; 0.330204;, + -0.125000; 0.000000; 0.246450;, + -0.125000; 0.125000; 0.246450;, + -0.250000;-0.875000; 0.330204;, + -0.250000;-0.750000; 0.330204;, + -0.250000;-0.750000; 0.246450;, + -0.250000;-0.875000; 0.246450;, + 0.750000; 0.500000; 0.330204;, + 0.750000; 0.625000; 0.330204;, + 0.750000; 0.625000; 0.246450;, + 0.750000; 0.500000; 0.246450;, + 0.250000;-0.750000; 0.246450;, + 0.375000;-0.750000; 0.246450;, + 0.375000;-0.875000; 0.246450;, + 0.250000;-0.875000; 0.246450;, + 0.250000;-0.875000; 0.246450;, + 0.375000;-0.875000; 0.246450;, + 0.375000;-1.000000; 0.246450;, + 0.250000;-1.000000; 0.246450;, + 0.250000; 1.000000; 0.330204;, + 0.125000; 1.000000; 0.330204;, + 0.125000; 1.000000; 0.246450;, + 0.250000; 1.000000; 0.246450;, + 0.375000; 0.250000; 0.330204;, + 0.375000; 0.125000; 0.330204;, + 0.375000; 0.125000; 0.246450;, + 0.375000; 0.250000; 0.246450;, + 0.500000;-1.000000; 0.330204;, + 0.625000;-1.000000; 0.330204;, + 0.625000;-1.000000; 0.246450;, + 0.500000;-1.000000; 0.246450;, + 0.375000;-0.375000; 0.330204;, + 0.375000;-0.500000; 0.330204;, + 0.375000;-0.500000; 0.246450;, + 0.375000;-0.375000; 0.246450;, + -0.625000; 0.250000; 0.330204;, + -0.625000; 0.125000; 0.330204;, + -0.625000; 0.125000; 0.246450;, + -0.625000; 0.250000; 0.246450;, + 0.250000;-0.625000; 0.330204;, + 0.250000;-0.500000; 0.330204;, + 0.250000;-0.500000; 0.246450;, + 0.250000;-0.625000; 0.246450;, + -0.625000;-0.250000; 0.330204;, + -0.625000;-0.375000; 0.330204;, + -0.625000;-0.375000; 0.246450;, + -0.625000;-0.250000; 0.246450;, + 0.625000;-1.000000; 0.246450;, + 0.750000;-1.000000; 0.246450;, + 0.750000;-1.000000; 0.000000;, + 0.625000;-1.000000; 0.000000;, + 0.000000;-1.287628;-0.289304;, + 0.000000;-1.152395;-0.289304;, + 0.000000;-1.152395; 0.000000;, + 0.000000;-1.287628; 0.000000;, + -0.750000; 0.500000; 0.246450;, + -0.750000; 0.375000; 0.246450;, + -0.750000; 0.375000; 0.000000;, + -0.750000; 0.500000; 0.000000;, + 0.859843;-1.000000; 0.000000;, + 0.859843;-0.875000; 0.000000;, + 0.750000;-0.875000; 0.000000;, + 0.750000;-1.000000; 0.000000;, + -0.750000;-0.250000; 0.246450;, + -0.750000;-0.375000; 0.246450;, + -0.750000;-0.375000; 0.000000;, + -0.750000;-0.250000; 0.000000;, + 0.859843; 0.500000; 0.246450;, + 0.859843; 0.375000; 0.246450;, + 0.750000; 0.375000; 0.246450;, + 0.750000; 0.500000; 0.246450;, + -0.375000; 1.000000; 0.246450;, + -0.500000; 1.000000; 0.246450;, + -0.500000; 1.000000; 0.000000;, + -0.375000; 1.000000; 0.000000;, + -0.750000;-0.500000; 0.246450;, + -0.750000;-0.625000; 0.246450;, + -0.750000;-0.625000; 0.000000;, + -0.750000;-0.500000; 0.000000;, + 0.859843;-0.500000; 0.246450;, + 0.859843;-0.625000; 0.246450;, + 0.750000;-0.625000; 0.246450;, + 0.750000;-0.500000; 0.246450;, + 0.125000;-1.000000; 0.246450;, + 0.250000;-1.000000; 0.246450;, + 0.250000;-1.000000; 0.000000;, + 0.125000;-1.000000; 0.000000;, + -0.750000; 1.000000; 0.246450;, + -0.750000; 0.875000; 0.246450;, + -0.750000; 0.875000; 0.000000;, + -0.750000; 1.000000; 0.000000;, + -0.750000; 0.375000; 0.246450;, + -0.750000; 0.250000; 0.246450;, + -0.750000; 0.250000; 0.000000;, + -0.750000; 0.375000; 0.000000;, + -0.500000; 1.000000; 0.246450;, + -0.625000; 1.000000; 0.246450;, + -0.625000; 1.000000; 0.000000;, + -0.500000; 1.000000; 0.000000;, + 0.859843;-0.375000; 0.246450;, + 0.859843;-0.500000; 0.246450;, + 0.750000;-0.500000; 0.246450;, + 0.750000;-0.375000; 0.246450;, + -0.250000; 1.000000; 0.246450;, + -0.375000; 1.000000; 0.246450;, + -0.375000; 1.000000; 0.000000;, + -0.250000; 1.000000; 0.000000;, + 0.859843; 0.250000; 0.000000;, + 0.859843; 0.375000; 0.000000;, + 0.750000; 0.375000; 0.000000;, + 0.750000; 0.250000; 0.000000;, + -0.750000; 0.000000; 0.246450;, + -0.750000;-0.125000; 0.246450;, + -0.750000;-0.125000; 0.000000;, + -0.750000; 0.000000; 0.000000;, + -0.750000;-0.625000; 0.246450;, + -0.750000;-0.750000; 0.246450;, + -0.750000;-0.750000; 0.000000;, + -0.750000;-0.625000; 0.000000;, + 0.500000; 1.000000; 0.246450;, + 0.375000; 1.000000; 0.246450;, + 0.375000; 1.000000; 0.000000;, + 0.500000; 1.000000; 0.000000;, + 0.859843; 0.250000; 0.246450;, + 0.859843; 0.125000; 0.246450;, + 0.750000; 0.125000; 0.246450;, + 0.750000; 0.250000; 0.246450;, + -0.750000; 0.875000; 0.246450;, + -0.750000; 0.750000; 0.246450;, + -0.750000; 0.750000; 0.000000;, + -0.750000; 0.875000; 0.000000;, + 0.000000; 1.000000; 0.246450;, + -0.125000; 1.000000; 0.246450;, + -0.125000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + -0.625000; 1.000000; 0.246450;, + -0.750000; 1.000000; 0.246450;, + -0.750000; 1.000000; 0.000000;, + -0.625000; 1.000000; 0.000000;, + 0.859843;-0.750000; 0.000000;, + 0.859843;-0.625000; 0.000000;, + 0.750000;-0.625000; 0.000000;, + 0.750000;-0.750000; 0.000000;, + 0.625000; 1.000000; 0.246450;, + 0.500000; 1.000000; 0.246450;, + 0.500000; 1.000000; 0.000000;, + 0.625000; 1.000000; 0.000000;, + 0.859843; 0.875000; 0.000000;, + 0.859843; 1.000000; 0.000000;, + 0.750000; 1.000000; 0.000000;, + 0.750000; 0.875000; 0.000000;, + -0.750000;-0.125000; 0.246450;, + -0.750000;-0.250000; 0.246450;, + -0.750000;-0.250000; 0.000000;, + -0.750000;-0.125000; 0.000000;, + -0.500000;-1.000000; 0.246450;, + -0.375000;-1.000000; 0.246450;, + -0.375000;-1.000000; 0.000000;, + -0.500000;-1.000000; 0.000000;, + 0.375000; 1.000000; 0.246450;, + 0.250000; 1.000000; 0.246450;, + 0.250000; 1.000000; 0.000000;, + 0.375000; 1.000000; 0.000000;, + 0.859843; 0.875000; 0.246450;, + 0.859843; 0.750000; 0.246450;, + 0.750000; 0.750000; 0.246450;, + 0.750000; 0.875000; 0.246450;, + 0.859843;-0.375000; 0.000000;, + 0.859843;-0.250000; 0.000000;, + 0.750000;-0.250000; 0.000000;, + 0.750000;-0.375000; 0.000000;, + -0.125000; 1.000000; 0.246450;, + -0.250000; 1.000000; 0.246450;, + -0.250000; 1.000000; 0.000000;, + -0.125000; 1.000000; 0.000000;, + -0.625000;-1.000000; 0.246450;, + -0.500000;-1.000000; 0.246450;, + -0.500000;-1.000000; 0.000000;, + -0.625000;-1.000000; 0.000000;, + 0.750000; 1.000000; 0.246450;, + 0.625000; 1.000000; 0.246450;, + 0.625000; 1.000000; 0.000000;, + 0.750000; 1.000000; 0.000000;, + 0.125000; 1.000000; 0.246450;, + 0.000000; 1.000000; 0.246450;, + 0.000000; 1.000000; 0.000000;, + 0.125000; 1.000000; 0.000000;, + -0.750000; 0.125000; 0.246450;, + -0.750000; 0.000000; 0.246450;, + -0.750000; 0.000000; 0.000000;, + -0.750000; 0.125000; 0.000000;, + 0.859843;-0.750000; 0.246450;, + 0.859843;-0.875000; 0.246450;, + 0.750000;-0.875000; 0.246450;, + 0.750000;-0.750000; 0.246450;, + -0.375000;-1.000000; 0.246450;, + -0.250000;-1.000000; 0.246450;, + -0.250000;-1.000000; 0.000000;, + -0.375000;-1.000000; 0.000000;, + 0.859843;-0.125000; 0.000000;, + 0.859843; 0.000000; 0.000000;, + 0.750000; 0.000000; 0.000000;, + 0.750000;-0.125000; 0.000000;, + 0.375000;-1.000000; 0.246450;, + 0.500000;-1.000000; 0.246450;, + 0.500000;-1.000000; 0.000000;, + 0.375000;-1.000000; 0.000000;, + -0.750000;-0.875000; 0.246450;, + -0.750000;-1.000000; 0.246450;, + -0.750000;-1.000000; 0.000000;, + -0.750000;-0.875000; 0.000000;, + -0.125000;-1.000000; 0.246450;, + 0.000000;-1.000000; 0.246450;, + 0.000000;-1.000000; 0.000000;, + -0.125000;-1.000000; 0.000000;, + -0.750000;-1.000000; 0.246450;, + -0.625000;-1.000000; 0.246450;, + -0.625000;-1.000000; 0.000000;, + -0.750000;-1.000000; 0.000000;, + 0.250000; 1.000000; 0.246450;, + 0.125000; 1.000000; 0.246450;, + 0.125000; 1.000000; 0.000000;, + 0.250000; 1.000000; 0.000000;, + -0.750000; 0.625000; 0.246450;, + -0.750000; 0.500000; 0.246450;, + -0.750000; 0.500000; 0.000000;, + -0.750000; 0.625000; 0.000000;, + -0.750000; 0.250000; 0.246450;, + -0.750000; 0.125000; 0.246450;, + -0.750000; 0.125000; 0.000000;, + -0.750000; 0.250000; 0.000000;, + 0.859843; 0.125000; 0.246450;, + 0.859843; 0.000000; 0.246450;, + 0.750000; 0.000000; 0.246450;, + 0.750000; 0.125000; 0.246450;, + 0.500000;-1.000000; 0.246450;, + 0.625000;-1.000000; 0.246450;, + 0.625000;-1.000000; 0.000000;, + 0.500000;-1.000000; 0.000000;, + 0.250000;-1.000000; 0.246450;, + 0.375000;-1.000000; 0.246450;, + 0.375000;-1.000000; 0.000000;, + 0.250000;-1.000000; 0.000000;, + 0.859843; 1.000000; 0.246450;, + 0.859843; 0.875000; 0.246450;, + 0.750000; 0.875000; 0.246450;, + 0.750000; 1.000000; 0.246450;, + -0.750000;-0.375000; 0.246450;, + -0.750000;-0.500000; 0.246450;, + -0.750000;-0.500000; 0.000000;, + -0.750000;-0.375000; 0.000000;, + -0.750000;-0.750000; 0.246450;, + -0.750000;-0.875000; 0.246450;, + -0.750000;-0.875000; 0.000000;, + -0.750000;-0.750000; 0.000000;, + 0.859843;-0.875000; 0.246450;, + 0.859843;-1.000000; 0.246450;, + 0.750000;-1.000000; 0.246450;, + 0.750000;-0.875000; 0.246450;, + -0.250000;-1.000000; 0.246450;, + -0.125000;-1.000000; 0.246450;, + -0.125000;-1.000000; 0.000000;, + -0.250000;-1.000000; 0.000000;, + 0.859843; 0.375000; 0.000000;, + 0.859843; 0.500000; 0.000000;, + 0.750000; 0.500000; 0.000000;, + 0.750000; 0.375000; 0.000000;, + -0.750000; 0.750000; 0.246450;, + -0.750000; 0.625000; 0.246450;, + -0.750000; 0.625000; 0.000000;, + -0.750000; 0.750000; 0.000000;, + -0.125000; 1.000000; 0.330204;, + 0.000000; 1.000000; 0.330204;, + 0.000000; 0.875000; 0.330204;, + -0.125000; 0.875000; 0.330204;, + -0.125000; 0.000000; 0.330204;, + 0.000000; 0.000000; 0.330204;, + 0.000000;-0.125000; 0.330204;, + -0.125000;-0.125000; 0.330204;, + 0.375000; 1.000000; 0.330204;, + 0.500000; 1.000000; 0.330204;, + 0.500000; 0.875000; 0.330204;, + 0.375000; 0.875000; 0.330204;, + 0.375000; 0.500000; 0.330204;, + 0.500000; 0.500000; 0.330204;, + 0.500000; 0.375000; 0.330204;, + 0.375000; 0.375000; 0.330204;, + -0.625000; 1.000000; 0.330204;, + -0.500000; 1.000000; 0.330204;, + -0.500000; 0.875000; 0.330204;, + -0.625000; 0.875000; 0.330204;, + -0.625000; 0.500000; 0.330204;, + -0.500000; 0.500000; 0.330204;, + -0.500000; 0.375000; 0.330204;, + -0.625000; 0.375000; 0.330204;, + -0.125000; 0.500000; 0.330204;, + 0.000000; 0.500000; 0.330204;, + 0.000000; 0.375000; 0.330204;, + -0.125000; 0.375000; 0.330204;, + -0.625000; 0.000000; 0.330204;, + -0.500000; 0.000000; 0.330204;, + -0.500000;-0.125000; 0.330204;, + -0.625000;-0.125000; 0.330204;, + -0.625000;-0.500000; 0.330204;, + -0.500000;-0.500000; 0.330204;, + -0.500000;-0.625000; 0.330204;, + -0.625000;-0.625000; 0.330204;, + -0.125000;-0.500000; 0.330204;, + 0.000000;-0.500000; 0.330204;, + 0.000000;-0.625000; 0.330204;, + -0.125000;-0.625000; 0.330204;, + 0.375000; 0.000000; 0.330204;, + 0.500000; 0.000000; 0.330204;, + 0.500000;-0.125000; 0.330204;, + 0.375000;-0.125000; 0.330204;, + 0.375000;-0.500000; 0.330204;, + 0.500000;-0.500000; 0.330204;, + 0.500000;-0.625000; 0.330204;, + 0.375000;-0.625000; 0.330204;, + 0.625000; 1.000000; 0.330204;, + 0.750000; 1.000000; 0.330204;, + 0.750000; 0.875000; 0.330204;, + 0.625000; 0.875000; 0.330204;, + 0.625000; 0.750000; 0.330204;, + 0.750000; 0.750000; 0.330204;, + 0.750000; 0.625000; 0.330204;, + 0.625000; 0.625000; 0.330204;, + -0.375000; 1.000000; 0.330204;, + -0.250000; 1.000000; 0.330204;, + -0.250000; 0.875000; 0.330204;, + -0.375000; 0.875000; 0.330204;, + -0.375000; 0.750000; 0.330204;, + -0.250000; 0.750000; 0.330204;, + -0.250000; 0.625000; 0.330204;, + -0.375000; 0.625000; 0.330204;, + -0.125000; 0.750000; 0.330204;, + 0.000000; 0.750000; 0.330204;, + 0.000000; 0.625000; 0.330204;, + -0.125000; 0.625000; 0.330204;, + -0.375000; 0.000000; 0.330204;, + -0.250000; 0.000000; 0.330204;, + -0.250000;-0.125000; 0.330204;, + -0.375000;-0.125000; 0.330204;, + -0.375000;-0.250000; 0.330204;, + -0.250000;-0.250000; 0.330204;, + -0.250000;-0.375000; 0.330204;, + -0.375000;-0.375000; 0.330204;, + -0.125000;-0.250000; 0.330204;, + 0.000000;-0.250000; 0.330204;, + 0.000000;-0.375000; 0.330204;, + -0.125000;-0.375000; 0.330204;, + 0.625000; 0.000000; 0.330204;, + 0.750000; 0.000000; 0.330204;, + 0.750000;-0.125000; 0.330204;, + 0.625000;-0.125000; 0.330204;, + 0.625000;-0.250000; 0.330204;, + 0.750000;-0.250000; 0.330204;, + 0.750000;-0.375000; 0.330204;, + 0.625000;-0.375000; 0.330204;, + 0.125000; 1.000000; 0.330204;, + 0.250000; 1.000000; 0.330204;, + 0.250000; 0.875000; 0.330204;, + 0.125000; 0.875000; 0.330204;, + 0.125000; 0.750000; 0.330204;, + 0.250000; 0.750000; 0.330204;, + 0.250000; 0.625000; 0.330204;, + 0.125000; 0.625000; 0.330204;, + 0.375000; 0.750000; 0.330204;, + 0.500000; 0.750000; 0.330204;, + 0.500000; 0.625000; 0.330204;, + 0.375000; 0.625000; 0.330204;, + 0.125000; 0.500000; 0.330204;, + 0.250000; 0.500000; 0.330204;, + 0.250000; 0.375000; 0.330204;, + 0.125000; 0.375000; 0.330204;, + 0.125000; 0.250000; 0.330204;, + 0.250000; 0.250000; 0.330204;, + 0.250000; 0.125000; 0.330204;, + 0.125000; 0.125000; 0.330204;, + 0.375000; 0.250000; 0.330204;, + 0.500000; 0.250000; 0.330204;, + 0.500000; 0.125000; 0.330204;, + 0.375000; 0.125000; 0.330204;, + 0.625000; 0.500000; 0.330204;, + 0.750000; 0.500000; 0.330204;, + 0.750000; 0.375000; 0.330204;, + 0.625000; 0.375000; 0.330204;, + 0.625000; 0.250000; 0.330204;, + 0.750000; 0.250000; 0.330204;, + 0.750000; 0.125000; 0.330204;, + 0.625000; 0.125000; 0.330204;, + -0.625000; 0.750000; 0.330204;, + -0.500000; 0.750000; 0.330204;, + -0.500000; 0.625000; 0.330204;, + -0.625000; 0.625000; 0.330204;, + -0.625000; 0.250000; 0.330204;, + -0.500000; 0.250000; 0.330204;, + -0.500000; 0.125000; 0.330204;, + -0.625000; 0.125000; 0.330204;, + -0.375000; 0.500000; 0.330204;, + -0.250000; 0.500000; 0.330204;, + -0.250000; 0.375000; 0.330204;, + -0.375000; 0.375000; 0.330204;, + -0.375000; 0.250000; 0.330204;, + -0.250000; 0.250000; 0.330204;, + -0.250000; 0.125000; 0.330204;, + -0.375000; 0.125000; 0.330204;, + -0.125000; 0.250000; 0.330204;, + 0.000000; 0.250000; 0.330204;, + 0.000000; 0.125000; 0.330204;, + -0.125000; 0.125000; 0.330204;, + -0.625000;-0.250000; 0.330204;, + -0.500000;-0.250000; 0.330204;, + -0.500000;-0.375000; 0.330204;, + -0.625000;-0.375000; 0.330204;, + -0.625000;-0.750000; 0.330204;, + -0.500000;-0.750000; 0.330204;, + -0.500000;-0.875000; 0.330204;, + -0.625000;-0.875000; 0.330204;, + -0.375000;-0.500000; 0.330204;, + -0.250000;-0.500000; 0.330204;, + -0.250000;-0.625000; 0.330204;, + -0.375000;-0.625000; 0.330204;, + -0.375000;-0.750000; 0.330204;, + -0.250000;-0.750000; 0.330204;, + -0.250000;-0.875000; 0.330204;, + -0.375000;-0.875000; 0.330204;, + -0.125000;-0.750000; 0.330204;, + 0.000000;-0.750000; 0.330204;, + 0.000000;-0.875000; 0.330204;, + -0.125000;-0.875000; 0.330204;, + 0.125000; 0.000000; 0.330204;, + 0.250000; 0.000000; 0.330204;, + 0.250000;-0.125000; 0.330204;, + 0.125000;-0.125000; 0.330204;, + 0.125000;-0.250000; 0.330204;, + 0.250000;-0.250000; 0.330204;, + 0.250000;-0.375000; 0.330204;, + 0.125000;-0.375000; 0.330204;, + 0.375000;-0.250000; 0.330204;, + 0.500000;-0.250000; 0.330204;, + 0.500000;-0.375000; 0.330204;, + 0.375000;-0.375000; 0.330204;, + 0.125000;-0.500000; 0.330204;, + 0.250000;-0.500000; 0.330204;, + 0.250000;-0.625000; 0.330204;, + 0.125000;-0.625000; 0.330204;, + 0.125000;-0.750000; 0.330204;, + 0.250000;-0.750000; 0.330204;, + 0.250000;-0.875000; 0.330204;, + 0.125000;-0.875000; 0.330204;, + 0.375000;-0.750000; 0.330204;, + 0.500000;-0.750000; 0.330204;, + 0.500000;-0.875000; 0.330204;, + 0.375000;-0.875000; 0.330204;, + 0.625000;-0.500000; 0.330204;, + 0.750000;-0.500000; 0.330204;, + 0.750000;-0.625000; 0.330204;, + 0.625000;-0.625000; 0.330204;, + 0.625000;-0.750000; 0.330204;, + 0.750000;-0.750000; 0.330204;, + 0.750000;-0.875000; 0.330204;, + 0.625000;-0.875000; 0.330204;, + -0.125000; 0.875000; 0.330204;, + 0.000000; 0.875000; 0.330204;, + 0.000000; 0.750000; 0.330204;, + -0.125000; 0.750000; 0.330204;, + -0.125000;-0.125000; 0.330204;, + 0.000000;-0.125000; 0.330204;, + 0.000000;-0.250000; 0.330204;, + -0.125000;-0.250000; 0.330204;, + 0.375000; 0.875000; 0.330204;, + 0.500000; 0.875000; 0.330204;, + 0.500000; 0.750000; 0.330204;, + 0.375000; 0.750000; 0.330204;, + 0.375000; 0.375000; 0.330204;, + 0.500000; 0.375000; 0.330204;, + 0.500000; 0.250000; 0.330204;, + 0.375000; 0.250000; 0.330204;, + -0.625000; 0.875000; 0.330204;, + -0.500000; 0.875000; 0.330204;, + -0.500000; 0.750000; 0.330204;, + -0.625000; 0.750000; 0.330204;, + -0.625000; 0.375000; 0.330204;, + -0.500000; 0.375000; 0.330204;, + -0.500000; 0.250000; 0.330204;, + -0.625000; 0.250000; 0.330204;, + -0.125000; 0.375000; 0.330204;, + 0.000000; 0.375000; 0.330204;, + 0.000000; 0.250000; 0.330204;, + -0.125000; 0.250000; 0.330204;, + -0.625000;-0.125000; 0.330204;, + -0.500000;-0.125000; 0.330204;, + -0.500000;-0.250000; 0.330204;, + -0.625000;-0.250000; 0.330204;, + -0.625000;-0.625000; 0.330204;, + -0.500000;-0.625000; 0.330204;, + -0.500000;-0.750000; 0.330204;, + -0.625000;-0.750000; 0.330204;, + -0.125000;-0.625000; 0.330204;, + 0.000000;-0.625000; 0.330204;, + 0.000000;-0.750000; 0.330204;, + -0.125000;-0.750000; 0.330204;, + 0.375000;-0.125000; 0.330204;, + 0.500000;-0.125000; 0.330204;, + 0.500000;-0.250000; 0.330204;, + 0.375000;-0.250000; 0.330204;, + 0.375000;-0.625000; 0.330204;, + 0.500000;-0.625000; 0.330204;, + 0.500000;-0.750000; 0.330204;, + 0.375000;-0.750000; 0.330204;, + 0.500000; 1.000000; 0.330204;, + 0.625000; 1.000000; 0.330204;, + 0.625000; 0.875000; 0.330204;, + 0.500000; 0.875000; 0.330204;, + 0.500000; 0.875000; 0.330204;, + 0.625000; 0.875000; 0.330204;, + 0.625000; 0.750000; 0.330204;, + 0.500000; 0.750000; 0.330204;, + 0.625000; 0.875000; 0.330204;, + 0.750000; 0.875000; 0.330204;, + 0.750000; 0.750000; 0.330204;, + 0.625000; 0.750000; 0.330204;, + 0.500000; 0.750000; 0.330204;, + 0.625000; 0.750000; 0.330204;, + 0.625000; 0.625000; 0.330204;, + 0.500000; 0.625000; 0.330204;, + 0.500000; 0.625000; 0.330204;, + 0.625000; 0.625000; 0.330204;, + 0.625000; 0.500000; 0.330204;, + 0.500000; 0.500000; 0.330204;, + 0.625000; 0.625000; 0.330204;, + 0.750000; 0.625000; 0.330204;, + 0.750000; 0.500000; 0.330204;, + 0.625000; 0.500000; 0.330204;, + -0.500000; 1.000000; 0.330204;, + -0.375000; 1.000000; 0.330204;, + -0.375000; 0.875000; 0.330204;, + -0.500000; 0.875000; 0.330204;, + -0.500000; 0.875000; 0.330204;, + -0.375000; 0.875000; 0.330204;, + -0.375000; 0.750000; 0.330204;, + -0.500000; 0.750000; 0.330204;, + -0.375000; 0.875000; 0.330204;, + -0.250000; 0.875000; 0.330204;, + -0.250000; 0.750000; 0.330204;, + -0.375000; 0.750000; 0.330204;, + -0.500000; 0.750000; 0.330204;, + -0.375000; 0.750000; 0.330204;, + -0.375000; 0.625000; 0.330204;, + -0.500000; 0.625000; 0.330204;, + -0.500000; 0.625000; 0.330204;, + -0.375000; 0.625000; 0.330204;, + -0.375000; 0.500000; 0.330204;, + -0.500000; 0.500000; 0.330204;, + -0.375000; 0.625000; 0.330204;, + -0.250000; 0.625000; 0.330204;, + -0.250000; 0.500000; 0.330204;, + -0.375000; 0.500000; 0.330204;, + -0.125000; 0.625000; 0.330204;, + 0.000000; 0.625000; 0.330204;, + 0.000000; 0.500000; 0.330204;, + -0.125000; 0.500000; 0.330204;, + -0.500000; 0.000000; 0.330204;, + -0.375000; 0.000000; 0.330204;, + -0.375000;-0.125000; 0.330204;, + -0.500000;-0.125000; 0.330204;, + -0.500000;-0.125000; 0.330204;, + -0.375000;-0.125000; 0.330204;, + -0.375000;-0.250000; 0.330204;, + -0.500000;-0.250000; 0.330204;, + -0.375000;-0.125000; 0.330204;, + -0.250000;-0.125000; 0.330204;, + -0.250000;-0.250000; 0.330204;, + -0.375000;-0.250000; 0.330204;, + -0.500000;-0.250000; 0.330204;, + -0.375000;-0.250000; 0.330204;, + -0.375000;-0.375000; 0.330204;, + -0.500000;-0.375000; 0.330204;, + -0.500000;-0.375000; 0.330204;, + -0.375000;-0.375000; 0.330204;, + -0.375000;-0.500000; 0.330204;, + -0.500000;-0.500000; 0.330204;, + -0.375000;-0.375000; 0.330204;, + -0.250000;-0.375000; 0.330204;, + -0.250000;-0.500000; 0.330204;, + -0.375000;-0.500000; 0.330204;, + -0.125000;-0.375000; 0.330204;, + 0.000000;-0.375000; 0.330204;, + 0.000000;-0.500000; 0.330204;, + -0.125000;-0.500000; 0.330204;, + 0.500000; 0.000000; 0.330204;, + 0.625000; 0.000000; 0.330204;, + 0.625000;-0.125000; 0.330204;, + 0.500000;-0.125000; 0.330204;, + 0.500000;-0.125000; 0.330204;, + 0.625000;-0.125000; 0.330204;, + 0.625000;-0.250000; 0.330204;, + 0.500000;-0.250000; 0.330204;, + 0.625000;-0.125000; 0.330204;, + 0.750000;-0.125000; 0.330204;, + 0.750000;-0.250000; 0.330204;, + 0.625000;-0.250000; 0.330204;, + 0.500000;-0.250000; 0.330204;, + 0.625000;-0.250000; 0.330204;, + 0.625000;-0.375000; 0.330204;, + 0.500000;-0.375000; 0.330204;, + 0.500000;-0.375000; 0.330204;, + 0.625000;-0.375000; 0.330204;, + 0.625000;-0.500000; 0.330204;, + 0.500000;-0.500000; 0.330204;, + 0.625000;-0.375000; 0.330204;, + 0.750000;-0.375000; 0.330204;, + 0.750000;-0.500000; 0.330204;, + 0.625000;-0.500000; 0.330204;, + 0.000000; 1.000000; 0.330204;, + 0.125000; 1.000000; 0.330204;, + 0.125000; 0.875000; 0.330204;, + 0.000000; 0.875000; 0.330204;, + 0.000000; 0.875000; 0.330204;, + 0.125000; 0.875000; 0.330204;, + 0.125000; 0.750000; 0.330204;, + 0.000000; 0.750000; 0.330204;, + 0.125000; 0.875000; 0.330204;, + 0.250000; 0.875000; 0.330204;, + 0.250000; 0.750000; 0.330204;, + 0.125000; 0.750000; 0.330204;, + 0.000000; 0.750000; 0.330204;, + 0.125000; 0.750000; 0.330204;, + 0.125000; 0.625000; 0.330204;, + 0.000000; 0.625000; 0.330204;, + 0.000000; 0.625000; 0.330204;, + 0.125000; 0.625000; 0.330204;, + 0.125000; 0.500000; 0.330204;, + 0.000000; 0.500000; 0.330204;, + 0.125000; 0.625000; 0.330204;, + 0.250000; 0.625000; 0.330204;, + 0.250000; 0.500000; 0.330204;, + 0.125000; 0.500000; 0.330204;, + 0.375000; 0.625000; 0.330204;, + 0.500000; 0.625000; 0.330204;, + 0.500000; 0.500000; 0.330204;, + 0.375000; 0.500000; 0.330204;, + 0.000000; 0.500000; 0.330204;, + 0.125000; 0.500000; 0.330204;, + 0.125000; 0.375000; 0.330204;, + 0.000000; 0.375000; 0.330204;, + 0.000000; 0.375000; 0.330204;, + 0.125000; 0.375000; 0.330204;, + 0.125000; 0.250000; 0.330204;, + 0.000000; 0.250000; 0.330204;, + 0.125000; 0.375000; 0.330204;, + 0.250000; 0.375000; 0.330204;, + 0.250000; 0.250000; 0.330204;, + 0.125000; 0.250000; 0.330204;, + 0.000000; 0.250000; 0.330204;, + 0.125000; 0.250000; 0.330204;, + 0.125000; 0.125000; 0.330204;, + 0.000000; 0.125000; 0.330204;, + 0.000000; 0.125000; 0.330204;, + 0.125000; 0.125000; 0.330204;, + 0.125000; 0.000000; 0.330204;, + 0.000000; 0.000000; 0.330204;, + 0.125000; 0.125000; 0.330204;, + 0.250000; 0.125000; 0.330204;, + 0.250000; 0.000000; 0.330204;, + 0.125000; 0.000000; 0.330204;, + 0.375000; 0.125000; 0.330204;, + 0.500000; 0.125000; 0.330204;, + 0.500000; 0.000000; 0.330204;, + 0.375000; 0.000000; 0.330204;, + 0.500000; 0.500000; 0.330204;, + 0.625000; 0.500000; 0.330204;, + 0.625000; 0.375000; 0.330204;, + 0.500000; 0.375000; 0.330204;, + 0.500000; 0.375000; 0.330204;, + 0.625000; 0.375000; 0.330204;, + 0.625000; 0.250000; 0.330204;, + 0.500000; 0.250000; 0.330204;, + 0.625000; 0.375000; 0.330204;, + 0.750000; 0.375000; 0.330204;, + 0.750000; 0.250000; 0.330204;, + 0.625000; 0.250000; 0.330204;, + 0.500000; 0.250000; 0.330204;, + 0.625000; 0.250000; 0.330204;, + 0.625000; 0.125000; 0.330204;, + 0.500000; 0.125000; 0.330204;, + 0.500000; 0.125000; 0.330204;, + 0.625000; 0.125000; 0.330204;, + 0.625000; 0.000000; 0.330204;, + 0.500000; 0.000000; 0.330204;, + 0.625000; 0.125000; 0.330204;, + 0.750000; 0.125000; 0.330204;, + 0.750000; 0.000000; 0.330204;, + 0.625000; 0.000000; 0.330204;, + -0.625000; 0.625000; 0.330204;, + -0.500000; 0.625000; 0.330204;, + -0.500000; 0.500000; 0.330204;, + -0.625000; 0.500000; 0.330204;, + -0.625000; 0.125000; 0.330204;, + -0.500000; 0.125000; 0.330204;, + -0.500000; 0.000000; 0.330204;, + -0.625000; 0.000000; 0.330204;, + -0.500000; 0.500000; 0.330204;, + -0.375000; 0.500000; 0.330204;, + -0.375000; 0.375000; 0.330204;, + -0.500000; 0.375000; 0.330204;, + -0.500000; 0.375000; 0.330204;, + -0.375000; 0.375000; 0.330204;, + -0.375000; 0.250000; 0.330204;, + -0.500000; 0.250000; 0.330204;, + -0.375000; 0.375000; 0.330204;, + -0.250000; 0.375000; 0.330204;, + -0.250000; 0.250000; 0.330204;, + -0.375000; 0.250000; 0.330204;, + -0.500000; 0.250000; 0.330204;, + -0.375000; 0.250000; 0.330204;, + -0.375000; 0.125000; 0.330204;, + -0.500000; 0.125000; 0.330204;, + -0.500000; 0.125000; 0.330204;, + -0.375000; 0.125000; 0.330204;, + -0.375000; 0.000000; 0.330204;, + -0.500000; 0.000000; 0.330204;, + -0.375000; 0.125000; 0.330204;, + -0.250000; 0.125000; 0.330204;, + -0.250000; 0.000000; 0.330204;, + -0.375000; 0.000000; 0.330204;, + -0.125000; 0.125000; 0.330204;, + 0.000000; 0.125000; 0.330204;, + 0.000000; 0.000000; 0.330204;, + -0.125000; 0.000000; 0.330204;, + -0.625000;-0.375000; 0.330204;, + -0.500000;-0.375000; 0.330204;, + -0.500000;-0.500000; 0.330204;, + -0.625000;-0.500000; 0.330204;, + -0.625000;-0.875000; 0.330204;, + -0.500000;-0.875000; 0.330204;, + -0.500000;-1.000000; 0.330204;, + -0.625000;-1.000000; 0.330204;, + -0.500000;-0.500000; 0.330204;, + -0.375000;-0.500000; 0.330204;, + -0.375000;-0.625000; 0.330204;, + -0.500000;-0.625000; 0.330204;, + -0.500000;-0.625000; 0.330204;, + -0.375000;-0.625000; 0.330204;, + -0.375000;-0.750000; 0.330204;, + -0.500000;-0.750000; 0.330204;, + -0.375000;-0.625000; 0.330204;, + -0.250000;-0.625000; 0.330204;, + -0.250000;-0.750000; 0.330204;, + -0.375000;-0.750000; 0.330204;, + -0.500000;-0.750000; 0.330204;, + -0.375000;-0.750000; 0.330204;, + -0.375000;-0.875000; 0.330204;, + -0.500000;-0.875000; 0.330204;, + -0.500000;-0.875000; 0.330204;, + -0.375000;-0.875000; 0.330204;, + -0.375000;-1.000000; 0.330204;, + -0.500000;-1.000000; 0.330204;, + -0.375000;-0.875000; 0.330204;, + -0.250000;-0.875000; 0.330204;, + -0.250000;-1.000000; 0.330204;, + -0.375000;-1.000000; 0.330204;, + -0.125000;-0.875000; 0.330204;, + 0.000000;-0.875000; 0.330204;, + 0.000000;-1.000000; 0.330204;, + -0.125000;-1.000000; 0.330204;, + 0.000000; 0.000000; 0.330204;, + 0.125000; 0.000000; 0.330204;, + 0.125000;-0.125000; 0.330204;, + 0.000000;-0.125000; 0.330204;, + 0.000000;-0.125000; 0.330204;, + 0.125000;-0.125000; 0.330204;, + 0.125000;-0.250000; 0.330204;, + 0.000000;-0.250000; 0.330204;, + 0.125000;-0.125000; 0.330204;, + 0.250000;-0.125000; 0.330204;, + 0.250000;-0.250000; 0.330204;, + 0.125000;-0.250000; 0.330204;, + 0.000000;-0.250000; 0.330204;, + 0.125000;-0.250000; 0.330204;, + 0.125000;-0.375000; 0.330204;, + 0.000000;-0.375000; 0.330204;, + 0.000000;-0.375000; 0.330204;, + 0.125000;-0.375000; 0.330204;, + 0.125000;-0.500000; 0.330204;, + 0.000000;-0.500000; 0.330204;, + 0.125000;-0.375000; 0.330204;, + 0.250000;-0.375000; 0.330204;, + 0.250000;-0.500000; 0.330204;, + 0.125000;-0.500000; 0.330204;, + 0.375000;-0.375000; 0.330204;, + 0.500000;-0.375000; 0.330204;, + 0.500000;-0.500000; 0.330204;, + 0.375000;-0.500000; 0.330204;, + 0.000000;-0.500000; 0.330204;, + 0.125000;-0.500000; 0.330204;, + 0.125000;-0.625000; 0.330204;, + 0.000000;-0.625000; 0.330204;, + 0.000000;-0.625000; 0.330204;, + 0.125000;-0.625000; 0.330204;, + 0.125000;-0.750000; 0.330204;, + 0.000000;-0.750000; 0.330204;, + 0.125000;-0.625000; 0.330204;, + 0.250000;-0.625000; 0.330204;, + 0.250000;-0.750000; 0.330204;, + 0.125000;-0.750000; 0.330204;, + 0.000000;-0.750000; 0.330204;, + 0.125000;-0.750000; 0.330204;, + 0.125000;-0.875000; 0.330204;, + 0.000000;-0.875000; 0.330204;, + 0.000000;-0.875000; 0.330204;, + 0.125000;-0.875000; 0.330204;, + 0.125000;-1.000000; 0.330204;, + 0.000000;-1.000000; 0.330204;, + 0.125000;-0.875000; 0.330204;, + 0.250000;-0.875000; 0.330204;, + 0.250000;-1.000000; 0.330204;, + 0.125000;-1.000000; 0.330204;, + 0.375000;-0.875000; 0.330204;, + 0.500000;-0.875000; 0.330204;, + 0.500000;-1.000000; 0.330204;, + 0.375000;-1.000000; 0.330204;, + 0.500000;-0.500000; 0.330204;, + 0.625000;-0.500000; 0.330204;, + 0.625000;-0.625000; 0.330204;, + 0.500000;-0.625000; 0.330204;, + 0.500000;-0.625000; 0.330204;, + 0.625000;-0.625000; 0.330204;, + 0.625000;-0.750000; 0.330204;, + 0.500000;-0.750000; 0.330204;, + 0.625000;-0.625000; 0.330204;, + 0.750000;-0.625000; 0.330204;, + 0.750000;-0.750000; 0.330204;, + 0.625000;-0.750000; 0.330204;, + 0.500000;-0.750000; 0.330204;, + 0.625000;-0.750000; 0.330204;, + 0.625000;-0.875000; 0.330204;, + 0.500000;-0.875000; 0.330204;, + 0.500000;-0.875000; 0.330204;, + 0.625000;-0.875000; 0.330204;, + 0.625000;-1.000000; 0.330204;, + 0.500000;-1.000000; 0.330204;, + 0.625000;-0.875000; 0.330204;, + 0.750000;-0.875000; 0.330204;, + 0.750000;-1.000000; 0.330204;, + 0.625000;-1.000000; 0.330204;, + -0.500000; 0.625000;-0.117178;, + -0.500000; 0.750000;-0.117178;, + -0.625000; 0.750000;-0.117178;, + -0.625000; 0.625000;-0.117178;, + -0.500000; 0.125000;-0.117178;, + -0.500000; 0.250000;-0.117178;, + -0.625000; 0.250000;-0.117178;, + -0.625000; 0.125000;-0.117178;, + -0.250000; 0.375000;-0.117178;, + -0.250000; 0.500000;-0.117178;, + -0.375000; 0.500000;-0.117178;, + -0.375000; 0.375000;-0.117178;, + -0.250000; 0.125000;-0.117178;, + -0.250000; 0.250000;-0.117178;, + -0.375000; 0.250000;-0.117178;, + -0.375000; 0.125000;-0.117178;, + 0.000000; 0.125000;-0.117178;, + 0.000000; 0.250000;-0.117178;, + -0.125000; 0.250000;-0.117178;, + -0.125000; 0.125000;-0.117178;, + -0.500000;-0.375000;-0.117178;, + -0.500000;-0.250000;-0.117178;, + -0.625000;-0.250000;-0.117178;, + -0.625000;-0.375000;-0.117178;, + -0.500000;-0.875000;-0.117178;, + -0.500000;-0.750000;-0.117178;, + -0.625000;-0.750000;-0.117178;, + -0.625000;-0.875000;-0.117178;, + -0.250000;-0.625000;-0.117178;, + -0.250000;-0.500000;-0.117178;, + -0.375000;-0.500000;-0.117178;, + -0.375000;-0.625000;-0.117178;, + -0.250000;-0.875000;-0.117178;, + -0.250000;-0.750000;-0.117178;, + -0.375000;-0.750000;-0.117178;, + -0.375000;-0.875000;-0.117178;, + 0.000000;-0.875000;-0.117178;, + 0.000000;-0.750000;-0.117178;, + -0.125000;-0.750000;-0.117178;, + -0.125000;-0.875000;-0.117178;, + 0.250000;-0.125000;-0.117178;, + 0.250000; 0.000000;-0.117178;, + 0.125000; 0.000000;-0.117178;, + 0.125000;-0.125000;-0.117178;, + 0.250000;-0.375000;-0.117178;, + 0.250000;-0.250000;-0.117178;, + 0.125000;-0.250000;-0.117178;, + 0.125000;-0.375000;-0.117178;, + 0.500000;-0.375000;-0.117178;, + 0.500000;-0.250000;-0.117178;, + 0.375000;-0.250000;-0.117178;, + 0.375000;-0.375000;-0.117178;, + 0.250000;-0.625000;-0.117178;, + 0.250000;-0.500000;-0.117178;, + 0.125000;-0.500000;-0.117178;, + 0.125000;-0.625000;-0.117178;, + 0.250000;-0.875000;-0.117178;, + 0.250000;-0.750000;-0.117178;, + 0.125000;-0.750000;-0.117178;, + 0.125000;-0.875000;-0.117178;, + 0.500000;-0.875000;-0.117178;, + 0.500000;-0.750000;-0.117178;, + 0.375000;-0.750000;-0.117178;, + 0.375000;-0.875000;-0.117178;, + 0.750000;-0.625000;-0.117178;, + 0.750000;-0.500000;-0.117178;, + 0.625000;-0.500000;-0.117178;, + 0.625000;-0.625000;-0.117178;, + 0.750000;-0.875000;-0.117178;, + 0.750000;-0.750000;-0.117178;, + 0.625000;-0.750000;-0.117178;, + 0.625000;-0.875000;-0.117178;, + 0.000000; 0.750000;-0.117178;, + 0.000000; 0.875000;-0.117178;, + -0.125000; 0.875000;-0.117178;, + -0.125000; 0.750000;-0.117178;, + 0.000000;-0.250000;-0.117178;, + 0.000000;-0.125000;-0.117178;, + -0.125000;-0.125000;-0.117178;, + -0.125000;-0.250000;-0.117178;, + 0.500000; 0.750000;-0.117178;, + 0.500000; 0.875000;-0.117178;, + 0.375000; 0.875000;-0.117178;, + 0.375000; 0.750000;-0.117178;, + 0.500000; 0.250000;-0.117178;, + 0.500000; 0.375000;-0.117178;, + 0.375000; 0.375000;-0.117178;, + 0.375000; 0.250000;-0.117178;, + -0.500000; 0.750000;-0.117178;, + -0.500000; 0.875000;-0.117178;, + -0.625000; 0.875000;-0.117178;, + -0.625000; 0.750000;-0.117178;, + -0.500000; 0.250000;-0.117178;, + -0.500000; 0.375000;-0.117178;, + -0.625000; 0.375000;-0.117178;, + -0.625000; 0.250000;-0.117178;, + 0.000000; 0.250000;-0.117178;, + 0.000000; 0.375000;-0.117178;, + -0.125000; 0.375000;-0.117178;, + -0.125000; 0.250000;-0.117178;, + -0.500000;-0.250000;-0.117178;, + -0.500000;-0.125000;-0.117178;, + -0.625000;-0.125000;-0.117178;, + -0.625000;-0.250000;-0.117178;, + -0.500000;-0.750000;-0.117178;, + -0.500000;-0.625000;-0.117178;, + -0.625000;-0.625000;-0.117178;, + -0.625000;-0.750000;-0.117178;, + 0.000000;-0.750000;-0.117178;, + 0.000000;-0.625000;-0.117178;, + -0.125000;-0.625000;-0.117178;, + -0.125000;-0.750000;-0.117178;, + 0.500000;-0.250000;-0.117178;, + 0.500000;-0.125000;-0.117178;, + 0.375000;-0.125000;-0.117178;, + 0.375000;-0.250000;-0.117178;, + 0.500000;-0.750000;-0.117178;, + 0.500000;-0.625000;-0.117178;, + 0.375000;-0.625000;-0.117178;, + 0.375000;-0.750000;-0.117178;, + 0.625000; 0.875000;-0.117178;, + 0.625000; 1.000000;-0.117178;, + 0.500000; 1.000000;-0.117178;, + 0.500000; 0.875000;-0.117178;, + 0.625000; 0.750000;-0.117178;, + 0.625000; 0.875000;-0.117178;, + 0.500000; 0.875000;-0.117178;, + 0.500000; 0.750000;-0.117178;, + 0.750000; 0.750000;-0.117178;, + 0.750000; 0.875000;-0.117178;, + 0.625000; 0.875000;-0.117178;, + 0.625000; 0.750000;-0.117178;, + 0.625000; 0.625000;-0.117178;, + 0.625000; 0.750000;-0.117178;, + 0.500000; 0.750000;-0.117178;, + 0.500000; 0.625000;-0.117178;, + 0.625000; 0.500000;-0.117178;, + 0.625000; 0.625000;-0.117178;, + 0.500000; 0.625000;-0.117178;, + 0.500000; 0.500000;-0.117178;, + 0.750000; 0.500000;-0.117178;, + 0.750000; 0.625000;-0.117178;, + 0.625000; 0.625000;-0.117178;, + 0.625000; 0.500000;-0.117178;, + -0.375000; 0.875000;-0.117178;, + -0.375000; 1.000000;-0.117178;, + -0.500000; 1.000000;-0.117178;, + -0.500000; 0.875000;-0.117178;, + -0.375000; 0.750000;-0.117178;, + -0.375000; 0.875000;-0.117178;, + -0.500000; 0.875000;-0.117178;, + -0.500000; 0.750000;-0.117178;, + -0.250000; 0.750000;-0.117178;, + -0.250000; 0.875000;-0.117178;, + -0.375000; 0.875000;-0.117178;, + -0.375000; 0.750000;-0.117178;, + -0.375000; 0.625000;-0.117178;, + -0.375000; 0.750000;-0.117178;, + -0.500000; 0.750000;-0.117178;, + -0.500000; 0.625000;-0.117178;, + -0.375000; 0.500000;-0.117178;, + -0.375000; 0.625000;-0.117178;, + -0.500000; 0.625000;-0.117178;, + -0.500000; 0.500000;-0.117178;, + -0.250000; 0.500000;-0.117178;, + -0.250000; 0.625000;-0.117178;, + -0.375000; 0.625000;-0.117178;, + -0.375000; 0.500000;-0.117178;, + 0.000000; 0.500000;-0.117178;, + 0.000000; 0.625000;-0.117178;, + -0.125000; 0.625000;-0.117178;, + -0.125000; 0.500000;-0.117178;, + -0.375000;-0.125000;-0.117178;, + -0.375000; 0.000000;-0.117178;, + -0.500000; 0.000000;-0.117178;, + -0.500000;-0.125000;-0.117178;, + -0.375000;-0.250000;-0.117178;, + -0.375000;-0.125000;-0.117178;, + -0.500000;-0.125000;-0.117178;, + -0.500000;-0.250000;-0.117178;, + -0.250000;-0.250000;-0.117178;, + -0.250000;-0.125000;-0.117178;, + -0.375000;-0.125000;-0.117178;, + -0.375000;-0.250000;-0.117178;, + -0.375000;-0.375000;-0.117178;, + -0.375000;-0.250000;-0.117178;, + -0.500000;-0.250000;-0.117178;, + -0.500000;-0.375000;-0.117178;, + -0.375000;-0.500000;-0.117178;, + -0.375000;-0.375000;-0.117178;, + -0.500000;-0.375000;-0.117178;, + -0.500000;-0.500000;-0.117178;, + -0.250000;-0.500000;-0.117178;, + -0.250000;-0.375000;-0.117178;, + -0.375000;-0.375000;-0.117178;, + -0.375000;-0.500000;-0.117178;, + 0.000000;-0.500000;-0.117178;, + 0.000000;-0.375000;-0.117178;, + -0.125000;-0.375000;-0.117178;, + -0.125000;-0.500000;-0.117178;, + 0.625000;-0.125000;-0.117178;, + 0.625000; 0.000000;-0.117178;, + 0.500000; 0.000000;-0.117178;, + 0.500000;-0.125000;-0.117178;, + 0.625000;-0.250000;-0.117178;, + 0.625000;-0.125000;-0.117178;, + 0.500000;-0.125000;-0.117178;, + 0.500000;-0.250000;-0.117178;, + 0.750000;-0.250000;-0.117178;, + 0.750000;-0.125000;-0.117178;, + 0.625000;-0.125000;-0.117178;, + 0.625000;-0.250000;-0.117178;, + 0.625000;-0.375000;-0.117178;, + 0.625000;-0.250000;-0.117178;, + 0.500000;-0.250000;-0.117178;, + 0.500000;-0.375000;-0.117178;, + 0.625000;-0.500000;-0.117178;, + 0.625000;-0.375000;-0.117178;, + 0.500000;-0.375000;-0.117178;, + 0.500000;-0.500000;-0.117178;, + 0.750000;-0.500000;-0.117178;, + 0.750000;-0.375000;-0.117178;, + 0.625000;-0.375000;-0.117178;, + 0.625000;-0.500000;-0.117178;, + 0.125000; 0.875000;-0.117178;, + 0.125000; 1.000000;-0.117178;, + 0.000000; 1.000000;-0.117178;, + 0.000000; 0.875000;-0.117178;, + 0.125000; 0.750000;-0.117178;, + 0.125000; 0.875000;-0.117178;, + 0.000000; 0.875000;-0.117178;, + 0.000000; 0.750000;-0.117178;, + 0.250000; 0.750000;-0.117178;, + 0.250000; 0.875000;-0.117178;, + 0.125000; 0.875000;-0.117178;, + 0.125000; 0.750000;-0.117178;, + 0.125000; 0.625000;-0.117178;, + 0.125000; 0.750000;-0.117178;, + 0.000000; 0.750000;-0.117178;, + 0.000000; 0.625000;-0.117178;, + 0.125000; 0.500000;-0.117178;, + 0.125000; 0.625000;-0.117178;, + 0.000000; 0.625000;-0.117178;, + 0.000000; 0.500000;-0.117178;, + 0.250000; 0.500000;-0.117178;, + 0.250000; 0.625000;-0.117178;, + 0.125000; 0.625000;-0.117178;, + 0.125000; 0.500000;-0.117178;, + 0.500000; 0.500000;-0.117178;, + 0.500000; 0.625000;-0.117178;, + 0.375000; 0.625000;-0.117178;, + 0.375000; 0.500000;-0.117178;, + 0.125000; 0.375000;-0.117178;, + 0.125000; 0.500000;-0.117178;, + 0.000000; 0.500000;-0.117178;, + 0.000000; 0.375000;-0.117178;, + 0.125000; 0.250000;-0.117178;, + 0.125000; 0.375000;-0.117178;, + 0.000000; 0.375000;-0.117178;, + 0.000000; 0.250000;-0.117178;, + 0.250000; 0.250000;-0.117178;, + 0.250000; 0.375000;-0.117178;, + 0.125000; 0.375000;-0.117178;, + 0.125000; 0.250000;-0.117178;, + 0.125000; 0.125000;-0.117178;, + 0.125000; 0.250000;-0.117178;, + 0.000000; 0.250000;-0.117178;, + 0.000000; 0.125000;-0.117178;, + 0.125000; 0.000000;-0.117178;, + 0.125000; 0.125000;-0.117178;, + 0.000000; 0.125000;-0.117178;, + 0.000000; 0.000000;-0.117178;, + 0.250000; 0.000000;-0.117178;, + 0.250000; 0.125000;-0.117178;, + 0.125000; 0.125000;-0.117178;, + 0.125000; 0.000000;-0.117178;, + 0.500000; 0.000000;-0.117178;, + 0.500000; 0.125000;-0.117178;, + 0.375000; 0.125000;-0.117178;, + 0.375000; 0.000000;-0.117178;, + 0.625000; 0.375000;-0.117178;, + 0.625000; 0.500000;-0.117178;, + 0.500000; 0.500000;-0.117178;, + 0.500000; 0.375000;-0.117178;, + 0.625000; 0.250000;-0.117178;, + 0.625000; 0.375000;-0.117178;, + 0.500000; 0.375000;-0.117178;, + 0.500000; 0.250000;-0.117178;, + 0.750000; 0.250000;-0.117178;, + 0.750000; 0.375000;-0.117178;, + 0.625000; 0.375000;-0.117178;, + 0.625000; 0.250000;-0.117178;, + 0.625000; 0.125000;-0.117178;, + 0.625000; 0.250000;-0.117178;, + 0.500000; 0.250000;-0.117178;, + 0.500000; 0.125000;-0.117178;, + 0.625000; 0.000000;-0.117178;, + 0.625000; 0.125000;-0.117178;, + 0.500000; 0.125000;-0.117178;, + 0.500000; 0.000000;-0.117178;, + 0.750000; 0.000000;-0.117178;, + 0.750000; 0.125000;-0.117178;, + 0.625000; 0.125000;-0.117178;, + 0.625000; 0.000000;-0.117178;, + -0.500000; 0.500000;-0.117178;, + -0.500000; 0.625000;-0.117178;, + -0.625000; 0.625000;-0.117178;, + -0.625000; 0.500000;-0.117178;, + -0.500000; 0.000000;-0.117178;, + -0.500000; 0.125000;-0.117178;, + -0.625000; 0.125000;-0.117178;, + -0.625000; 0.000000;-0.117178;, + -0.375000; 0.375000;-0.117178;, + -0.375000; 0.500000;-0.117178;, + -0.500000; 0.500000;-0.117178;, + -0.500000; 0.375000;-0.117178;, + -0.375000; 0.250000;-0.117178;, + -0.375000; 0.375000;-0.117178;, + -0.500000; 0.375000;-0.117178;, + -0.500000; 0.250000;-0.117178;, + -0.250000; 0.250000;-0.117178;, + -0.250000; 0.375000;-0.117178;, + -0.375000; 0.375000;-0.117178;, + -0.375000; 0.250000;-0.117178;, + -0.375000; 0.125000;-0.117178;, + -0.375000; 0.250000;-0.117178;, + -0.500000; 0.250000;-0.117178;, + -0.500000; 0.125000;-0.117178;, + -0.375000; 0.000000;-0.117178;, + -0.375000; 0.125000;-0.117178;, + -0.500000; 0.125000;-0.117178;, + -0.500000; 0.000000;-0.117178;, + -0.250000; 0.000000;-0.117178;, + -0.250000; 0.125000;-0.117178;, + -0.375000; 0.125000;-0.117178;, + -0.375000; 0.000000;-0.117178;, + 0.000000; 0.000000;-0.117178;, + 0.000000; 0.125000;-0.117178;, + -0.125000; 0.125000;-0.117178;, + -0.125000; 0.000000;-0.117178;, + -0.500000;-0.500000;-0.117178;, + -0.500000;-0.375000;-0.117178;, + -0.625000;-0.375000;-0.117178;, + -0.625000;-0.500000;-0.117178;, + -0.500000;-1.000000;-0.117178;, + -0.500000;-0.875000;-0.117178;, + -0.625000;-0.875000;-0.117178;, + -0.625000;-1.000000;-0.117178;, + -0.375000;-0.625000;-0.117178;, + -0.375000;-0.500000;-0.117178;, + -0.500000;-0.500000;-0.117178;, + -0.500000;-0.625000;-0.117178;, + -0.375000;-0.750000;-0.117178;, + -0.375000;-0.625000;-0.117178;, + -0.500000;-0.625000;-0.117178;, + -0.500000;-0.750000;-0.117178;, + -0.250000;-0.750000;-0.117178;, + -0.250000;-0.625000;-0.117178;, + -0.375000;-0.625000;-0.117178;, + -0.375000;-0.750000;-0.117178;, + -0.375000;-0.875000;-0.117178;, + -0.375000;-0.750000;-0.117178;, + -0.500000;-0.750000;-0.117178;, + -0.500000;-0.875000;-0.117178;, + -0.375000;-1.000000;-0.117178;, + -0.375000;-0.875000;-0.117178;, + -0.500000;-0.875000;-0.117178;, + -0.500000;-1.000000;-0.117178;, + -0.250000;-1.000000;-0.117178;, + -0.250000;-0.875000;-0.117178;, + -0.375000;-0.875000;-0.117178;, + -0.375000;-1.000000;-0.117178;, + 0.000000;-1.000000;-0.117178;, + 0.000000;-0.875000;-0.117178;, + -0.125000;-0.875000;-0.117178;, + -0.125000;-1.000000;-0.117178;, + 0.125000;-0.125000;-0.117178;, + 0.125000; 0.000000;-0.117178;, + 0.000000; 0.000000;-0.117178;, + 0.000000;-0.125000;-0.117178;, + 0.125000;-0.250000;-0.117178;, + 0.125000;-0.125000;-0.117178;, + 0.000000;-0.125000;-0.117178;, + 0.000000;-0.250000;-0.117178;, + 0.250000;-0.250000;-0.117178;, + 0.250000;-0.125000;-0.117178;, + 0.125000;-0.125000;-0.117178;, + 0.125000;-0.250000;-0.117178;, + 0.125000;-0.375000;-0.117178;, + 0.125000;-0.250000;-0.117178;, + 0.000000;-0.250000;-0.117178;, + 0.000000;-0.375000;-0.117178;, + 0.125000;-0.500000;-0.117178;, + 0.125000;-0.375000;-0.117178;, + 0.000000;-0.375000;-0.117178;, + 0.000000;-0.500000;-0.117178;, + 0.250000;-0.500000;-0.117178;, + 0.250000;-0.375000;-0.117178;, + 0.125000;-0.375000;-0.117178;, + 0.125000;-0.500000;-0.117178;, + 0.500000;-0.500000;-0.117178;, + 0.500000;-0.375000;-0.117178;, + 0.375000;-0.375000;-0.117178;, + 0.375000;-0.500000;-0.117178;, + 0.125000;-0.625000;-0.117178;, + 0.125000;-0.500000;-0.117178;, + 0.000000;-0.500000;-0.117178;, + 0.000000;-0.625000;-0.117178;, + 0.125000;-0.750000;-0.117178;, + 0.125000;-0.625000;-0.117178;, + 0.000000;-0.625000;-0.117178;, + 0.000000;-0.750000;-0.117178;, + 0.250000;-0.750000;-0.117178;, + 0.250000;-0.625000;-0.117178;, + 0.125000;-0.625000;-0.117178;, + 0.125000;-0.750000;-0.117178;, + 0.125000;-0.875000;-0.117178;, + 0.125000;-0.750000;-0.117178;, + 0.000000;-0.750000;-0.117178;, + 0.000000;-0.875000;-0.117178;, + 0.125000;-1.000000;-0.117178;, + 0.125000;-0.875000;-0.117178;, + 0.000000;-0.875000;-0.117178;, + 0.000000;-1.000000;-0.117178;, + 0.250000;-1.000000;-0.117178;, + 0.250000;-0.875000;-0.117178;, + 0.125000;-0.875000;-0.117178;, + 0.125000;-1.000000;-0.117178;, + 0.500000;-1.000000;-0.117178;, + 0.500000;-0.875000;-0.117178;, + 0.375000;-0.875000;-0.117178;, + 0.375000;-1.000000;-0.117178;, + 0.625000;-0.625000;-0.117178;, + 0.625000;-0.500000;-0.117178;, + 0.500000;-0.500000;-0.117178;, + 0.500000;-0.625000;-0.117178;, + 0.625000;-0.750000;-0.117178;, + 0.625000;-0.625000;-0.117178;, + 0.500000;-0.625000;-0.117178;, + 0.500000;-0.750000;-0.117178;, + 0.750000;-0.750000;-0.117178;, + 0.750000;-0.625000;-0.117178;, + 0.625000;-0.625000;-0.117178;, + 0.625000;-0.750000;-0.117178;, + 0.625000;-0.875000;-0.117178;, + 0.625000;-0.750000;-0.117178;, + 0.500000;-0.750000;-0.117178;, + 0.500000;-0.875000;-0.117178;, + 0.625000;-1.000000;-0.117178;, + 0.625000;-0.875000;-0.117178;, + 0.500000;-0.875000;-0.117178;, + 0.500000;-1.000000;-0.117178;, + 0.750000;-1.000000;-0.117178;, + 0.750000;-0.875000;-0.117178;, + 0.625000;-0.875000;-0.117178;, + 0.625000;-1.000000;-0.117178;, + 0.859843;-0.875000; 0.246450;, + 0.859843;-0.750000; 0.246450;, + 0.859843;-0.750000; 0.000000;, + 0.859843;-0.875000; 0.000000;, + 0.859843; 0.750000; 0.246450;, + 0.859843; 0.875000; 0.246450;, + 0.859843; 0.875000; 0.000000;, + 0.859843; 0.750000; 0.000000;, + 0.859843; 0.125000; 0.246450;, + 0.859843; 0.250000; 0.246450;, + 0.859843; 0.250000; 0.000000;, + 0.859843; 0.125000; 0.000000;, + 0.859843;-0.500000; 0.246450;, + 0.859843;-0.375000; 0.246450;, + 0.859843;-0.375000; 0.000000;, + 0.859843;-0.500000; 0.000000;, + 0.859843;-0.625000; 0.246450;, + 0.859843;-0.500000; 0.246450;, + 0.859843;-0.500000; 0.000000;, + 0.859843;-0.625000; 0.000000;, + 0.859843; 0.375000; 0.246450;, + 0.859843; 0.500000; 0.246450;, + 0.859843; 0.500000; 0.000000;, + 0.859843; 0.375000; 0.000000;, + 0.859843;-0.375000; 0.246450;, + 0.859843;-0.250000; 0.246450;, + 0.859843;-0.250000; 0.000000;, + 0.859843;-0.375000; 0.000000;, + 0.859843;-0.750000; 0.246450;, + 0.859843;-0.625000; 0.246450;, + 0.859843;-0.625000; 0.000000;, + 0.859843;-0.750000; 0.000000;, + 0.859843; 0.250000; 0.246450;, + 0.859843; 0.375000; 0.246450;, + 0.859843; 0.375000; 0.000000;, + 0.859843; 0.250000; 0.000000;, + 0.859843; 0.500000; 0.246450;, + 0.859843; 0.625000; 0.246450;, + 0.859843; 0.625000; 0.000000;, + 0.859843; 0.500000; 0.000000;, + 0.859843;-0.125000; 0.246450;, + 0.859843; 0.000000; 0.246450;, + 0.859843; 0.000000; 0.000000;, + 0.859843;-0.125000; 0.000000;, + 0.859843; 0.625000; 0.246450;, + 0.859843; 0.750000; 0.246450;, + 0.859843; 0.750000; 0.000000;, + 0.859843; 0.625000; 0.000000;, + 0.859843;-0.250000; 0.246450;, + 0.859843;-0.125000; 0.246450;, + 0.859843;-0.125000; 0.000000;, + 0.859843;-0.250000; 0.000000;, + 0.859843;-1.000000; 0.246450;, + 0.859843;-0.875000; 0.246450;, + 0.859843;-0.875000; 0.000000;, + 0.859843;-1.000000; 0.000000;, + 0.859843; 0.875000; 0.246450;, + 0.859843; 1.000000; 0.246450;, + 0.859843; 1.000000; 0.000000;, + 0.859843; 0.875000; 0.000000;, + 0.859843; 0.000000; 0.246450;, + 0.859843; 0.125000; 0.246450;, + 0.859843; 0.125000; 0.000000;, + 0.859843; 0.000000; 0.000000;, + 0.859843; 1.000000; 0.000000;, + 0.859843; 1.000000; 0.246450;, + 0.750000; 1.000000; 0.246450;, + 0.750000; 1.000000; 0.000000;, + 0.859843;-0.250000; 0.246450;, + 0.859843;-0.375000; 0.246450;, + 0.750000;-0.375000; 0.246450;, + 0.750000;-0.250000; 0.246450;, + 0.859843; 0.625000; 0.000000;, + 0.859843; 0.750000; 0.000000;, + 0.750000; 0.750000; 0.000000;, + 0.750000; 0.625000; 0.000000;, + 0.859843;-0.625000; 0.246450;, + 0.859843;-0.750000; 0.246450;, + 0.750000;-0.750000; 0.246450;, + 0.750000;-0.625000; 0.246450;, + 0.859843;-0.250000; 0.000000;, + 0.859843;-0.125000; 0.000000;, + 0.750000;-0.125000; 0.000000;, + 0.750000;-0.250000; 0.000000;, + 0.859843; 0.000000; 0.000000;, + 0.859843; 0.125000; 0.000000;, + 0.750000; 0.125000; 0.000000;, + 0.750000; 0.000000; 0.000000;, + 0.859843; 0.625000; 0.246450;, + 0.859843; 0.500000; 0.246450;, + 0.750000; 0.500000; 0.246450;, + 0.750000; 0.625000; 0.246450;, + 0.859843; 0.375000; 0.246450;, + 0.859843; 0.250000; 0.246450;, + 0.750000; 0.250000; 0.246450;, + 0.750000; 0.375000; 0.246450;, + 0.859843;-1.000000; 0.246450;, + 0.859843;-1.000000; 0.000000;, + 0.750000;-1.000000; 0.000000;, + 0.750000;-1.000000; 0.246450;, + 0.859843;-0.500000; 0.000000;, + 0.859843;-0.375000; 0.000000;, + 0.750000;-0.375000; 0.000000;, + 0.750000;-0.500000; 0.000000;, + 0.859843; 0.000000; 0.246450;, + 0.859843;-0.125000; 0.246450;, + 0.750000;-0.125000; 0.246450;, + 0.750000; 0.000000; 0.246450;, + 0.859843; 0.750000; 0.246450;, + 0.859843; 0.625000; 0.246450;, + 0.750000; 0.625000; 0.246450;, + 0.750000; 0.750000; 0.246450;, + 0.859843; 0.500000; 0.000000;, + 0.859843; 0.625000; 0.000000;, + 0.750000; 0.625000; 0.000000;, + 0.750000; 0.500000; 0.000000;, + 0.859843;-0.875000; 0.000000;, + 0.859843;-0.750000; 0.000000;, + 0.750000;-0.750000; 0.000000;, + 0.750000;-0.875000; 0.000000;, + 0.859843; 0.125000; 0.000000;, + 0.859843; 0.250000; 0.000000;, + 0.750000; 0.250000; 0.000000;, + 0.750000; 0.125000; 0.000000;, + 0.859843;-0.625000; 0.000000;, + 0.859843;-0.500000; 0.000000;, + 0.750000;-0.500000; 0.000000;, + 0.750000;-0.625000; 0.000000;, + 0.859843;-0.125000; 0.246450;, + 0.859843;-0.250000; 0.246450;, + 0.750000;-0.250000; 0.246450;, + 0.750000;-0.125000; 0.246450;, + 0.859843; 0.750000; 0.000000;, + 0.859843; 0.875000; 0.000000;, + 0.750000; 0.875000; 0.000000;, + 0.750000; 0.750000; 0.000000;, + 0.125000;-1.287628; 0.246450;, + 0.125000;-1.287628; 0.330204;, + 0.125000;-1.152395; 0.330204;, + 0.125000;-1.152395; 0.246450;, + 0.000000;-1.000000;-0.289304;, + 0.125000;-1.000000;-0.289304;, + 0.125000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.125000;-1.152395; 0.246450;, + 0.125000;-1.152395; 0.330204;, + 0.125000;-1.000000; 0.330204;, + 0.125000;-1.000000; 0.246450;, + 0.000000;-1.152395; 0.330204;, + 0.000000;-1.152395; 0.246450;, + 0.000000;-1.000000; 0.246450;, + 0.000000;-1.000000; 0.330204;, + 0.125000;-1.152395; 0.330204;, + 0.000000;-1.152395; 0.330204;, + 0.000000;-1.000000; 0.330204;, + 0.125000;-1.000000; 0.330204;, + 0.000000;-1.152395; 0.246450;, + 0.000000;-1.152395; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.246450;, + 0.000000;-1.287628; 0.330204;, + 0.125000;-1.287628; 0.330204;, + 0.125000;-1.287628; 0.246450;, + 0.000000;-1.287628; 0.246450;, + 0.000000;-1.534846; 0.246450;, + 0.000000;-1.534846; 0.000000;, + 0.000000;-1.287628; 0.000000;, + 0.000000;-1.287628; 0.246450;, + 0.125000;-1.287628; 0.520154;, + 0.125000;-1.152395; 0.520154;, + 0.125000;-1.152395; 0.330204;, + 0.125000;-1.287628; 0.330204;, + 0.000000;-1.287628; 0.330204;, + 0.000000;-1.287628; 0.246450;, + 0.000000;-1.152395; 0.246450;, + 0.000000;-1.152395; 0.330204;, + 0.000000;-1.287628; 0.246450;, + 0.000000;-1.287628; 0.000000;, + 0.000000;-1.152395; 0.000000;, + 0.000000;-1.152395; 0.246450;, + 0.125000;-1.287628; 0.000000;, + 0.125000;-1.287628; 0.246450;, + 0.125000;-1.152395; 0.246450;, + 0.125000;-1.152395; 0.000000;, + 0.000000;-1.152395; 0.627518;, + 0.000000;-1.287628; 0.627518;, + 0.000000;-1.287628; 0.520154;, + 0.000000;-1.152395; 0.520154;, + 0.125000;-1.152395; 0.520154;, + 0.000000;-1.152395; 0.520154;, + 0.000000;-1.152395; 0.330204;, + 0.125000;-1.152395; 0.330204;, + 0.000000;-1.287628; 0.520154;, + 0.125000;-1.287628; 0.520154;, + 0.125000;-1.287628; 0.330204;, + 0.000000;-1.287628; 0.330204;, + 0.000000;-1.152395; 0.520154;, + 0.000000;-1.287628; 0.520154;, + 0.000000;-1.287628; 0.330204;, + 0.000000;-1.152395; 0.330204;, + 0.125000;-1.287628; 0.627518;, + 0.000000;-1.287628; 0.627518;, + 0.000000;-1.152395; 0.627518;, + 0.125000;-1.152395; 0.627518;, + 0.125000;-0.831729; 0.627518;, + 0.125000;-0.831729; 0.520154;, + 0.125000;-1.152395; 0.520154;, + 0.125000;-1.152395; 0.627518;, + 0.000000;-1.287628; 0.627518;, + 0.125000;-1.287628; 0.627518;, + 0.125000;-1.287628; 0.520154;, + 0.000000;-1.287628; 0.520154;, + 0.125000;-1.287628; 0.627518;, + 0.125000;-1.152395; 0.627518;, + 0.125000;-1.152395; 0.520154;, + 0.125000;-1.287628; 0.520154;, + 0.000000;-1.152395;-0.289304;, + 0.125000;-1.152395;-0.289304;, + 0.125000;-1.000000;-0.289304;, + 0.000000;-1.000000;-0.289304;, + 0.000000;-1.287628;-0.289304;, + 0.125000;-1.287628;-0.289304;, + 0.125000;-1.152395;-0.289304;, + 0.000000;-1.152395;-0.289304;, + 0.125000;-1.000000;-0.289304;, + 0.125000;-1.152395;-0.289304;, + 0.125000;-1.152395; 0.000000;, + 0.125000;-1.000000; 0.000000;, + 0.125000;-1.534846;-0.289304;, + 0.125000;-1.534846; 0.000000;, + 0.125000;-1.287628; 0.000000;, + 0.125000;-1.287628;-0.289304;, + 0.125000;-1.152395;-0.289304;, + 0.125000;-1.287628;-0.289304;, + 0.125000;-1.287628; 0.000000;, + 0.125000;-1.152395; 0.000000;, + 0.000000;-1.152395;-0.289304;, + 0.000000;-1.000000;-0.289304;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.152395; 0.000000;, + 0.000000;-1.534846; 0.246450;, + 0.125000;-1.534846; 0.246450;, + 0.125000;-1.534846; 0.000000;, + 0.000000;-1.534846; 0.000000;, + 0.125000;-1.534846;-0.289304;, + 0.000000;-1.534846;-0.289304;, + 0.000000;-1.534846; 0.000000;, + 0.125000;-1.534846; 0.000000;, + 0.125000;-1.534846; 0.246450;, + 0.000000;-1.534846; 0.246450;, + 0.000000;-1.287628; 0.246450;, + 0.125000;-1.287628; 0.246450;, + 0.125000;-1.534846; 0.000000;, + 0.125000;-1.534846; 0.246450;, + 0.125000;-1.287628; 0.246450;, + 0.125000;-1.287628; 0.000000;, + 0.000000;-1.534846; 0.000000;, + 0.000000;-1.534846;-0.289304;, + 0.000000;-1.287628;-0.289304;, + 0.000000;-1.287628; 0.000000;, + 0.000000;-1.534846;-0.289304;, + 0.125000;-1.534846;-0.289304;, + 0.125000;-1.287628;-0.289304;, + 0.000000;-1.287628;-0.289304;, + 0.125000;-0.831729; 0.627518;, + 0.000000;-0.831729; 0.627518;, + 0.000000;-0.831729; 0.520154;, + 0.125000;-0.831729; 0.520154;, + 0.125000;-0.831729; 0.520154;, + 0.000000;-0.831729; 0.520154;, + 0.000000;-1.152395; 0.520154;, + 0.125000;-1.152395; 0.520154;, + 0.000000;-0.831729; 0.627518;, + 0.125000;-0.831729; 0.627518;, + 0.125000;-1.152395; 0.627518;, + 0.000000;-1.152395; 0.627518;, + 0.000000;-0.831729; 0.520154;, + 0.000000;-0.831729; 0.627518;, + 0.000000;-1.152395; 0.627518;, + 0.000000;-1.152395; 0.520154;; + 738; + 4;0;1;2;3;, + 4;4;5;6;7;, + 4;8;9;10;11;, + 4;12;13;14;15;, + 4;16;17;18;19;, + 4;20;21;22;23;, + 4;24;25;26;27;, + 4;28;29;30;31;, + 4;32;33;34;35;, + 4;36;37;38;39;, + 4;40;41;42;43;, + 4;44;45;46;47;, + 4;48;49;50;51;, + 4;52;53;54;55;, + 4;56;57;58;59;, + 4;60;61;62;63;, + 4;64;65;66;67;, + 4;68;69;70;71;, + 4;72;73;74;75;, + 4;76;77;78;79;, + 4;80;81;82;83;, + 4;84;85;86;87;, + 4;88;89;90;91;, + 4;92;93;94;95;, + 4;96;97;98;99;, + 4;100;101;102;103;, + 4;104;105;106;107;, + 4;108;109;110;111;, + 4;112;113;114;115;, + 4;116;117;118;119;, + 4;120;121;122;123;, + 4;124;125;126;127;, + 4;128;129;130;131;, + 4;132;133;134;135;, + 4;136;137;138;139;, + 4;140;141;142;143;, + 4;144;145;146;147;, + 4;148;149;150;151;, + 4;152;153;154;155;, + 4;156;157;158;159;, + 4;160;161;162;163;, + 4;164;165;166;167;, + 4;168;169;170;171;, + 4;172;173;174;175;, + 4;176;177;178;179;, + 4;180;181;182;183;, + 4;184;185;186;187;, + 4;188;189;190;191;, + 4;192;193;194;195;, + 4;196;197;198;199;, + 4;200;201;202;203;, + 4;204;205;206;207;, + 4;208;209;210;211;, + 4;212;213;214;215;, + 4;216;217;218;219;, + 4;220;221;222;223;, + 4;224;225;226;227;, + 4;228;229;230;231;, + 4;232;233;234;235;, + 4;236;237;238;239;, + 4;240;241;242;243;, + 4;244;245;246;247;, + 4;248;249;250;251;, + 4;252;253;254;255;, + 4;256;257;258;259;, + 4;260;261;262;263;, + 4;264;265;266;267;, + 4;268;269;270;271;, + 4;272;273;274;275;, + 4;276;277;278;279;, + 4;280;281;282;283;, + 4;284;285;286;287;, + 4;288;289;290;291;, + 4;292;293;294;295;, + 4;296;297;298;299;, + 4;300;301;302;303;, + 4;304;305;306;307;, + 4;308;309;310;311;, + 4;312;313;314;315;, + 4;316;317;318;319;, + 4;320;321;322;323;, + 4;324;325;326;327;, + 4;328;329;330;331;, + 4;332;333;334;335;, + 4;336;337;338;339;, + 4;340;341;342;343;, + 4;344;345;346;347;, + 4;348;349;350;351;, + 4;352;353;354;355;, + 4;356;357;358;359;, + 4;360;361;362;363;, + 4;364;365;366;367;, + 4;368;369;370;371;, + 4;372;373;374;375;, + 4;376;377;378;379;, + 4;380;381;382;383;, + 4;384;385;386;387;, + 4;388;389;390;391;, + 4;392;393;394;395;, + 4;396;397;398;399;, + 4;400;401;402;403;, + 4;404;405;406;407;, + 4;408;409;410;411;, + 4;412;413;414;415;, + 4;416;417;418;419;, + 4;420;421;422;423;, + 4;424;425;426;427;, + 4;428;429;430;431;, + 4;432;433;434;435;, + 4;436;437;438;439;, + 4;440;441;442;443;, + 4;444;445;446;447;, + 4;448;449;450;451;, + 4;452;453;454;455;, + 4;456;457;458;459;, + 4;460;461;462;463;, + 4;464;465;466;467;, + 4;468;469;470;471;, + 4;472;473;474;475;, + 4;476;477;478;479;, + 4;480;481;482;483;, + 4;484;485;486;487;, + 4;488;489;490;491;, + 4;492;493;494;495;, + 4;496;497;498;499;, + 4;500;501;502;503;, + 4;504;505;506;507;, + 4;508;509;510;511;, + 4;512;513;514;515;, + 4;516;517;518;519;, + 4;520;521;522;523;, + 4;524;525;526;527;, + 4;528;529;530;531;, + 4;532;533;534;535;, + 4;536;537;538;539;, + 4;540;541;542;543;, + 4;544;545;546;547;, + 4;548;549;550;551;, + 4;552;553;554;555;, + 4;556;557;558;559;, + 4;560;561;562;563;, + 4;564;565;566;567;, + 4;568;569;570;571;, + 4;572;573;574;575;, + 4;576;577;578;579;, + 4;580;581;582;583;, + 4;584;585;586;587;, + 4;588;589;590;591;, + 4;592;593;594;595;, + 4;596;597;598;599;, + 4;600;601;602;603;, + 4;604;605;606;607;, + 4;608;609;610;611;, + 4;612;613;614;615;, + 4;616;617;618;619;, + 4;620;621;622;623;, + 4;624;625;626;627;, + 4;628;629;630;631;, + 4;632;633;634;635;, + 4;636;637;638;639;, + 4;640;641;642;643;, + 4;644;645;646;647;, + 4;648;649;650;651;, + 4;652;653;654;655;, + 4;656;657;658;659;, + 4;660;661;662;663;, + 4;664;665;666;667;, + 4;668;669;670;671;, + 4;672;673;674;675;, + 4;676;677;678;679;, + 4;680;681;682;683;, + 4;684;685;686;687;, + 4;688;689;690;691;, + 4;692;693;694;695;, + 4;696;697;698;699;, + 4;700;701;702;703;, + 4;704;705;706;707;, + 4;708;709;710;711;, + 4;712;713;714;715;, + 4;716;717;718;719;, + 4;720;721;722;723;, + 4;724;725;726;727;, + 4;728;729;730;731;, + 4;732;733;734;735;, + 4;736;737;738;739;, + 4;740;741;742;743;, + 4;744;745;746;747;, + 4;748;749;750;751;, + 4;752;753;754;755;, + 4;756;757;758;759;, + 4;760;761;762;763;, + 4;764;765;766;767;, + 4;768;769;770;771;, + 4;772;773;774;775;, + 4;776;777;778;779;, + 4;780;781;782;783;, + 4;784;785;786;787;, + 4;788;789;790;791;, + 4;792;793;794;795;, + 4;796;797;798;799;, + 4;800;801;802;803;, + 4;804;805;806;807;, + 4;808;809;810;811;, + 4;812;813;814;815;, + 4;816;817;818;819;, + 4;820;821;822;823;, + 4;824;825;826;827;, + 4;828;829;830;831;, + 4;832;833;834;835;, + 4;836;837;838;839;, + 4;840;841;842;843;, + 4;844;845;846;847;, + 4;848;849;850;851;, + 4;852;853;854;855;, + 4;856;857;858;859;, + 4;860;861;862;863;, + 4;864;865;866;867;, + 4;868;869;870;871;, + 4;872;873;874;875;, + 4;876;877;878;879;, + 4;880;881;882;883;, + 4;884;885;886;887;, + 4;888;889;890;891;, + 4;892;893;894;895;, + 4;896;897;898;899;, + 4;900;901;902;903;, + 4;904;905;906;907;, + 4;908;909;910;911;, + 4;912;913;914;915;, + 4;916;917;918;919;, + 4;920;921;922;923;, + 4;924;925;926;927;, + 4;928;929;930;931;, + 4;932;933;934;935;, + 4;936;937;938;939;, + 4;940;941;942;943;, + 4;944;945;946;947;, + 4;948;949;950;951;, + 4;952;953;954;955;, + 4;956;957;958;959;, + 4;960;961;962;963;, + 4;964;965;966;967;, + 4;968;969;970;971;, + 4;972;973;974;975;, + 4;976;977;978;979;, + 4;980;981;982;983;, + 4;984;985;986;987;, + 4;988;989;990;991;, + 4;992;993;994;995;, + 4;996;997;998;999;, + 4;1000;1001;1002;1003;, + 4;1004;1005;1006;1007;, + 4;1008;1009;1010;1011;, + 4;1012;1013;1014;1015;, + 4;1016;1017;1018;1019;, + 4;1020;1021;1022;1023;, + 4;1024;1025;1026;1027;, + 4;1028;1029;1030;1031;, + 4;1032;1033;1034;1035;, + 4;1036;1037;1038;1039;, + 4;1040;1041;1042;1043;, + 4;1044;1045;1046;1047;, + 4;1048;1049;1050;1051;, + 4;1052;1053;1054;1055;, + 4;1056;1057;1058;1059;, + 4;1060;1061;1062;1063;, + 4;1064;1065;1066;1067;, + 4;1068;1069;1070;1071;, + 4;1072;1073;1074;1075;, + 4;1076;1077;1078;1079;, + 4;1080;1081;1082;1083;, + 4;1084;1085;1086;1087;, + 4;1088;1089;1090;1091;, + 4;1092;1093;1094;1095;, + 4;1096;1097;1098;1099;, + 4;1100;1101;1102;1103;, + 4;1104;1105;1106;1107;, + 4;1108;1109;1110;1111;, + 4;1112;1113;1114;1115;, + 4;1116;1117;1118;1119;, + 4;1120;1121;1122;1123;, + 4;1124;1125;1126;1127;, + 4;1128;1129;1130;1131;, + 4;1132;1133;1134;1135;, + 4;1136;1137;1138;1139;, + 4;1140;1141;1142;1143;, + 4;1144;1145;1146;1147;, + 4;1148;1149;1150;1151;, + 4;1152;1153;1154;1155;, + 4;1156;1157;1158;1159;, + 4;1160;1161;1162;1163;, + 4;1164;1165;1166;1167;, + 4;1168;1169;1170;1171;, + 4;1172;1173;1174;1175;, + 4;1176;1177;1178;1179;, + 4;1180;1181;1182;1183;, + 4;1184;1185;1186;1187;, + 4;1188;1189;1190;1191;, + 4;1192;1193;1194;1195;, + 4;1196;1197;1198;1199;, + 4;1200;1201;1202;1203;, + 4;1204;1205;1206;1207;, + 4;1208;1209;1210;1211;, + 4;1212;1213;1214;1215;, + 4;1216;1217;1218;1219;, + 4;1220;1221;1222;1223;, + 4;1224;1225;1226;1227;, + 4;1228;1229;1230;1231;, + 4;1232;1233;1234;1235;, + 4;1236;1237;1238;1239;, + 4;1240;1241;1242;1243;, + 4;1244;1245;1246;1247;, + 4;1248;1249;1250;1251;, + 4;1252;1253;1254;1255;, + 4;1256;1257;1258;1259;, + 4;1260;1261;1262;1263;, + 4;1264;1265;1266;1267;, + 4;1268;1269;1270;1271;, + 4;1272;1273;1274;1275;, + 4;1276;1277;1278;1279;, + 4;1280;1281;1282;1283;, + 4;1284;1285;1286;1287;, + 4;1288;1289;1290;1291;, + 4;1292;1293;1294;1295;, + 4;1296;1297;1298;1299;, + 4;1300;1301;1302;1303;, + 4;1304;1305;1306;1307;, + 4;1308;1309;1310;1311;, + 4;1312;1313;1314;1315;, + 4;1316;1317;1318;1319;, + 4;1320;1321;1322;1323;, + 4;1324;1325;1326;1327;, + 4;1328;1329;1330;1331;, + 4;1332;1333;1334;1335;, + 4;1336;1337;1338;1339;, + 4;1340;1341;1342;1343;, + 4;1344;1345;1346;1347;, + 4;1348;1349;1350;1351;, + 4;1352;1353;1354;1355;, + 4;1356;1357;1358;1359;, + 4;1360;1361;1362;1363;, + 4;1364;1365;1366;1367;, + 4;1368;1369;1370;1371;, + 4;1372;1373;1374;1375;, + 4;1376;1377;1378;1379;, + 4;1380;1381;1382;1383;, + 4;1384;1385;1386;1387;, + 4;1388;1389;1390;1391;, + 4;1392;1393;1394;1395;, + 4;1396;1397;1398;1399;, + 4;1400;1401;1402;1403;, + 4;1404;1405;1406;1407;, + 4;1408;1409;1410;1411;, + 4;1412;1413;1414;1415;, + 4;1416;1417;1418;1419;, + 4;1420;1421;1422;1423;, + 4;1424;1425;1426;1427;, + 4;1428;1429;1430;1431;, + 4;1432;1433;1434;1435;, + 4;1436;1437;1438;1439;, + 4;1440;1441;1442;1443;, + 4;1444;1445;1446;1447;, + 4;1448;1449;1450;1451;, + 4;1452;1453;1454;1455;, + 4;1456;1457;1458;1459;, + 4;1460;1461;1462;1463;, + 4;1464;1465;1466;1467;, + 4;1468;1469;1470;1471;, + 4;1472;1473;1474;1475;, + 4;1476;1477;1478;1479;, + 4;1480;1481;1482;1483;, + 4;1484;1485;1486;1487;, + 4;1488;1489;1490;1491;, + 4;1492;1493;1494;1495;, + 4;1496;1497;1498;1499;, + 4;1500;1501;1502;1503;, + 4;1504;1505;1506;1507;, + 4;1508;1509;1510;1511;, + 4;1512;1513;1514;1515;, + 4;1516;1517;1518;1519;, + 4;1520;1521;1522;1523;, + 4;1524;1525;1526;1527;, + 4;1528;1529;1530;1531;, + 4;1532;1533;1534;1535;, + 4;1536;1537;1538;1539;, + 4;1540;1541;1542;1543;, + 4;1544;1545;1546;1547;, + 4;1548;1549;1550;1551;, + 4;1552;1553;1554;1555;, + 4;1556;1557;1558;1559;, + 4;1560;1561;1562;1563;, + 4;1564;1565;1566;1567;, + 4;1568;1569;1570;1571;, + 4;1572;1573;1574;1575;, + 4;1576;1577;1578;1579;, + 4;1580;1581;1582;1583;, + 4;1584;1585;1586;1587;, + 4;1588;1589;1590;1591;, + 4;1592;1593;1594;1595;, + 4;1596;1597;1598;1599;, + 4;1600;1601;1602;1603;, + 4;1604;1605;1606;1607;, + 4;1608;1609;1610;1611;, + 4;1612;1613;1614;1615;, + 4;1616;1617;1618;1619;, + 4;1620;1621;1622;1623;, + 4;1624;1625;1626;1627;, + 4;1628;1629;1630;1631;, + 4;1632;1633;1634;1635;, + 4;1636;1637;1638;1639;, + 4;1640;1641;1642;1643;, + 4;1644;1645;1646;1647;, + 4;1648;1649;1650;1651;, + 4;1652;1653;1654;1655;, + 4;1656;1657;1658;1659;, + 4;1660;1661;1662;1663;, + 4;1664;1665;1666;1667;, + 4;1668;1669;1670;1671;, + 4;1672;1673;1674;1675;, + 4;1676;1677;1678;1679;, + 4;1680;1681;1682;1683;, + 4;1684;1685;1686;1687;, + 4;1688;1689;1690;1691;, + 4;1692;1693;1694;1695;, + 4;1696;1697;1698;1699;, + 4;1700;1701;1702;1703;, + 4;1704;1705;1706;1707;, + 4;1708;1709;1710;1711;, + 4;1712;1713;1714;1715;, + 4;1716;1717;1718;1719;, + 4;1720;1721;1722;1723;, + 4;1724;1725;1726;1727;, + 4;1728;1729;1730;1731;, + 4;1732;1733;1734;1735;, + 4;1736;1737;1738;1739;, + 4;1740;1741;1742;1743;, + 4;1744;1745;1746;1747;, + 4;1748;1749;1750;1751;, + 4;1752;1753;1754;1755;, + 4;1756;1757;1758;1759;, + 4;1760;1761;1762;1763;, + 4;1764;1765;1766;1767;, + 4;1768;1769;1770;1771;, + 4;1772;1773;1774;1775;, + 4;1776;1777;1778;1779;, + 4;1780;1781;1782;1783;, + 4;1784;1785;1786;1787;, + 4;1788;1789;1790;1791;, + 4;1792;1793;1794;1795;, + 4;1796;1797;1798;1799;, + 4;1800;1801;1802;1803;, + 4;1804;1805;1806;1807;, + 4;1808;1809;1810;1811;, + 4;1812;1813;1814;1815;, + 4;1816;1817;1818;1819;, + 4;1820;1821;1822;1823;, + 4;1824;1825;1826;1827;, + 4;1828;1829;1830;1831;, + 4;1832;1833;1834;1835;, + 4;1836;1837;1838;1839;, + 4;1840;1841;1842;1843;, + 4;1844;1845;1846;1847;, + 4;1848;1849;1850;1851;, + 4;1852;1853;1854;1855;, + 4;1856;1857;1858;1859;, + 4;1860;1861;1862;1863;, + 4;1864;1865;1866;1867;, + 4;1868;1869;1870;1871;, + 4;1872;1873;1874;1875;, + 4;1876;1877;1878;1879;, + 4;1880;1881;1882;1883;, + 4;1884;1885;1886;1887;, + 4;1888;1889;1890;1891;, + 4;1892;1893;1894;1895;, + 4;1896;1897;1898;1899;, + 4;1900;1901;1902;1903;, + 4;1904;1905;1906;1907;, + 4;1908;1909;1910;1911;, + 4;1912;1913;1914;1915;, + 4;1916;1917;1918;1919;, + 4;1920;1921;1922;1923;, + 4;1924;1925;1926;1927;, + 4;1928;1929;1930;1931;, + 4;1932;1933;1934;1935;, + 4;1936;1937;1938;1939;, + 4;1940;1941;1942;1943;, + 4;1944;1945;1946;1947;, + 4;1948;1949;1950;1951;, + 4;1952;1953;1954;1955;, + 4;1956;1957;1958;1959;, + 4;1960;1961;1962;1963;, + 4;1964;1965;1966;1967;, + 4;1968;1969;1970;1971;, + 4;1972;1973;1974;1975;, + 4;1976;1977;1978;1979;, + 4;1980;1981;1982;1983;, + 4;1984;1985;1986;1987;, + 4;1988;1989;1990;1991;, + 4;1992;1993;1994;1995;, + 4;1996;1997;1998;1999;, + 4;2000;2001;2002;2003;, + 4;2004;2005;2006;2007;, + 4;2008;2009;2010;2011;, + 4;2012;2013;2014;2015;, + 4;2016;2017;2018;2019;, + 4;2020;2021;2022;2023;, + 4;2024;2025;2026;2027;, + 4;2028;2029;2030;2031;, + 4;2032;2033;2034;2035;, + 4;2036;2037;2038;2039;, + 4;2040;2041;2042;2043;, + 4;2044;2045;2046;2047;, + 4;2048;2049;2050;2051;, + 4;2052;2053;2054;2055;, + 4;2056;2057;2058;2059;, + 4;2060;2061;2062;2063;, + 4;2064;2065;2066;2067;, + 4;2068;2069;2070;2071;, + 4;2072;2073;2074;2075;, + 4;2076;2077;2078;2079;, + 4;2080;2081;2082;2083;, + 4;2084;2085;2086;2087;, + 4;2088;2089;2090;2091;, + 4;2092;2093;2094;2095;, + 4;2096;2097;2098;2099;, + 4;2100;2101;2102;2103;, + 4;2104;2105;2106;2107;, + 4;2108;2109;2110;2111;, + 4;2112;2113;2114;2115;, + 4;2116;2117;2118;2119;, + 4;2120;2121;2122;2123;, + 4;2124;2125;2126;2127;, + 4;2128;2129;2130;2131;, + 4;2132;2133;2134;2135;, + 4;2136;2137;2138;2139;, + 4;2140;2141;2142;2143;, + 4;2144;2145;2146;2147;, + 4;2148;2149;2150;2151;, + 4;2152;2153;2154;2155;, + 4;2156;2157;2158;2159;, + 4;2160;2161;2162;2163;, + 4;2164;2165;2166;2167;, + 4;2168;2169;2170;2171;, + 4;2172;2173;2174;2175;, + 4;2176;2177;2178;2179;, + 4;2180;2181;2182;2183;, + 4;2184;2185;2186;2187;, + 4;2188;2189;2190;2191;, + 4;2192;2193;2194;2195;, + 4;2196;2197;2198;2199;, + 4;2200;2201;2202;2203;, + 4;2204;2205;2206;2207;, + 4;2208;2209;2210;2211;, + 4;2212;2213;2214;2215;, + 4;2216;2217;2218;2219;, + 4;2220;2221;2222;2223;, + 4;2224;2225;2226;2227;, + 4;2228;2229;2230;2231;, + 4;2232;2233;2234;2235;, + 4;2236;2237;2238;2239;, + 4;2240;2241;2242;2243;, + 4;2244;2245;2246;2247;, + 4;2248;2249;2250;2251;, + 4;2252;2253;2254;2255;, + 4;2256;2257;2258;2259;, + 4;2260;2261;2262;2263;, + 4;2264;2265;2266;2267;, + 4;2268;2269;2270;2271;, + 4;2272;2273;2274;2275;, + 4;2276;2277;2278;2279;, + 4;2280;2281;2282;2283;, + 4;2284;2285;2286;2287;, + 4;2288;2289;2290;2291;, + 4;2292;2293;2294;2295;, + 4;2296;2297;2298;2299;, + 4;2300;2301;2302;2303;, + 4;2304;2305;2306;2307;, + 4;2308;2309;2310;2311;, + 4;2312;2313;2314;2315;, + 4;2316;2317;2318;2319;, + 4;2320;2321;2322;2323;, + 4;2324;2325;2326;2327;, + 4;2328;2329;2330;2331;, + 4;2332;2333;2334;2335;, + 4;2336;2337;2338;2339;, + 4;2340;2341;2342;2343;, + 4;2344;2345;2346;2347;, + 4;2348;2349;2350;2351;, + 4;2352;2353;2354;2355;, + 4;2356;2357;2358;2359;, + 4;2360;2361;2362;2363;, + 4;2364;2365;2366;2367;, + 4;2368;2369;2370;2371;, + 4;2372;2373;2374;2375;, + 4;2376;2377;2378;2379;, + 4;2380;2381;2382;2383;, + 4;2384;2385;2386;2387;, + 4;2388;2389;2390;2391;, + 4;2392;2393;2394;2395;, + 4;2396;2397;2398;2399;, + 4;2400;2401;2402;2403;, + 4;2404;2405;2406;2407;, + 4;2408;2409;2410;2411;, + 4;2412;2413;2414;2415;, + 4;2416;2417;2418;2419;, + 4;2420;2421;2422;2423;, + 4;2424;2425;2426;2427;, + 4;2428;2429;2430;2431;, + 4;2432;2433;2434;2435;, + 4;2436;2437;2438;2439;, + 4;2440;2441;2442;2443;, + 4;2444;2445;2446;2447;, + 4;2448;2449;2450;2451;, + 4;2452;2453;2454;2455;, + 4;2456;2457;2458;2459;, + 4;2460;2461;2462;2463;, + 4;2464;2465;2466;2467;, + 4;2468;2469;2470;2471;, + 4;2472;2473;2474;2475;, + 4;2476;2477;2478;2479;, + 4;2480;2481;2482;2483;, + 4;2484;2485;2486;2487;, + 4;2488;2489;2490;2491;, + 4;2492;2493;2494;2495;, + 4;2496;2497;2498;2499;, + 4;2500;2501;2502;2503;, + 4;2504;2505;2506;2507;, + 4;2508;2509;2510;2511;, + 4;2512;2513;2514;2515;, + 4;2516;2517;2518;2519;, + 4;2520;2521;2522;2523;, + 4;2524;2525;2526;2527;, + 4;2528;2529;2530;2531;, + 4;2532;2533;2534;2535;, + 4;2536;2537;2538;2539;, + 4;2540;2541;2542;2543;, + 4;2544;2545;2546;2547;, + 4;2548;2549;2550;2551;, + 4;2552;2553;2554;2555;, + 4;2556;2557;2558;2559;, + 4;2560;2561;2562;2563;, + 4;2564;2565;2566;2567;, + 4;2568;2569;2570;2571;, + 4;2572;2573;2574;2575;, + 4;2576;2577;2578;2579;, + 4;2580;2581;2582;2583;, + 4;2584;2585;2586;2587;, + 4;2588;2589;2590;2591;, + 4;2592;2593;2594;2595;, + 4;2596;2597;2598;2599;, + 4;2600;2601;2602;2603;, + 4;2604;2605;2606;2607;, + 4;2608;2609;2610;2611;, + 4;2612;2613;2614;2615;, + 4;2616;2617;2618;2619;, + 4;2620;2621;2622;2623;, + 4;2624;2625;2626;2627;, + 4;2628;2629;2630;2631;, + 4;2632;2633;2634;2635;, + 4;2636;2637;2638;2639;, + 4;2640;2641;2642;2643;, + 4;2644;2645;2646;2647;, + 4;2648;2649;2650;2651;, + 4;2652;2653;2654;2655;, + 4;2656;2657;2658;2659;, + 4;2660;2661;2662;2663;, + 4;2664;2665;2666;2667;, + 4;2668;2669;2670;2671;, + 4;2672;2673;2674;2675;, + 4;2676;2677;2678;2679;, + 4;2680;2681;2682;2683;, + 4;2684;2685;2686;2687;, + 4;2688;2689;2690;2691;, + 4;2692;2693;2694;2695;, + 4;2696;2697;2698;2699;, + 4;2700;2701;2702;2703;, + 4;2704;2705;2706;2707;, + 4;2708;2709;2710;2711;, + 4;2712;2713;2714;2715;, + 4;2716;2717;2718;2719;, + 4;2720;2721;2722;2723;, + 4;2724;2725;2726;2727;, + 4;2728;2729;2730;2731;, + 4;2732;2733;2734;2735;, + 4;2736;2737;2738;2739;, + 4;2740;2741;2742;2743;, + 4;2744;2745;2746;2747;, + 4;2748;2749;2750;2751;, + 4;2752;2753;2754;2755;, + 4;2756;2757;2758;2759;, + 4;2760;2761;2762;2763;, + 4;2764;2765;2766;2767;, + 4;2768;2769;2770;2771;, + 4;2772;2773;2774;2775;, + 4;2776;2777;2778;2779;, + 4;2780;2781;2782;2783;, + 4;2784;2785;2786;2787;, + 4;2788;2789;2790;2791;, + 4;2792;2793;2794;2795;, + 4;2796;2797;2798;2799;, + 4;2800;2801;2802;2803;, + 4;2804;2805;2806;2807;, + 4;2808;2809;2810;2811;, + 4;2812;2813;2814;2815;, + 4;2816;2817;2818;2819;, + 4;2820;2821;2822;2823;, + 4;2824;2825;2826;2827;, + 4;2828;2829;2830;2831;, + 4;2832;2833;2834;2835;, + 4;2836;2837;2838;2839;, + 4;2840;2841;2842;2843;, + 4;2844;2845;2846;2847;, + 4;2848;2849;2850;2851;, + 4;2852;2853;2854;2855;, + 4;2856;2857;2858;2859;, + 4;2860;2861;2862;2863;, + 4;2864;2865;2866;2867;, + 4;2868;2869;2870;2871;, + 4;2872;2873;2874;2875;, + 4;2876;2877;2878;2879;, + 4;2880;2881;2882;2883;, + 4;2884;2885;2886;2887;, + 4;2888;2889;2890;2891;, + 4;2892;2893;2894;2895;, + 4;2896;2897;2898;2899;, + 4;2900;2901;2902;2903;, + 4;2904;2905;2906;2907;, + 4;2908;2909;2910;2911;, + 4;2912;2913;2914;2915;, + 4;2916;2917;2918;2919;, + 4;2920;2921;2922;2923;, + 4;2924;2925;2926;2927;, + 4;2928;2929;2930;2931;, + 4;2932;2933;2934;2935;, + 4;2936;2937;2938;2939;, + 4;2940;2941;2942;2943;, + 4;2944;2945;2946;2947;, + 4;2948;2949;2950;2951;; + MeshNormals { //Plane_000 Normals + 2952; + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + -0.000000;-1.000000; 0.000000;, + -0.000000;-1.000000; 0.000000;, + -0.000000;-1.000000; 0.000000;, + -0.000000;-1.000000; 0.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 1.000000;-0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000; 1.000000;-0.000000;, + 1.000000;-0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000;-0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 1.000000;-0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000;-0.000000;-1.000000;, + 0.000000;-0.000000;-1.000000;, + 0.000000;-0.000000;-1.000000;, + 0.000000;-0.000000;-1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + -1.000000;-0.000000; 0.000000;, + -1.000000;-0.000000; 0.000000;, + -1.000000;-0.000000; 0.000000;, + -1.000000;-0.000000; 0.000000;; + 738; + 4;0;1;2;3;, + 4;4;5;6;7;, + 4;8;9;10;11;, + 4;12;13;14;15;, + 4;16;17;18;19;, + 4;20;21;22;23;, + 4;24;25;26;27;, + 4;28;29;30;31;, + 4;32;33;34;35;, + 4;36;37;38;39;, + 4;40;41;42;43;, + 4;44;45;46;47;, + 4;48;49;50;51;, + 4;52;53;54;55;, + 4;56;57;58;59;, + 4;60;61;62;63;, + 4;64;65;66;67;, + 4;68;69;70;71;, + 4;72;73;74;75;, + 4;76;77;78;79;, + 4;80;81;82;83;, + 4;84;85;86;87;, + 4;88;89;90;91;, + 4;92;93;94;95;, + 4;96;97;98;99;, + 4;100;101;102;103;, + 4;104;105;106;107;, + 4;108;109;110;111;, + 4;112;113;114;115;, + 4;116;117;118;119;, + 4;120;121;122;123;, + 4;124;125;126;127;, + 4;128;129;130;131;, + 4;132;133;134;135;, + 4;136;137;138;139;, + 4;140;141;142;143;, + 4;144;145;146;147;, + 4;148;149;150;151;, + 4;152;153;154;155;, + 4;156;157;158;159;, + 4;160;161;162;163;, + 4;164;165;166;167;, + 4;168;169;170;171;, + 4;172;173;174;175;, + 4;176;177;178;179;, + 4;180;181;182;183;, + 4;184;185;186;187;, + 4;188;189;190;191;, + 4;192;193;194;195;, + 4;196;197;198;199;, + 4;200;201;202;203;, + 4;204;205;206;207;, + 4;208;209;210;211;, + 4;212;213;214;215;, + 4;216;217;218;219;, + 4;220;221;222;223;, + 4;224;225;226;227;, + 4;228;229;230;231;, + 4;232;233;234;235;, + 4;236;237;238;239;, + 4;240;241;242;243;, + 4;244;245;246;247;, + 4;248;249;250;251;, + 4;252;253;254;255;, + 4;256;257;258;259;, + 4;260;261;262;263;, + 4;264;265;266;267;, + 4;268;269;270;271;, + 4;272;273;274;275;, + 4;276;277;278;279;, + 4;280;281;282;283;, + 4;284;285;286;287;, + 4;288;289;290;291;, + 4;292;293;294;295;, + 4;296;297;298;299;, + 4;300;301;302;303;, + 4;304;305;306;307;, + 4;308;309;310;311;, + 4;312;313;314;315;, + 4;316;317;318;319;, + 4;320;321;322;323;, + 4;324;325;326;327;, + 4;328;329;330;331;, + 4;332;333;334;335;, + 4;336;337;338;339;, + 4;340;341;342;343;, + 4;344;345;346;347;, + 4;348;349;350;351;, + 4;352;353;354;355;, + 4;356;357;358;359;, + 4;360;361;362;363;, + 4;364;365;366;367;, + 4;368;369;370;371;, + 4;372;373;374;375;, + 4;376;377;378;379;, + 4;380;381;382;383;, + 4;384;385;386;387;, + 4;388;389;390;391;, + 4;392;393;394;395;, + 4;396;397;398;399;, + 4;400;401;402;403;, + 4;404;405;406;407;, + 4;408;409;410;411;, + 4;412;413;414;415;, + 4;416;417;418;419;, + 4;420;421;422;423;, + 4;424;425;426;427;, + 4;428;429;430;431;, + 4;432;433;434;435;, + 4;436;437;438;439;, + 4;440;441;442;443;, + 4;444;445;446;447;, + 4;448;449;450;451;, + 4;452;453;454;455;, + 4;456;457;458;459;, + 4;460;461;462;463;, + 4;464;465;466;467;, + 4;468;469;470;471;, + 4;472;473;474;475;, + 4;476;477;478;479;, + 4;480;481;482;483;, + 4;484;485;486;487;, + 4;488;489;490;491;, + 4;492;493;494;495;, + 4;496;497;498;499;, + 4;500;501;502;503;, + 4;504;505;506;507;, + 4;508;509;510;511;, + 4;512;513;514;515;, + 4;516;517;518;519;, + 4;520;521;522;523;, + 4;524;525;526;527;, + 4;528;529;530;531;, + 4;532;533;534;535;, + 4;536;537;538;539;, + 4;540;541;542;543;, + 4;544;545;546;547;, + 4;548;549;550;551;, + 4;552;553;554;555;, + 4;556;557;558;559;, + 4;560;561;562;563;, + 4;564;565;566;567;, + 4;568;569;570;571;, + 4;572;573;574;575;, + 4;576;577;578;579;, + 4;580;581;582;583;, + 4;584;585;586;587;, + 4;588;589;590;591;, + 4;592;593;594;595;, + 4;596;597;598;599;, + 4;600;601;602;603;, + 4;604;605;606;607;, + 4;608;609;610;611;, + 4;612;613;614;615;, + 4;616;617;618;619;, + 4;620;621;622;623;, + 4;624;625;626;627;, + 4;628;629;630;631;, + 4;632;633;634;635;, + 4;636;637;638;639;, + 4;640;641;642;643;, + 4;644;645;646;647;, + 4;648;649;650;651;, + 4;652;653;654;655;, + 4;656;657;658;659;, + 4;660;661;662;663;, + 4;664;665;666;667;, + 4;668;669;670;671;, + 4;672;673;674;675;, + 4;676;677;678;679;, + 4;680;681;682;683;, + 4;684;685;686;687;, + 4;688;689;690;691;, + 4;692;693;694;695;, + 4;696;697;698;699;, + 4;700;701;702;703;, + 4;704;705;706;707;, + 4;708;709;710;711;, + 4;712;713;714;715;, + 4;716;717;718;719;, + 4;720;721;722;723;, + 4;724;725;726;727;, + 4;728;729;730;731;, + 4;732;733;734;735;, + 4;736;737;738;739;, + 4;740;741;742;743;, + 4;744;745;746;747;, + 4;748;749;750;751;, + 4;752;753;754;755;, + 4;756;757;758;759;, + 4;760;761;762;763;, + 4;764;765;766;767;, + 4;768;769;770;771;, + 4;772;773;774;775;, + 4;776;777;778;779;, + 4;780;781;782;783;, + 4;784;785;786;787;, + 4;788;789;790;791;, + 4;792;793;794;795;, + 4;796;797;798;799;, + 4;800;801;802;803;, + 4;804;805;806;807;, + 4;808;809;810;811;, + 4;812;813;814;815;, + 4;816;817;818;819;, + 4;820;821;822;823;, + 4;824;825;826;827;, + 4;828;829;830;831;, + 4;832;833;834;835;, + 4;836;837;838;839;, + 4;840;841;842;843;, + 4;844;845;846;847;, + 4;848;849;850;851;, + 4;852;853;854;855;, + 4;856;857;858;859;, + 4;860;861;862;863;, + 4;864;865;866;867;, + 4;868;869;870;871;, + 4;872;873;874;875;, + 4;876;877;878;879;, + 4;880;881;882;883;, + 4;884;885;886;887;, + 4;888;889;890;891;, + 4;892;893;894;895;, + 4;896;897;898;899;, + 4;900;901;902;903;, + 4;904;905;906;907;, + 4;908;909;910;911;, + 4;912;913;914;915;, + 4;916;917;918;919;, + 4;920;921;922;923;, + 4;924;925;926;927;, + 4;928;929;930;931;, + 4;932;933;934;935;, + 4;936;937;938;939;, + 4;940;941;942;943;, + 4;944;945;946;947;, + 4;948;949;950;951;, + 4;952;953;954;955;, + 4;956;957;958;959;, + 4;960;961;962;963;, + 4;964;965;966;967;, + 4;968;969;970;971;, + 4;972;973;974;975;, + 4;976;977;978;979;, + 4;980;981;982;983;, + 4;984;985;986;987;, + 4;988;989;990;991;, + 4;992;993;994;995;, + 4;996;997;998;999;, + 4;1000;1001;1002;1003;, + 4;1004;1005;1006;1007;, + 4;1008;1009;1010;1011;, + 4;1012;1013;1014;1015;, + 4;1016;1017;1018;1019;, + 4;1020;1021;1022;1023;, + 4;1024;1025;1026;1027;, + 4;1028;1029;1030;1031;, + 4;1032;1033;1034;1035;, + 4;1036;1037;1038;1039;, + 4;1040;1041;1042;1043;, + 4;1044;1045;1046;1047;, + 4;1048;1049;1050;1051;, + 4;1052;1053;1054;1055;, + 4;1056;1057;1058;1059;, + 4;1060;1061;1062;1063;, + 4;1064;1065;1066;1067;, + 4;1068;1069;1070;1071;, + 4;1072;1073;1074;1075;, + 4;1076;1077;1078;1079;, + 4;1080;1081;1082;1083;, + 4;1084;1085;1086;1087;, + 4;1088;1089;1090;1091;, + 4;1092;1093;1094;1095;, + 4;1096;1097;1098;1099;, + 4;1100;1101;1102;1103;, + 4;1104;1105;1106;1107;, + 4;1108;1109;1110;1111;, + 4;1112;1113;1114;1115;, + 4;1116;1117;1118;1119;, + 4;1120;1121;1122;1123;, + 4;1124;1125;1126;1127;, + 4;1128;1129;1130;1131;, + 4;1132;1133;1134;1135;, + 4;1136;1137;1138;1139;, + 4;1140;1141;1142;1143;, + 4;1144;1145;1146;1147;, + 4;1148;1149;1150;1151;, + 4;1152;1153;1154;1155;, + 4;1156;1157;1158;1159;, + 4;1160;1161;1162;1163;, + 4;1164;1165;1166;1167;, + 4;1168;1169;1170;1171;, + 4;1172;1173;1174;1175;, + 4;1176;1177;1178;1179;, + 4;1180;1181;1182;1183;, + 4;1184;1185;1186;1187;, + 4;1188;1189;1190;1191;, + 4;1192;1193;1194;1195;, + 4;1196;1197;1198;1199;, + 4;1200;1201;1202;1203;, + 4;1204;1205;1206;1207;, + 4;1208;1209;1210;1211;, + 4;1212;1213;1214;1215;, + 4;1216;1217;1218;1219;, + 4;1220;1221;1222;1223;, + 4;1224;1225;1226;1227;, + 4;1228;1229;1230;1231;, + 4;1232;1233;1234;1235;, + 4;1236;1237;1238;1239;, + 4;1240;1241;1242;1243;, + 4;1244;1245;1246;1247;, + 4;1248;1249;1250;1251;, + 4;1252;1253;1254;1255;, + 4;1256;1257;1258;1259;, + 4;1260;1261;1262;1263;, + 4;1264;1265;1266;1267;, + 4;1268;1269;1270;1271;, + 4;1272;1273;1274;1275;, + 4;1276;1277;1278;1279;, + 4;1280;1281;1282;1283;, + 4;1284;1285;1286;1287;, + 4;1288;1289;1290;1291;, + 4;1292;1293;1294;1295;, + 4;1296;1297;1298;1299;, + 4;1300;1301;1302;1303;, + 4;1304;1305;1306;1307;, + 4;1308;1309;1310;1311;, + 4;1312;1313;1314;1315;, + 4;1316;1317;1318;1319;, + 4;1320;1321;1322;1323;, + 4;1324;1325;1326;1327;, + 4;1328;1329;1330;1331;, + 4;1332;1333;1334;1335;, + 4;1336;1337;1338;1339;, + 4;1340;1341;1342;1343;, + 4;1344;1345;1346;1347;, + 4;1348;1349;1350;1351;, + 4;1352;1353;1354;1355;, + 4;1356;1357;1358;1359;, + 4;1360;1361;1362;1363;, + 4;1364;1365;1366;1367;, + 4;1368;1369;1370;1371;, + 4;1372;1373;1374;1375;, + 4;1376;1377;1378;1379;, + 4;1380;1381;1382;1383;, + 4;1384;1385;1386;1387;, + 4;1388;1389;1390;1391;, + 4;1392;1393;1394;1395;, + 4;1396;1397;1398;1399;, + 4;1400;1401;1402;1403;, + 4;1404;1405;1406;1407;, + 4;1408;1409;1410;1411;, + 4;1412;1413;1414;1415;, + 4;1416;1417;1418;1419;, + 4;1420;1421;1422;1423;, + 4;1424;1425;1426;1427;, + 4;1428;1429;1430;1431;, + 4;1432;1433;1434;1435;, + 4;1436;1437;1438;1439;, + 4;1440;1441;1442;1443;, + 4;1444;1445;1446;1447;, + 4;1448;1449;1450;1451;, + 4;1452;1453;1454;1455;, + 4;1456;1457;1458;1459;, + 4;1460;1461;1462;1463;, + 4;1464;1465;1466;1467;, + 4;1468;1469;1470;1471;, + 4;1472;1473;1474;1475;, + 4;1476;1477;1478;1479;, + 4;1480;1481;1482;1483;, + 4;1484;1485;1486;1487;, + 4;1488;1489;1490;1491;, + 4;1492;1493;1494;1495;, + 4;1496;1497;1498;1499;, + 4;1500;1501;1502;1503;, + 4;1504;1505;1506;1507;, + 4;1508;1509;1510;1511;, + 4;1512;1513;1514;1515;, + 4;1516;1517;1518;1519;, + 4;1520;1521;1522;1523;, + 4;1524;1525;1526;1527;, + 4;1528;1529;1530;1531;, + 4;1532;1533;1534;1535;, + 4;1536;1537;1538;1539;, + 4;1540;1541;1542;1543;, + 4;1544;1545;1546;1547;, + 4;1548;1549;1550;1551;, + 4;1552;1553;1554;1555;, + 4;1556;1557;1558;1559;, + 4;1560;1561;1562;1563;, + 4;1564;1565;1566;1567;, + 4;1568;1569;1570;1571;, + 4;1572;1573;1574;1575;, + 4;1576;1577;1578;1579;, + 4;1580;1581;1582;1583;, + 4;1584;1585;1586;1587;, + 4;1588;1589;1590;1591;, + 4;1592;1593;1594;1595;, + 4;1596;1597;1598;1599;, + 4;1600;1601;1602;1603;, + 4;1604;1605;1606;1607;, + 4;1608;1609;1610;1611;, + 4;1612;1613;1614;1615;, + 4;1616;1617;1618;1619;, + 4;1620;1621;1622;1623;, + 4;1624;1625;1626;1627;, + 4;1628;1629;1630;1631;, + 4;1632;1633;1634;1635;, + 4;1636;1637;1638;1639;, + 4;1640;1641;1642;1643;, + 4;1644;1645;1646;1647;, + 4;1648;1649;1650;1651;, + 4;1652;1653;1654;1655;, + 4;1656;1657;1658;1659;, + 4;1660;1661;1662;1663;, + 4;1664;1665;1666;1667;, + 4;1668;1669;1670;1671;, + 4;1672;1673;1674;1675;, + 4;1676;1677;1678;1679;, + 4;1680;1681;1682;1683;, + 4;1684;1685;1686;1687;, + 4;1688;1689;1690;1691;, + 4;1692;1693;1694;1695;, + 4;1696;1697;1698;1699;, + 4;1700;1701;1702;1703;, + 4;1704;1705;1706;1707;, + 4;1708;1709;1710;1711;, + 4;1712;1713;1714;1715;, + 4;1716;1717;1718;1719;, + 4;1720;1721;1722;1723;, + 4;1724;1725;1726;1727;, + 4;1728;1729;1730;1731;, + 4;1732;1733;1734;1735;, + 4;1736;1737;1738;1739;, + 4;1740;1741;1742;1743;, + 4;1744;1745;1746;1747;, + 4;1748;1749;1750;1751;, + 4;1752;1753;1754;1755;, + 4;1756;1757;1758;1759;, + 4;1760;1761;1762;1763;, + 4;1764;1765;1766;1767;, + 4;1768;1769;1770;1771;, + 4;1772;1773;1774;1775;, + 4;1776;1777;1778;1779;, + 4;1780;1781;1782;1783;, + 4;1784;1785;1786;1787;, + 4;1788;1789;1790;1791;, + 4;1792;1793;1794;1795;, + 4;1796;1797;1798;1799;, + 4;1800;1801;1802;1803;, + 4;1804;1805;1806;1807;, + 4;1808;1809;1810;1811;, + 4;1812;1813;1814;1815;, + 4;1816;1817;1818;1819;, + 4;1820;1821;1822;1823;, + 4;1824;1825;1826;1827;, + 4;1828;1829;1830;1831;, + 4;1832;1833;1834;1835;, + 4;1836;1837;1838;1839;, + 4;1840;1841;1842;1843;, + 4;1844;1845;1846;1847;, + 4;1848;1849;1850;1851;, + 4;1852;1853;1854;1855;, + 4;1856;1857;1858;1859;, + 4;1860;1861;1862;1863;, + 4;1864;1865;1866;1867;, + 4;1868;1869;1870;1871;, + 4;1872;1873;1874;1875;, + 4;1876;1877;1878;1879;, + 4;1880;1881;1882;1883;, + 4;1884;1885;1886;1887;, + 4;1888;1889;1890;1891;, + 4;1892;1893;1894;1895;, + 4;1896;1897;1898;1899;, + 4;1900;1901;1902;1903;, + 4;1904;1905;1906;1907;, + 4;1908;1909;1910;1911;, + 4;1912;1913;1914;1915;, + 4;1916;1917;1918;1919;, + 4;1920;1921;1922;1923;, + 4;1924;1925;1926;1927;, + 4;1928;1929;1930;1931;, + 4;1932;1933;1934;1935;, + 4;1936;1937;1938;1939;, + 4;1940;1941;1942;1943;, + 4;1944;1945;1946;1947;, + 4;1948;1949;1950;1951;, + 4;1952;1953;1954;1955;, + 4;1956;1957;1958;1959;, + 4;1960;1961;1962;1963;, + 4;1964;1965;1966;1967;, + 4;1968;1969;1970;1971;, + 4;1972;1973;1974;1975;, + 4;1976;1977;1978;1979;, + 4;1980;1981;1982;1983;, + 4;1984;1985;1986;1987;, + 4;1988;1989;1990;1991;, + 4;1992;1993;1994;1995;, + 4;1996;1997;1998;1999;, + 4;2000;2001;2002;2003;, + 4;2004;2005;2006;2007;, + 4;2008;2009;2010;2011;, + 4;2012;2013;2014;2015;, + 4;2016;2017;2018;2019;, + 4;2020;2021;2022;2023;, + 4;2024;2025;2026;2027;, + 4;2028;2029;2030;2031;, + 4;2032;2033;2034;2035;, + 4;2036;2037;2038;2039;, + 4;2040;2041;2042;2043;, + 4;2044;2045;2046;2047;, + 4;2048;2049;2050;2051;, + 4;2052;2053;2054;2055;, + 4;2056;2057;2058;2059;, + 4;2060;2061;2062;2063;, + 4;2064;2065;2066;2067;, + 4;2068;2069;2070;2071;, + 4;2072;2073;2074;2075;, + 4;2076;2077;2078;2079;, + 4;2080;2081;2082;2083;, + 4;2084;2085;2086;2087;, + 4;2088;2089;2090;2091;, + 4;2092;2093;2094;2095;, + 4;2096;2097;2098;2099;, + 4;2100;2101;2102;2103;, + 4;2104;2105;2106;2107;, + 4;2108;2109;2110;2111;, + 4;2112;2113;2114;2115;, + 4;2116;2117;2118;2119;, + 4;2120;2121;2122;2123;, + 4;2124;2125;2126;2127;, + 4;2128;2129;2130;2131;, + 4;2132;2133;2134;2135;, + 4;2136;2137;2138;2139;, + 4;2140;2141;2142;2143;, + 4;2144;2145;2146;2147;, + 4;2148;2149;2150;2151;, + 4;2152;2153;2154;2155;, + 4;2156;2157;2158;2159;, + 4;2160;2161;2162;2163;, + 4;2164;2165;2166;2167;, + 4;2168;2169;2170;2171;, + 4;2172;2173;2174;2175;, + 4;2176;2177;2178;2179;, + 4;2180;2181;2182;2183;, + 4;2184;2185;2186;2187;, + 4;2188;2189;2190;2191;, + 4;2192;2193;2194;2195;, + 4;2196;2197;2198;2199;, + 4;2200;2201;2202;2203;, + 4;2204;2205;2206;2207;, + 4;2208;2209;2210;2211;, + 4;2212;2213;2214;2215;, + 4;2216;2217;2218;2219;, + 4;2220;2221;2222;2223;, + 4;2224;2225;2226;2227;, + 4;2228;2229;2230;2231;, + 4;2232;2233;2234;2235;, + 4;2236;2237;2238;2239;, + 4;2240;2241;2242;2243;, + 4;2244;2245;2246;2247;, + 4;2248;2249;2250;2251;, + 4;2252;2253;2254;2255;, + 4;2256;2257;2258;2259;, + 4;2260;2261;2262;2263;, + 4;2264;2265;2266;2267;, + 4;2268;2269;2270;2271;, + 4;2272;2273;2274;2275;, + 4;2276;2277;2278;2279;, + 4;2280;2281;2282;2283;, + 4;2284;2285;2286;2287;, + 4;2288;2289;2290;2291;, + 4;2292;2293;2294;2295;, + 4;2296;2297;2298;2299;, + 4;2300;2301;2302;2303;, + 4;2304;2305;2306;2307;, + 4;2308;2309;2310;2311;, + 4;2312;2313;2314;2315;, + 4;2316;2317;2318;2319;, + 4;2320;2321;2322;2323;, + 4;2324;2325;2326;2327;, + 4;2328;2329;2330;2331;, + 4;2332;2333;2334;2335;, + 4;2336;2337;2338;2339;, + 4;2340;2341;2342;2343;, + 4;2344;2345;2346;2347;, + 4;2348;2349;2350;2351;, + 4;2352;2353;2354;2355;, + 4;2356;2357;2358;2359;, + 4;2360;2361;2362;2363;, + 4;2364;2365;2366;2367;, + 4;2368;2369;2370;2371;, + 4;2372;2373;2374;2375;, + 4;2376;2377;2378;2379;, + 4;2380;2381;2382;2383;, + 4;2384;2385;2386;2387;, + 4;2388;2389;2390;2391;, + 4;2392;2393;2394;2395;, + 4;2396;2397;2398;2399;, + 4;2400;2401;2402;2403;, + 4;2404;2405;2406;2407;, + 4;2408;2409;2410;2411;, + 4;2412;2413;2414;2415;, + 4;2416;2417;2418;2419;, + 4;2420;2421;2422;2423;, + 4;2424;2425;2426;2427;, + 4;2428;2429;2430;2431;, + 4;2432;2433;2434;2435;, + 4;2436;2437;2438;2439;, + 4;2440;2441;2442;2443;, + 4;2444;2445;2446;2447;, + 4;2448;2449;2450;2451;, + 4;2452;2453;2454;2455;, + 4;2456;2457;2458;2459;, + 4;2460;2461;2462;2463;, + 4;2464;2465;2466;2467;, + 4;2468;2469;2470;2471;, + 4;2472;2473;2474;2475;, + 4;2476;2477;2478;2479;, + 4;2480;2481;2482;2483;, + 4;2484;2485;2486;2487;, + 4;2488;2489;2490;2491;, + 4;2492;2493;2494;2495;, + 4;2496;2497;2498;2499;, + 4;2500;2501;2502;2503;, + 4;2504;2505;2506;2507;, + 4;2508;2509;2510;2511;, + 4;2512;2513;2514;2515;, + 4;2516;2517;2518;2519;, + 4;2520;2521;2522;2523;, + 4;2524;2525;2526;2527;, + 4;2528;2529;2530;2531;, + 4;2532;2533;2534;2535;, + 4;2536;2537;2538;2539;, + 4;2540;2541;2542;2543;, + 4;2544;2545;2546;2547;, + 4;2548;2549;2550;2551;, + 4;2552;2553;2554;2555;, + 4;2556;2557;2558;2559;, + 4;2560;2561;2562;2563;, + 4;2564;2565;2566;2567;, + 4;2568;2569;2570;2571;, + 4;2572;2573;2574;2575;, + 4;2576;2577;2578;2579;, + 4;2580;2581;2582;2583;, + 4;2584;2585;2586;2587;, + 4;2588;2589;2590;2591;, + 4;2592;2593;2594;2595;, + 4;2596;2597;2598;2599;, + 4;2600;2601;2602;2603;, + 4;2604;2605;2606;2607;, + 4;2608;2609;2610;2611;, + 4;2612;2613;2614;2615;, + 4;2616;2617;2618;2619;, + 4;2620;2621;2622;2623;, + 4;2624;2625;2626;2627;, + 4;2628;2629;2630;2631;, + 4;2632;2633;2634;2635;, + 4;2636;2637;2638;2639;, + 4;2640;2641;2642;2643;, + 4;2644;2645;2646;2647;, + 4;2648;2649;2650;2651;, + 4;2652;2653;2654;2655;, + 4;2656;2657;2658;2659;, + 4;2660;2661;2662;2663;, + 4;2664;2665;2666;2667;, + 4;2668;2669;2670;2671;, + 4;2672;2673;2674;2675;, + 4;2676;2677;2678;2679;, + 4;2680;2681;2682;2683;, + 4;2684;2685;2686;2687;, + 4;2688;2689;2690;2691;, + 4;2692;2693;2694;2695;, + 4;2696;2697;2698;2699;, + 4;2700;2701;2702;2703;, + 4;2704;2705;2706;2707;, + 4;2708;2709;2710;2711;, + 4;2712;2713;2714;2715;, + 4;2716;2717;2718;2719;, + 4;2720;2721;2722;2723;, + 4;2724;2725;2726;2727;, + 4;2728;2729;2730;2731;, + 4;2732;2733;2734;2735;, + 4;2736;2737;2738;2739;, + 4;2740;2741;2742;2743;, + 4;2744;2745;2746;2747;, + 4;2748;2749;2750;2751;, + 4;2752;2753;2754;2755;, + 4;2756;2757;2758;2759;, + 4;2760;2761;2762;2763;, + 4;2764;2765;2766;2767;, + 4;2768;2769;2770;2771;, + 4;2772;2773;2774;2775;, + 4;2776;2777;2778;2779;, + 4;2780;2781;2782;2783;, + 4;2784;2785;2786;2787;, + 4;2788;2789;2790;2791;, + 4;2792;2793;2794;2795;, + 4;2796;2797;2798;2799;, + 4;2800;2801;2802;2803;, + 4;2804;2805;2806;2807;, + 4;2808;2809;2810;2811;, + 4;2812;2813;2814;2815;, + 4;2816;2817;2818;2819;, + 4;2820;2821;2822;2823;, + 4;2824;2825;2826;2827;, + 4;2828;2829;2830;2831;, + 4;2832;2833;2834;2835;, + 4;2836;2837;2838;2839;, + 4;2840;2841;2842;2843;, + 4;2844;2845;2846;2847;, + 4;2848;2849;2850;2851;, + 4;2852;2853;2854;2855;, + 4;2856;2857;2858;2859;, + 4;2860;2861;2862;2863;, + 4;2864;2865;2866;2867;, + 4;2868;2869;2870;2871;, + 4;2872;2873;2874;2875;, + 4;2876;2877;2878;2879;, + 4;2880;2881;2882;2883;, + 4;2884;2885;2886;2887;, + 4;2888;2889;2890;2891;, + 4;2892;2893;2894;2895;, + 4;2896;2897;2898;2899;, + 4;2900;2901;2902;2903;, + 4;2904;2905;2906;2907;, + 4;2908;2909;2910;2911;, + 4;2912;2913;2914;2915;, + 4;2916;2917;2918;2919;, + 4;2920;2921;2922;2923;, + 4;2924;2925;2926;2927;, + 4;2928;2929;2930;2931;, + 4;2932;2933;2934;2935;, + 4;2936;2937;2938;2939;, + 4;2940;2941;2942;2943;, + 4;2944;2945;2946;2947;, + 4;2948;2949;2950;2951;; + } //End of Plane_000 Normals + MeshMaterialList { //Plane_000 Material List + 1; + 738; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0;; + Material Material { + 0.640000; 0.640000; 0.640000; 1.000000;; + 96.078431; + 0.500000; 0.500000; 0.500000;; + 0.000000; 0.000000; 0.000000;; + TextureFilename {"boat.png";} + } + } //End of Plane_000 Material List + MeshTextureCoords { //Plane_000 UV Coordinates + 2952; + 0.116022; 0.052830;, + 0.087066; 0.052833;, + 0.087063; 0.025689;, + 0.116019; 0.025685;, + 0.029160; 0.479941;, + 0.058118; 0.479941;, + 0.058118; 0.507087;, + 0.029160; 0.507087;, + 0.087076; 0.222947;, + 0.058119; 0.222948;, + 0.058119; 0.195803;, + 0.087075; 0.195803;, + 0.144991; 0.393067;, + 0.116033; 0.393067;, + 0.116034; 0.365922;, + 0.144991; 0.365922;, + 0.405609; 0.393072;, + 0.376652; 0.393070;, + 0.376653; 0.365924;, + 0.405611; 0.365926;, + 0.405620; 0.139684;, + 0.434582; 0.139684;, + 0.434582; 0.166834;, + 0.405621; 0.166834;, + 0.662141; 0.896163;, + 0.691099; 0.896163;, + 0.691099; 0.923309;, + 0.662141; 0.923309;, + 0.289781; 0.309818;, + 0.318739; 0.309818;, + 0.318739; 0.336965;, + 0.289780; 0.336964;, + 0.749016; 0.896163;, + 0.777974; 0.896163;, + 0.777974; 0.923309;, + 0.749016; 0.923309;, + 0.173944; 0.139696;, + 0.202902; 0.139694;, + 0.202903; 0.166840;, + 0.173946; 0.166842;, + 0.231853; 0.052816;, + 0.202894; 0.052820;, + 0.202891; 0.025674;, + 0.231849; 0.025670;, + 0.202907; 0.393067;, + 0.173949; 0.393067;, + 0.173949; 0.365921;, + 0.202907; 0.365921;, + 0.318738; 0.139687;, + 0.347698; 0.139686;, + 0.347699; 0.166834;, + 0.318739; 0.166835;, + 0.289772; 0.052810;, + 0.260812; 0.052813;, + 0.260808; 0.025666;, + 0.289768; 0.025662;, + 0.579760; 0.536037;, + 0.550803; 0.536034;, + 0.550805; 0.508889;, + 0.579762; 0.508891;, + 0.202907; 0.479940;, + 0.231864; 0.479940;, + 0.231865; 0.507085;, + 0.202907; 0.507085;, + 0.087073; 0.139701;, + 0.116029; 0.139700;, + 0.116031; 0.166845;, + 0.087074; 0.166846;, + 0.463541; 0.222946;, + 0.434580; 0.222944;, + 0.434581; 0.195795;, + 0.463543; 0.195797;, + 0.434571; 0.336970;, + 0.463530; 0.336973;, + 0.463527; 0.365931;, + 0.434569; 0.365928;, + 0.405613; 0.336968;, + 0.434571; 0.336970;, + 0.434569; 0.365928;, + 0.405611; 0.365926;, + 0.347692; 0.479940;, + 0.376649; 0.479941;, + 0.376648; 0.507085;, + 0.347691; 0.507085;, + 0.202907; 0.336964;, + 0.231865; 0.336964;, + 0.231864; 0.365922;, + 0.202907; 0.365921;, + 0.173949; 0.336964;, + 0.202907; 0.336964;, + 0.202907; 0.365921;, + 0.173949; 0.365921;, + 0.144991; 0.309818;, + 0.173949; 0.309818;, + 0.173949; 0.336964;, + 0.144991; 0.336964;, + 0.434582; 0.166834;, + 0.463544; 0.166834;, + 0.463543; 0.195797;, + 0.434581; 0.195795;, + 0.405621; 0.166834;, + 0.434582; 0.166834;, + 0.434581; 0.195795;, + 0.405620; 0.195795;, + 0.144990; 0.222946;, + 0.116033; 0.222947;, + 0.116032; 0.195802;, + 0.144989; 0.195800;, + 0.318739; 0.166835;, + 0.347699; 0.166834;, + 0.347700; 0.195794;, + 0.318740; 0.195795;, + 0.289780; 0.166836;, + 0.318739; 0.166835;, + 0.318740; 0.195795;, + 0.289780; 0.195795;, + 0.231865; 0.309818;, + 0.260823; 0.309818;, + 0.260822; 0.336964;, + 0.231865; 0.336964;, + 0.434560; 0.507088;, + 0.463516; 0.507089;, + 0.463514; 0.536045;, + 0.434558; 0.536044;, + 0.405604; 0.507086;, + 0.434560; 0.507088;, + 0.434558; 0.536044;, + 0.405603; 0.536042;, + 0.058118; 0.393067;, + 0.029160; 0.393067;, + 0.029160; 0.365921;, + 0.058118; 0.365921;, + 0.318735; 0.507084;, + 0.347691; 0.507085;, + 0.347691; 0.536041;, + 0.318735; 0.536041;, + 0.289778; 0.507084;, + 0.318735; 0.507084;, + 0.318735; 0.536041;, + 0.289779; 0.536041;, + 0.376654; 0.052801;, + 0.347693; 0.052804;, + 0.347690; 0.025655;, + 0.376652; 0.025652;, + 0.318739; 0.336965;, + 0.347697; 0.336965;, + 0.347696; 0.365923;, + 0.318738; 0.365923;, + 0.289780; 0.336964;, + 0.318739; 0.336965;, + 0.318738; 0.365923;, + 0.289780; 0.365922;, + 0.806932; 0.896163;, + 0.835890; 0.896163;, + 0.835890; 0.923309;, + 0.806932; 0.923309;, + 0.202907; 0.507085;, + 0.231865; 0.507085;, + 0.231865; 0.536042;, + 0.202908; 0.536043;, + 0.173950; 0.507086;, + 0.202907; 0.507085;, + 0.202908; 0.536043;, + 0.173950; 0.536044;, + 0.260819; 0.139691;, + 0.289778; 0.139689;, + 0.289780; 0.166836;, + 0.260820; 0.166837;, + 0.087076; 0.507087;, + 0.116034; 0.507086;, + 0.116034; 0.536044;, + 0.087076; 0.536045;, + 0.058118; 0.507087;, + 0.087076; 0.507087;, + 0.087076; 0.536045;, + 0.058118; 0.536045;, + 0.782471; 0.536045;, + 0.753512; 0.536045;, + 0.753512; 0.508898;, + 0.782471; 0.508898;, + 0.087076; 0.336964;, + 0.116034; 0.336964;, + 0.116034; 0.365922;, + 0.087076; 0.365921;, + 0.058118; 0.336964;, + 0.087076; 0.336964;, + 0.087076; 0.365921;, + 0.058118; 0.365921;, + 0.116029; 0.139700;, + 0.144987; 0.139698;, + 0.144988; 0.166843;, + 0.116031; 0.166845;, + 0.202903; 0.166840;, + 0.231862; 0.166839;, + 0.231863; 0.195797;, + 0.202905; 0.195798;, + 0.173946; 0.166842;, + 0.202903; 0.166840;, + 0.202905; 0.195798;, + 0.173947; 0.195799;, + 0.260822; 0.479939;, + 0.289779; 0.479939;, + 0.289778; 0.507084;, + 0.260822; 0.507084;, + 0.087074; 0.166846;, + 0.116031; 0.166845;, + 0.116032; 0.195802;, + 0.087075; 0.195803;, + 0.058118; 0.166847;, + 0.087074; 0.166846;, + 0.087075; 0.195803;, + 0.058119; 0.195803;, + 0.116033; 0.222947;, + 0.087076; 0.222947;, + 0.087075; 0.195803;, + 0.116032; 0.195802;, + 0.144992; 0.479940;, + 0.173949; 0.479940;, + 0.173950; 0.507086;, + 0.144992; 0.507086;, + 0.202906; 0.222944;, + 0.173948; 0.222945;, + 0.173947; 0.195799;, + 0.202905; 0.195798;, + 0.376652; 0.393070;, + 0.347695; 0.393069;, + 0.347696; 0.365923;, + 0.376653; 0.365924;, + 0.434578; 0.052797;, + 0.405616; 0.052799;, + 0.405614; 0.025649;, + 0.434577; 0.025647;, + 0.029162; 0.309818;, + 0.058119; 0.309818;, + 0.058118; 0.336964;, + 0.029161; 0.336963;, + 0.173949; 0.309818;, + 0.202907; 0.309818;, + 0.202907; 0.336964;, + 0.173949; 0.336964;, + 0.289779; 0.479939;, + 0.318735; 0.479940;, + 0.318735; 0.507084;, + 0.289778; 0.507084;, + 0.289780; 0.393068;, + 0.260822; 0.393067;, + 0.260822; 0.365922;, + 0.289780; 0.365922;, + 0.058119; 0.309818;, + 0.087076; 0.309818;, + 0.087076; 0.336964;, + 0.058118; 0.336964;, + 0.231864; 0.393067;, + 0.202907; 0.393067;, + 0.202907; 0.365921;, + 0.231864; 0.365922;, + 0.434567; 0.393073;, + 0.405609; 0.393072;, + 0.405611; 0.365926;, + 0.434569; 0.365928;, + 0.434582; 0.139684;, + 0.463545; 0.139683;, + 0.463544; 0.166834;, + 0.434582; 0.166834;, + 0.376655; 0.336967;, + 0.405613; 0.336968;, + 0.405611; 0.365926;, + 0.376653; 0.365924;, + 0.347697; 0.336965;, + 0.376655; 0.336967;, + 0.376653; 0.365924;, + 0.347696; 0.365923;, + 0.260812; 0.052813;, + 0.231853; 0.052816;, + 0.231849; 0.025670;, + 0.260808; 0.025666;, + 0.289781; 0.222942;, + 0.260822; 0.222943;, + 0.260822; 0.195796;, + 0.289780; 0.195795;, + 0.550803; 0.536034;, + 0.521845; 0.536032;, + 0.521847; 0.508886;, + 0.550805; 0.508889;, + 0.318739; 0.309818;, + 0.347698; 0.309819;, + 0.347697; 0.336965;, + 0.318739; 0.336965;, + 0.637676; 0.536041;, + 0.608718; 0.536039;, + 0.608720; 0.508893;, + 0.637678; 0.508895;, + 0.202902; 0.139694;, + 0.231860; 0.139692;, + 0.231862; 0.166839;, + 0.202903; 0.166840;, + 0.318732; 0.052806;, + 0.289772; 0.052810;, + 0.289768; 0.025662;, + 0.318729; 0.025658;, + 0.144991; 0.336964;, + 0.173949; 0.336964;, + 0.173949; 0.365921;, + 0.144991; 0.365922;, + 0.116034; 0.336964;, + 0.144991; 0.336964;, + 0.144991; 0.365922;, + 0.116034; 0.365922;, + 0.864848; 0.896163;, + 0.893806; 0.896163;, + 0.893806; 0.923309;, + 0.864848; 0.923309;, + 0.029160; 0.393067;, + 0.000202; 0.393067;, + 0.000202; 0.365920;, + 0.029160; 0.365921;, + 0.777974; 0.896163;, + 0.806932; 0.896163;, + 0.806932; 0.923309;, + 0.777974; 0.923309;, + 0.058110; 0.052835;, + 0.029155; 0.052838;, + 0.029152; 0.025694;, + 0.058107; 0.025692;, + 0.376649; 0.479941;, + 0.405605; 0.479942;, + 0.405604; 0.507086;, + 0.376648; 0.507085;, + 0.000205; 0.139706;, + 0.029161; 0.139705;, + 0.029162; 0.166848;, + 0.000206; 0.166849;, + 0.231864; 0.222943;, + 0.202906; 0.222944;, + 0.202905; 0.195798;, + 0.231863; 0.195797;, + 0.260823; 0.309818;, + 0.289781; 0.309818;, + 0.289780; 0.336964;, + 0.260822; 0.336964;, + 0.087076; 0.393067;, + 0.058118; 0.393067;, + 0.058118; 0.365921;, + 0.087076; 0.365921;, + 0.463541; 0.052795;, + 0.434578; 0.052797;, + 0.434577; 0.025647;, + 0.463539; 0.025645;, + 0.695593; 0.536044;, + 0.666635; 0.536043;, + 0.666636; 0.508897;, + 0.695594; 0.508898;, + 0.405615; 0.309822;, + 0.434574; 0.309824;, + 0.434571; 0.336970;, + 0.405613; 0.336968;, + 0.173936; 0.052823;, + 0.144979; 0.052827;, + 0.144976; 0.025682;, + 0.173933; 0.025678;, + 0.376660; 0.166834;, + 0.405621; 0.166834;, + 0.405620; 0.195795;, + 0.376660; 0.195794;, + 0.347699; 0.166834;, + 0.376660; 0.166834;, + 0.376660; 0.195794;, + 0.347700; 0.195794;, + 0.633183; 0.896163;, + 0.662141; 0.896163;, + 0.662141; 0.923309;, + 0.633183; 0.923309;, + 0.144987; 0.139698;, + 0.173944; 0.139696;, + 0.173946; 0.166842;, + 0.144988; 0.166843;, + 0.405605; 0.479942;, + 0.434561; 0.479944;, + 0.434560; 0.507088;, + 0.405604; 0.507086;, + 0.260822; 0.393067;, + 0.231864; 0.393067;, + 0.231864; 0.365922;, + 0.260822; 0.365922;, + 0.058118; 0.479941;, + 0.087076; 0.479941;, + 0.087076; 0.507087;, + 0.058118; 0.507087;, + 0.463524; 0.393076;, + 0.434567; 0.393073;, + 0.434569; 0.365928;, + 0.463527; 0.365931;, + 0.202907; 0.309818;, + 0.231865; 0.309818;, + 0.231865; 0.336964;, + 0.202907; 0.336964;, + 0.260820; 0.166837;, + 0.289780; 0.166836;, + 0.289780; 0.195795;, + 0.260822; 0.195796;, + 0.231862; 0.166839;, + 0.260820; 0.166837;, + 0.260822; 0.195796;, + 0.231863; 0.195797;, + 0.260822; 0.222943;, + 0.231864; 0.222943;, + 0.231863; 0.195797;, + 0.260822; 0.195796;, + 0.405620; 0.222943;, + 0.376659; 0.222942;, + 0.376660; 0.195794;, + 0.405620; 0.195795;, + 0.347698; 0.309819;, + 0.376656; 0.309820;, + 0.376655; 0.336967;, + 0.347697; 0.336965;, + 0.318735; 0.479940;, + 0.347692; 0.479940;, + 0.347691; 0.507085;, + 0.318735; 0.507084;, + 0.318737; 0.393068;, + 0.289780; 0.393068;, + 0.289780; 0.365922;, + 0.318738; 0.365923;, + 0.087076; 0.309818;, + 0.116034; 0.309818;, + 0.116034; 0.336964;, + 0.087076; 0.336964;, + 0.347698; 0.139686;, + 0.376659; 0.139685;, + 0.376660; 0.166834;, + 0.347699; 0.166834;, + 0.376648; 0.507085;, + 0.405604; 0.507086;, + 0.405603; 0.536042;, + 0.376647; 0.536041;, + 0.347691; 0.507085;, + 0.376648; 0.507085;, + 0.376647; 0.536041;, + 0.347691; 0.536041;, + 0.347693; 0.052804;, + 0.318732; 0.052806;, + 0.318729; 0.025658;, + 0.347690; 0.025655;, + 0.260822; 0.507084;, + 0.289778; 0.507084;, + 0.289779; 0.536041;, + 0.260822; 0.536041;, + 0.231865; 0.507085;, + 0.260822; 0.507084;, + 0.260822; 0.536041;, + 0.231865; 0.536042;, + 0.318740; 0.222942;, + 0.289781; 0.222942;, + 0.289780; 0.195795;, + 0.318740; 0.195795;, + 0.922764; 0.896163;, + 0.951722; 0.896163;, + 0.951722; 0.923309;, + 0.922764; 0.923309;, + 0.029155; 0.052838;, + 0.000199; 0.052841;, + 0.000197; 0.025697;, + 0.029152; 0.025694;, + 0.000202; 0.479941;, + 0.029160; 0.479941;, + 0.029160; 0.507087;, + 0.000202; 0.507087;, + 0.058119; 0.222948;, + 0.029163; 0.222948;, + 0.029163; 0.195804;, + 0.058119; 0.195803;, + 0.753512; 0.536045;, + 0.724553; 0.536045;, + 0.724553; 0.508898;, + 0.753512; 0.508898;, + 0.116033; 0.393067;, + 0.087076; 0.393067;, + 0.087076; 0.365921;, + 0.116034; 0.365922;, + 0.260822; 0.336964;, + 0.289780; 0.336964;, + 0.289780; 0.365922;, + 0.260822; 0.365922;, + 0.231865; 0.336964;, + 0.260822; 0.336964;, + 0.260822; 0.365922;, + 0.231864; 0.365922;, + 0.666635; 0.536043;, + 0.637676; 0.536041;, + 0.637678; 0.508895;, + 0.666636; 0.508897;, + 0.144992; 0.507086;, + 0.173950; 0.507086;, + 0.173950; 0.536044;, + 0.144992; 0.536044;, + 0.116034; 0.507086;, + 0.144992; 0.507086;, + 0.144992; 0.536044;, + 0.116034; 0.536044;, + 0.087066; 0.052833;, + 0.058110; 0.052835;, + 0.058107; 0.025692;, + 0.087063; 0.025689;, + 0.029160; 0.507087;, + 0.058118; 0.507087;, + 0.058118; 0.536045;, + 0.029160; 0.536045;, + 0.000202; 0.507087;, + 0.029160; 0.507087;, + 0.029160; 0.536045;, + 0.000202; 0.536045;, + 0.144979; 0.052827;, + 0.116022; 0.052830;, + 0.116019; 0.025685;, + 0.144976; 0.025682;, + 0.173949; 0.393067;, + 0.144991; 0.393067;, + 0.144991; 0.365922;, + 0.173949; 0.365921;, + 0.289778; 0.139689;, + 0.318738; 0.139687;, + 0.318739; 0.166835;, + 0.289780; 0.166836;, + 0.691099; 0.896163;, + 0.720057; 0.896163;, + 0.720058; 0.923309;, + 0.691099; 0.923309;, + 0.029161; 0.139705;, + 0.058116; 0.139703;, + 0.058118; 0.166847;, + 0.029162; 0.166848;, + 0.173949; 0.479940;, + 0.202907; 0.479940;, + 0.202907; 0.507085;, + 0.173950; 0.507086;, + 0.058116; 0.139703;, + 0.087073; 0.139701;, + 0.087074; 0.166846;, + 0.058118; 0.166847;, + 0.029161; 0.336963;, + 0.058118; 0.336964;, + 0.058118; 0.365921;, + 0.029160; 0.365921;, + 0.000203; 0.336962;, + 0.029161; 0.336963;, + 0.029160; 0.365921;, + 0.000202; 0.365920;, + 0.434574; 0.309824;, + 0.463533; 0.309827;, + 0.463530; 0.336973;, + 0.434571; 0.336970;, + 0.376659; 0.222942;, + 0.347700; 0.222942;, + 0.347700; 0.195794;, + 0.376660; 0.195794;, + 0.202894; 0.052820;, + 0.173936; 0.052823;, + 0.173933; 0.025678;, + 0.202891; 0.025674;, + 0.521845; 0.536032;, + 0.492888; 0.536029;, + 0.492890; 0.508884;, + 0.521847; 0.508886;, + 0.434561; 0.479944;, + 0.463517; 0.479945;, + 0.463516; 0.507089;, + 0.434560; 0.507088;, + 0.347695; 0.393069;, + 0.318737; 0.393068;, + 0.318738; 0.365923;, + 0.347696; 0.365923;, + 0.116034; 0.309818;, + 0.144991; 0.309818;, + 0.144991; 0.336964;, + 0.116034; 0.336964;, + 0.144988; 0.166843;, + 0.173946; 0.166842;, + 0.173947; 0.195799;, + 0.144989; 0.195800;, + 0.116031; 0.166845;, + 0.144988; 0.166843;, + 0.144989; 0.195800;, + 0.116032; 0.195802;, + 0.087076; 0.479941;, + 0.116034; 0.479941;, + 0.116034; 0.507086;, + 0.087076; 0.507087;, + 0.347700; 0.222942;, + 0.318740; 0.222942;, + 0.318740; 0.195795;, + 0.347700; 0.195794;, + 0.231860; 0.139692;, + 0.260819; 0.139691;, + 0.260820; 0.166837;, + 0.231862; 0.166839;, + 0.434580; 0.222944;, + 0.405620; 0.222943;, + 0.405620; 0.195795;, + 0.434581; 0.195795;, + 0.893806; 0.896163;, + 0.922764; 0.896163;, + 0.922764; 0.923309;, + 0.893806; 0.923309;, + 0.376656; 0.309820;, + 0.405615; 0.309822;, + 0.405613; 0.336968;, + 0.376655; 0.336967;, + 0.231864; 0.479940;, + 0.260822; 0.479939;, + 0.260822; 0.507084;, + 0.231865; 0.507085;, + 0.029162; 0.166848;, + 0.058118; 0.166847;, + 0.058119; 0.195803;, + 0.029163; 0.195804;, + 0.000206; 0.166849;, + 0.029162; 0.166848;, + 0.029163; 0.195804;, + 0.000207; 0.195804;, + 0.029163; 0.222948;, + 0.000207; 0.222948;, + 0.000207; 0.195804;, + 0.029163; 0.195804;, + 0.116034; 0.479941;, + 0.144992; 0.479940;, + 0.144992; 0.507086;, + 0.116034; 0.507086;, + 0.173948; 0.222945;, + 0.144990; 0.222946;, + 0.144989; 0.195800;, + 0.173947; 0.195799;, + 0.376659; 0.139685;, + 0.405620; 0.139684;, + 0.405621; 0.166834;, + 0.376660; 0.166834;, + 0.405616; 0.052799;, + 0.376654; 0.052801;, + 0.376652; 0.025652;, + 0.405614; 0.025649;, + 0.000205; 0.309817;, + 0.029162; 0.309818;, + 0.029161; 0.336963;, + 0.000203; 0.336962;, + 0.811430; 0.536045;, + 0.782471; 0.536045;, + 0.782471; 0.508898;, + 0.811430; 0.508898;, + 0.260812; 0.052813;, + 0.289772; 0.052810;, + 0.289774; 0.081770;, + 0.260815; 0.081772;, + 0.318732; 0.052806;, + 0.347693; 0.052804;, + 0.347695; 0.081765;, + 0.318734; 0.081767;, + 0.260817; 0.110731;, + 0.289777; 0.110729;, + 0.289778; 0.139689;, + 0.260819; 0.139691;, + 0.260822; 0.222943;, + 0.289781; 0.222942;, + 0.289781; 0.251901;, + 0.260823; 0.251901;, + 0.318740; 0.222942;, + 0.347700; 0.222942;, + 0.347699; 0.251901;, + 0.318740; 0.251901;, + 0.376658; 0.110724;, + 0.405619; 0.110723;, + 0.405620; 0.139684;, + 0.376659; 0.139685;, + 0.376659; 0.222942;, + 0.405620; 0.222943;, + 0.405618; 0.251903;, + 0.376659; 0.251902;, + 0.434580; 0.222944;, + 0.463541; 0.222946;, + 0.463539; 0.251907;, + 0.434578; 0.251905;, + 0.144979; 0.052827;, + 0.173936; 0.052823;, + 0.173939; 0.081781;, + 0.144982; 0.081784;, + 0.202894; 0.052820;, + 0.231853; 0.052816;, + 0.231856; 0.081775;, + 0.202897; 0.081778;, + 0.144991; 0.280861;, + 0.173949; 0.280860;, + 0.173949; 0.309818;, + 0.144991; 0.309818;, + 0.144991; 0.393067;, + 0.173949; 0.393067;, + 0.173949; 0.422025;, + 0.144991; 0.422025;, + 0.202907; 0.393067;, + 0.231864; 0.393067;, + 0.231864; 0.422025;, + 0.202907; 0.422025;, + 0.376657; 0.280861;, + 0.405617; 0.280863;, + 0.405615; 0.309822;, + 0.376656; 0.309820;, + 0.376652; 0.393070;, + 0.405609; 0.393072;, + 0.405608; 0.422029;, + 0.376651; 0.422027;, + 0.434567; 0.393073;, + 0.463524; 0.393076;, + 0.463521; 0.422033;, + 0.434565; 0.422031;, + 0.376654; 0.052801;, + 0.405616; 0.052799;, + 0.405618; 0.081761;, + 0.376656; 0.081763;, + 0.434578; 0.052797;, + 0.463541; 0.052795;, + 0.463543; 0.081758;, + 0.434580; 0.081759;, + 0.087071; 0.110745;, + 0.116028; 0.110743;, + 0.116029; 0.139700;, + 0.087073; 0.139701;, + 0.202900; 0.110736;, + 0.231858; 0.110734;, + 0.231860; 0.139692;, + 0.202902; 0.139694;, + 0.087076; 0.280861;, + 0.116034; 0.280861;, + 0.116034; 0.309818;, + 0.087076; 0.309818;, + 0.087076; 0.450983;, + 0.116034; 0.450983;, + 0.116034; 0.479941;, + 0.087076; 0.479941;, + 0.202907; 0.450982;, + 0.231864; 0.450982;, + 0.231864; 0.479940;, + 0.202907; 0.479940;, + 0.318740; 0.280860;, + 0.347698; 0.280860;, + 0.347698; 0.309819;, + 0.318739; 0.309818;, + 0.318736; 0.450983;, + 0.347693; 0.450983;, + 0.347692; 0.479940;, + 0.318735; 0.479940;, + 0.434563; 0.450987;, + 0.463519; 0.450989;, + 0.463517; 0.479945;, + 0.434561; 0.479944;, + 0.318737; 0.110727;, + 0.347697; 0.110726;, + 0.347698; 0.139686;, + 0.318738; 0.139687;, + 0.434581; 0.110722;, + 0.463544; 0.110721;, + 0.463545; 0.139683;, + 0.434582; 0.139684;, + 0.202907; 0.280860;, + 0.231865; 0.280860;, + 0.231865; 0.309818;, + 0.202907; 0.309818;, + 0.434576; 0.280865;, + 0.463536; 0.280867;, + 0.463533; 0.309827;, + 0.434574; 0.309824;, + 0.256841; 0.710209;, + 0.256842; 0.739169;, + 0.237438; 0.739169;, + 0.237437; 0.710210;, + 0.411474; 0.883958;, + 0.411472; 0.912914;, + 0.392071; 0.912913;, + 0.392072; 0.883957;, + 0.102228; 0.941881;, + 0.102232; 0.970836;, + 0.082831; 0.970838;, + 0.082827; 0.941883;, + 0.343726; 0.594367;, + 0.343729; 0.565405;, + 0.363135; 0.565407;, + 0.363131; 0.594369;, + 0.343718; 0.739168;, + 0.343719; 0.710209;, + 0.363123; 0.710210;, + 0.363122; 0.739169;, + 0.498346; 0.855009;, + 0.498349; 0.826052;, + 0.517751; 0.826054;, + 0.517748; 0.855011;, + 0.411480; 0.797088;, + 0.411478; 0.826045;, + 0.392076; 0.826044;, + 0.392077; 0.797087;, + 0.343724; 0.623329;, + 0.343726; 0.594367;, + 0.363131; 0.594369;, + 0.363129; 0.623330;, + 0.411483; 0.739172;, + 0.411481; 0.768130;, + 0.392079; 0.768129;, + 0.392080; 0.739171;, + 0.411469; 0.941870;, + 0.411467; 0.970825;, + 0.392066; 0.970823;, + 0.392068; 0.941868;, + 0.189099; 0.999779;, + 0.189096; 0.970825;, + 0.208496; 0.970823;, + 0.208499; 0.999777;, + 0.102204; 0.768143;, + 0.102209; 0.797100;, + 0.082806; 0.797103;, + 0.082802; 0.768146;, + 0.256844; 0.797085;, + 0.256845; 0.826043;, + 0.237443; 0.826044;, + 0.237441; 0.797086;, + 0.521853; 0.432392;, + 0.550811; 0.432394;, + 0.550809; 0.451796;, + 0.521852; 0.451794;, + 0.343715; 0.883955;, + 0.343716; 0.854999;, + 0.363117; 0.854999;, + 0.363116; 0.883956;, + 0.608726; 0.432398;, + 0.637683; 0.432400;, + 0.637682; 0.451803;, + 0.608724; 0.451801;, + 0.189078; 0.768132;, + 0.189076; 0.739173;, + 0.208479; 0.739171;, + 0.208481; 0.768130;, + 0.102213; 0.826057;, + 0.102217; 0.855013;, + 0.082815; 0.855016;, + 0.082811; 0.826060;, + 0.392064; 0.999777;, + 0.363110; 0.999774;, + 0.363112; 0.970821;, + 0.392066; 0.970823;, + 0.392066; 0.970823;, + 0.363112; 0.970821;, + 0.363114; 0.941867;, + 0.392068; 0.941868;, + 0.893806; 0.999806;, + 0.864848; 0.999805;, + 0.864848; 0.980403;, + 0.893806; 0.980403;, + 0.392079; 0.768129;, + 0.363121; 0.768127;, + 0.363122; 0.739169;, + 0.392080; 0.739171;, + 0.392080; 0.739171;, + 0.363122; 0.739169;, + 0.363123; 0.710210;, + 0.392082; 0.710212;, + 0.411507; 0.536454;, + 0.411501; 0.565415;, + 0.392097; 0.565411;, + 0.392102; 0.536450;, + 0.237452; 0.999775;, + 0.208499; 0.999777;, + 0.208496; 0.970823;, + 0.237450; 0.970821;, + 0.237450; 0.970821;, + 0.208496; 0.970823;, + 0.208494; 0.941869;, + 0.237449; 0.941867;, + 0.806932; 0.999805;, + 0.777974; 0.999805;, + 0.777974; 0.980403;, + 0.806932; 0.980403;, + 0.237446; 0.883957;, + 0.208490; 0.883958;, + 0.208488; 0.855002;, + 0.237444; 0.855000;, + 0.237444; 0.855000;, + 0.208488; 0.855002;, + 0.208486; 0.826045;, + 0.237443; 0.826044;, + 0.102162; 0.565421;, + 0.102170; 0.594384;, + 0.082764; 0.594389;, + 0.082755; 0.565427;, + 0.546688; 0.999799;, + 0.517731; 0.999795;, + 0.517735; 0.970838;, + 0.546692; 0.970842;, + 0.546692; 0.970842;, + 0.517735; 0.970838;, + 0.517739; 0.941881;, + 0.546696; 0.941885;, + 0.498337; 0.941879;, + 0.498340; 0.912923;, + 0.517742; 0.912925;, + 0.517739; 0.941881;, + 0.546702; 0.883971;, + 0.517745; 0.883968;, + 0.517748; 0.855011;, + 0.546705; 0.855014;, + 0.546705; 0.855014;, + 0.517748; 0.855011;, + 0.517751; 0.826054;, + 0.546709; 0.826057;, + 0.189056; 0.565403;, + 0.189053; 0.536436;, + 0.208462; 0.536434;, + 0.208464; 0.565401;, + 0.392072; 0.883957;, + 0.363116; 0.883956;, + 0.363117; 0.854999;, + 0.392074; 0.855001;, + 0.392074; 0.855001;, + 0.363117; 0.854999;, + 0.363118; 0.826043;, + 0.392076; 0.826044;, + 0.256842; 0.739169;, + 0.256843; 0.768127;, + 0.237440; 0.768128;, + 0.237438; 0.739169;, + 0.546715; 0.768142;, + 0.517757; 0.768139;, + 0.517760; 0.739182;, + 0.546718; 0.739185;, + 0.546718; 0.739185;, + 0.517760; 0.739182;, + 0.517763; 0.710224;, + 0.546721; 0.710227;, + 0.343716; 0.826042;, + 0.343717; 0.797085;, + 0.363120; 0.797085;, + 0.363118; 0.826043;, + 0.546728; 0.652311;, + 0.517770; 0.652307;, + 0.517774; 0.623349;, + 0.546732; 0.623353;, + 0.546732; 0.623353;, + 0.517774; 0.623349;, + 0.517778; 0.594391;, + 0.546736; 0.594395;, + 0.411497; 0.594375;, + 0.411493; 0.623335;, + 0.392089; 0.623333;, + 0.392093; 0.594372;, + 0.392086; 0.652293;, + 0.363126; 0.652291;, + 0.363129; 0.623330;, + 0.392089; 0.623333;, + 0.392089; 0.623333;, + 0.363129; 0.623330;, + 0.363131; 0.594369;, + 0.392093; 0.594372;, + 0.102232; 0.970836;, + 0.102236; 0.999791;, + 0.082835; 0.999793;, + 0.082831; 0.970838;, + 0.237440; 0.768128;, + 0.208481; 0.768130;, + 0.208479; 0.739171;, + 0.237438; 0.739169;, + 0.237438; 0.739169;, + 0.208479; 0.739171;, + 0.208477; 0.710212;, + 0.237437; 0.710210;, + 0.666637; 0.432400;, + 0.695596; 0.432400;, + 0.695595; 0.451803;, + 0.666637; 0.451803;, + 0.237433; 0.652289;, + 0.208472; 0.652291;, + 0.208469; 0.623329;, + 0.237432; 0.623327;, + 0.237432; 0.623327;, + 0.208469; 0.623329;, + 0.208467; 0.594365;, + 0.237431; 0.594364;, + 0.343712; 0.970820;, + 0.343713; 0.941866;, + 0.363114; 0.941867;, + 0.363112; 0.970821;, + 0.102189; 0.681267;, + 0.102194; 0.710226;, + 0.082791; 0.710230;, + 0.082785; 0.681271;, + 0.662142; 0.999806;, + 0.633183; 0.999806;, + 0.633183; 0.980403;, + 0.662141; 0.980403;, + 0.189073; 0.710214;, + 0.189070; 0.681254;, + 0.208474; 0.681252;, + 0.208477; 0.710212;, + 0.498333; 0.970835;, + 0.498337; 0.941879;, + 0.517739; 0.941881;, + 0.517735; 0.970838;, + 0.411481; 0.768130;, + 0.411480; 0.797088;, + 0.392077; 0.797087;, + 0.392079; 0.768129;, + 0.498371; 0.623347;, + 0.498375; 0.594388;, + 0.517778; 0.594391;, + 0.517774; 0.623349;, + 0.411467; 0.970825;, + 0.411463; 0.999779;, + 0.392064; 0.999777;, + 0.392066; 0.970823;, + 0.343718; 0.768127;, + 0.343718; 0.739168;, + 0.363122; 0.739169;, + 0.363121; 0.768127;, + 0.256843; 0.768127;, + 0.256844; 0.797085;, + 0.237441; 0.797086;, + 0.237440; 0.768128;, + 0.256848; 0.912911;, + 0.256849; 0.941866;, + 0.237449; 0.941867;, + 0.237447; 0.912912;, + 0.343714; 0.912911;, + 0.343715; 0.883955;, + 0.363116; 0.883956;, + 0.363115; 0.912911;, + 0.498343; 0.883966;, + 0.498346; 0.855009;, + 0.517748; 0.855011;, + 0.517745; 0.883968;, + 0.392068; 0.941868;, + 0.363114; 0.941867;, + 0.363115; 0.912911;, + 0.392071; 0.912913;, + 0.392071; 0.912913;, + 0.363115; 0.912911;, + 0.363116; 0.883956;, + 0.392072; 0.883957;, + 0.411478; 0.826045;, + 0.411476; 0.855002;, + 0.392074; 0.855001;, + 0.392076; 0.826044;, + 0.343722; 0.652290;, + 0.343724; 0.623329;, + 0.363129; 0.623330;, + 0.363126; 0.652291;, + 0.189091; 0.912916;, + 0.189088; 0.883960;, + 0.208490; 0.883958;, + 0.208492; 0.912914;, + 0.102217; 0.855013;, + 0.102221; 0.883969;, + 0.082819; 0.883972;, + 0.082815; 0.855016;, + 0.256845; 0.826043;, + 0.256846; 0.854999;, + 0.237444; 0.855000;, + 0.237443; 0.826044;, + 0.951722; 0.999806;, + 0.922764; 0.999806;, + 0.922764; 0.980403;, + 0.951722; 0.980403;, + 0.102153; 0.536456;, + 0.102162; 0.565421;, + 0.082755; 0.565427;, + 0.082745; 0.536463;, + 0.392082; 0.710212;, + 0.363123; 0.710210;, + 0.363124; 0.681251;, + 0.392084; 0.681253;, + 0.392084; 0.681253;, + 0.363124; 0.681251;, + 0.363126; 0.652291;, + 0.392086; 0.652293;, + 0.498379; 0.565430;, + 0.498384; 0.536472;, + 0.517787; 0.536475;, + 0.517782; 0.565433;, + 0.256837; 0.565399;, + 0.256837; 0.594363;, + 0.237431; 0.594364;, + 0.237430; 0.565399;, + 0.724554; 0.432400;, + 0.753512; 0.432400;, + 0.753512; 0.451803;, + 0.724554; 0.451803;, + 0.411493; 0.623335;, + 0.411490; 0.652295;, + 0.392086; 0.652293;, + 0.392089; 0.623333;, + 0.744377; 0.250556;, + 0.744378; 0.193462;, + 0.779683; 0.193462;, + 0.779682; 0.250557;, + 0.102170; 0.594384;, + 0.102177; 0.623346;, + 0.082772; 0.623351;, + 0.082764; 0.594389;, + 0.102183; 0.652307;, + 0.102189; 0.681267;, + 0.082785; 0.681271;, + 0.082779; 0.652311;, + 0.411488; 0.681254;, + 0.411485; 0.710213;, + 0.392082; 0.710212;, + 0.392084; 0.681253;, + 0.189086; 0.855004;, + 0.189083; 0.826047;, + 0.208486; 0.826045;, + 0.208488; 0.855002;, + 0.720058; 0.999806;, + 0.691100; 0.999806;, + 0.691100; 0.980403;, + 0.720058; 0.980403;, + 0.189060; 0.594367;, + 0.189056; 0.565403;, + 0.208464; 0.565401;, + 0.208467; 0.594365;, + 0.498358; 0.739180;, + 0.498361; 0.710222;, + 0.517763; 0.710224;, + 0.517760; 0.739182;, + 0.189063; 0.623331;, + 0.189060; 0.594367;, + 0.208467; 0.594365;, + 0.208469; 0.623329;, + 0.237449; 0.941867;, + 0.208494; 0.941869;, + 0.208492; 0.912914;, + 0.237447; 0.912912;, + 0.237447; 0.912912;, + 0.208492; 0.912914;, + 0.208490; 0.883958;, + 0.237446; 0.883957;, + 0.343711; 0.999774;, + 0.343712; 0.970820;, + 0.363112; 0.970821;, + 0.363110; 0.999774;, + 0.256847; 0.883956;, + 0.256848; 0.912911;, + 0.237447; 0.912912;, + 0.237446; 0.883957;, + 0.102194; 0.710226;, + 0.102200; 0.739185;, + 0.082797; 0.739188;, + 0.082791; 0.710230;, + 0.492896; 0.432390;, + 0.521853; 0.432392;, + 0.521852; 0.451794;, + 0.492895; 0.451792;, + 0.498329; 0.999792;, + 0.498333; 0.970835;, + 0.517735; 0.970838;, + 0.517731; 0.999795;, + 0.411476; 0.855002;, + 0.411474; 0.883958;, + 0.392072; 0.883957;, + 0.392074; 0.855001;, + 0.343720; 0.681250;, + 0.343722; 0.652290;, + 0.363126; 0.652291;, + 0.363124; 0.681251;, + 0.237443; 0.826044;, + 0.208486; 0.826045;, + 0.208483; 0.797088;, + 0.237441; 0.797086;, + 0.237441; 0.797086;, + 0.208483; 0.797088;, + 0.208481; 0.768130;, + 0.237440; 0.768128;, + 0.498367; 0.652305;, + 0.498371; 0.623347;, + 0.517774; 0.623349;, + 0.517770; 0.652307;, + 0.256846; 0.854999;, + 0.256847; 0.883956;, + 0.237446; 0.883957;, + 0.237444; 0.855000;, + 0.189081; 0.797090;, + 0.189078; 0.768132;, + 0.208481; 0.768130;, + 0.208483; 0.797088;, + 0.256849; 0.941866;, + 0.256850; 0.970820;, + 0.237450; 0.970821;, + 0.237449; 0.941867;, + 0.922764; 0.999806;, + 0.893806; 0.999806;, + 0.893806; 0.980403;, + 0.922764; 0.980403;, + 0.343713; 0.941866;, + 0.343714; 0.912911;, + 0.363115; 0.912911;, + 0.363114; 0.941867;, + 0.498352; 0.797095;, + 0.498355; 0.768137;, + 0.517757; 0.768139;, + 0.517754; 0.797097;, + 0.546696; 0.941885;, + 0.517739; 0.941881;, + 0.517742; 0.912925;, + 0.546699; 0.912928;, + 0.546699; 0.912928;, + 0.517742; 0.912925;, + 0.517745; 0.883968;, + 0.546702; 0.883971;, + 0.256838; 0.536433;, + 0.256837; 0.565399;, + 0.237430; 0.565399;, + 0.237429; 0.536433;, + 0.546709; 0.826057;, + 0.517751; 0.826054;, + 0.517754; 0.797097;, + 0.546712; 0.797100;, + 0.546712; 0.797100;, + 0.517754; 0.797097;, + 0.517757; 0.768139;, + 0.546715; 0.768142;, + 0.498364; 0.681263;, + 0.498367; 0.652305;, + 0.517770; 0.652307;, + 0.517767; 0.681266;, + 0.256839; 0.681249;, + 0.256841; 0.710209;, + 0.237437; 0.710210;, + 0.237435; 0.681250;, + 0.189093; 0.941871;, + 0.189091; 0.912916;, + 0.208492; 0.912914;, + 0.208494; 0.941869;, + 0.102224; 0.912925;, + 0.102228; 0.941881;, + 0.082827; 0.941883;, + 0.082823; 0.912928;, + 0.343729; 0.565405;, + 0.343733; 0.536441;, + 0.363139; 0.536445;, + 0.363135; 0.565407;, + 0.782471; 0.432400;, + 0.811429; 0.432400;, + 0.811429; 0.451803;, + 0.782471; 0.451803;, + 0.102177; 0.623346;, + 0.102183; 0.652307;, + 0.082779; 0.652311;, + 0.082772; 0.623351;, + 0.392076; 0.826044;, + 0.363118; 0.826043;, + 0.363120; 0.797085;, + 0.392077; 0.797087;, + 0.392077; 0.797087;, + 0.363120; 0.797085;, + 0.363121; 0.768127;, + 0.392079; 0.768129;, + 0.498375; 0.594388;, + 0.498379; 0.565430;, + 0.517782; 0.565433;, + 0.517778; 0.594391;, + 0.546721; 0.710227;, + 0.517763; 0.710224;, + 0.517767; 0.681266;, + 0.546725; 0.681269;, + 0.546725; 0.681269;, + 0.517767; 0.681266;, + 0.517770; 0.652307;, + 0.546728; 0.652311;, + 0.256837; 0.594363;, + 0.256838; 0.623326;, + 0.237432; 0.623327;, + 0.237431; 0.594364;, + 0.546736; 0.594395;, + 0.517778; 0.594391;, + 0.517782; 0.565433;, + 0.546740; 0.565437;, + 0.546740; 0.565437;, + 0.517782; 0.565433;, + 0.517787; 0.536475;, + 0.546744; 0.536479;, + 0.411490; 0.652295;, + 0.411488; 0.681254;, + 0.392084; 0.681253;, + 0.392086; 0.652293;, + 0.411472; 0.912914;, + 0.411469; 0.941870;, + 0.392068; 0.941868;, + 0.392071; 0.912913;, + 0.189096; 0.970825;, + 0.189093; 0.941871;, + 0.208494; 0.941869;, + 0.208496; 0.970823;, + 0.691100; 0.999806;, + 0.662142; 0.999806;, + 0.662141; 0.980403;, + 0.691100; 0.980403;, + 0.343716; 0.854999;, + 0.343716; 0.826042;, + 0.363118; 0.826043;, + 0.363117; 0.854999;, + 0.777974; 0.999805;, + 0.749016; 0.999805;, + 0.749016; 0.980403;, + 0.777974; 0.980403;, + 0.189076; 0.739173;, + 0.189073; 0.710214;, + 0.208477; 0.710212;, + 0.208479; 0.739171;, + 0.392093; 0.594372;, + 0.363131; 0.594369;, + 0.363135; 0.565407;, + 0.392097; 0.565411;, + 0.392097; 0.565411;, + 0.363135; 0.565407;, + 0.363139; 0.536445;, + 0.392102; 0.536450;, + 0.102200; 0.739185;, + 0.102204; 0.768143;, + 0.082802; 0.768146;, + 0.082797; 0.739188;, + 0.411485; 0.710213;, + 0.411483; 0.739172;, + 0.392080; 0.739171;, + 0.392082; 0.710212;, + 0.189088; 0.883960;, + 0.189086; 0.855004;, + 0.208488; 0.855002;, + 0.208490; 0.883958;, + 0.102209; 0.797100;, + 0.102213; 0.826057;, + 0.082811; 0.826060;, + 0.082806; 0.797103;, + 0.550811; 0.432394;, + 0.579768; 0.432396;, + 0.579767; 0.451798;, + 0.550809; 0.451796;, + 0.498355; 0.768137;, + 0.498358; 0.739180;, + 0.517760; 0.739182;, + 0.517757; 0.768139;, + 0.189067; 0.652293;, + 0.189063; 0.623331;, + 0.208469; 0.623329;, + 0.208472; 0.652291;, + 0.237437; 0.710210;, + 0.208477; 0.710212;, + 0.208474; 0.681252;, + 0.237435; 0.681250;, + 0.237435; 0.681250;, + 0.208474; 0.681252;, + 0.208472; 0.652291;, + 0.237433; 0.652289;, + 0.256850; 0.970820;, + 0.256852; 0.999774;, + 0.237452; 0.999775;, + 0.237450; 0.970821;, + 0.498340; 0.912923;, + 0.498343; 0.883966;, + 0.517745; 0.883968;, + 0.517742; 0.912925;, + 0.343719; 0.710209;, + 0.343720; 0.681250;, + 0.363124; 0.681251;, + 0.363123; 0.710210;, + 0.256839; 0.652288;, + 0.256839; 0.681249;, + 0.237435; 0.681250;, + 0.237433; 0.652289;, + 0.343717; 0.797085;, + 0.343718; 0.768127;, + 0.363121; 0.768127;, + 0.363120; 0.797085;, + 0.411501; 0.565415;, + 0.411497; 0.594375;, + 0.392093; 0.594372;, + 0.392097; 0.565411;, + 0.102221; 0.883969;, + 0.102224; 0.912925;, + 0.082823; 0.912928;, + 0.082819; 0.883972;, + 0.237431; 0.594364;, + 0.208467; 0.594365;, + 0.208464; 0.565401;, + 0.237430; 0.565399;, + 0.237430; 0.565399;, + 0.208464; 0.565401;, + 0.208462; 0.536434;, + 0.237429; 0.536433;, + 0.835890; 0.999805;, + 0.806932; 0.999805;, + 0.806932; 0.980403;, + 0.835890; 0.980403;, + 0.189083; 0.826047;, + 0.189081; 0.797090;, + 0.208483; 0.797088;, + 0.208486; 0.826045;, + 0.753512; 0.432400;, + 0.782471; 0.432400;, + 0.782471; 0.451803;, + 0.753512; 0.451803;, + 0.189070; 0.681254;, + 0.189067; 0.652293;, + 0.208472; 0.652291;, + 0.208474; 0.681252;, + 0.498349; 0.826052;, + 0.498352; 0.797095;, + 0.517754; 0.797097;, + 0.517751; 0.826054;, + 0.256838; 0.623326;, + 0.256839; 0.652288;, + 0.237433; 0.652289;, + 0.237432; 0.623327;, + 0.498361; 0.710222;, + 0.498364; 0.681263;, + 0.517767; 0.681266;, + 0.517763; 0.710224;, + 0.782471; 0.451803;, + 0.811429; 0.451803;, + 0.811430; 0.508898;, + 0.782471; 0.508898;, + 0.569546; 0.317575;, + 0.538217; 0.317574;, + 0.538218; 0.250552;, + 0.569547; 0.250553;, + 0.546702; 0.883971;, + 0.546705; 0.855014;, + 0.603797; 0.855021;, + 0.603794; 0.883978;, + 0.000194; 0.000253;, + 0.029149; 0.000250;, + 0.029152; 0.025694;, + 0.000197; 0.025697;, + 0.546721; 0.710227;, + 0.546725; 0.681269;, + 0.603818; 0.681276;, + 0.603814; 0.710234;, + 0.057374; 0.883976;, + 0.057370; 0.855020;, + 0.082815; 0.855016;, + 0.082819; 0.883972;, + 0.691100; 0.980403;, + 0.662141; 0.980403;, + 0.662141; 0.923309;, + 0.691099; 0.923309;, + 0.546728; 0.652311;, + 0.546732; 0.623353;, + 0.603825; 0.623360;, + 0.603822; 0.652318;, + 0.057331; 0.652317;, + 0.057323; 0.623357;, + 0.082772; 0.623351;, + 0.082779; 0.652311;, + 0.666637; 0.451803;, + 0.695595; 0.451803;, + 0.695594; 0.508898;, + 0.666636; 0.508897;, + 0.546688; 0.999799;, + 0.546692; 0.970842;, + 0.603783; 0.970849;, + 0.603779; 0.999806;, + 0.546705; 0.855014;, + 0.546709; 0.826057;, + 0.603801; 0.826064;, + 0.603797; 0.855021;, + 0.662141; 0.980403;, + 0.633183; 0.980403;, + 0.633183; 0.923309;, + 0.662141; 0.923309;, + 0.057338; 0.681276;, + 0.057331; 0.652317;, + 0.082779; 0.652311;, + 0.082785; 0.681271;, + 0.720058; 0.980403;, + 0.691100; 0.980403;, + 0.691099; 0.923309;, + 0.720058; 0.923309;, + 0.289765; 0.000213;, + 0.318726; 0.000208;, + 0.318729; 0.025658;, + 0.289768; 0.025662;, + 0.546715; 0.768142;, + 0.546718; 0.739185;, + 0.603811; 0.739191;, + 0.603808; 0.768149;, + 0.546732; 0.623353;, + 0.546736; 0.594395;, + 0.603829; 0.594403;, + 0.603825; 0.623360;, + 0.893806; 0.980403;, + 0.864848; 0.980403;, + 0.864848; 0.923309;, + 0.893806; 0.923309;, + 0.057365; 0.826064;, + 0.057361; 0.797107;, + 0.082806; 0.797103;, + 0.082811; 0.826060;, + 0.546692; 0.970842;, + 0.546696; 0.941885;, + 0.603787; 0.941892;, + 0.603783; 0.970849;, + 0.777974; 0.980403;, + 0.749016; 0.980403;, + 0.749016; 0.923309;, + 0.777974; 0.923309;, + 0.633183; 0.980403;, + 0.604225; 0.980403;, + 0.604225; 0.923309;, + 0.633183; 0.923309;, + 0.058105; 0.000247;, + 0.087060; 0.000244;, + 0.087063; 0.025689;, + 0.058107; 0.025692;, + 0.922764; 0.980403;, + 0.893806; 0.980403;, + 0.893806; 0.923309;, + 0.922764; 0.923309;, + 0.434575; 0.000196;, + 0.463537; 0.000194;, + 0.463539; 0.025645;, + 0.434577; 0.025647;, + 0.546718; 0.739185;, + 0.546721; 0.710227;, + 0.603814; 0.710234;, + 0.603811; 0.739191;, + 0.521852; 0.451794;, + 0.550809; 0.451796;, + 0.550805; 0.508889;, + 0.521847; 0.508886;, + 0.864848; 0.980403;, + 0.835890; 0.980403;, + 0.835890; 0.923309;, + 0.864848; 0.923309;, + 0.057387; 0.970842;, + 0.057383; 0.941887;, + 0.082827; 0.941883;, + 0.082831; 0.970838;, + 0.144972; 0.000236;, + 0.173929; 0.000232;, + 0.173933; 0.025678;, + 0.144976; 0.025682;, + 0.749016; 0.980403;, + 0.720058; 0.980403;, + 0.720058; 0.923309;, + 0.749016; 0.923309;, + 0.492895; 0.451792;, + 0.521852; 0.451794;, + 0.521847; 0.508886;, + 0.492890; 0.508884;, + 0.951722; 0.980403;, + 0.922764; 0.980403;, + 0.922764; 0.923309;, + 0.951722; 0.923309;, + 0.806932; 0.980403;, + 0.777974; 0.980403;, + 0.777974; 0.923309;, + 0.806932; 0.923309;, + 0.546712; 0.797100;, + 0.546715; 0.768142;, + 0.603808; 0.768149;, + 0.603804; 0.797106;, + 0.057314; 0.594397;, + 0.057305; 0.565436;, + 0.082755; 0.565427;, + 0.082764; 0.594389;, + 0.550809; 0.451796;, + 0.579767; 0.451798;, + 0.579762; 0.508891;, + 0.550805; 0.508889;, + 0.202887; 0.000227;, + 0.231845; 0.000222;, + 0.231849; 0.025670;, + 0.202891; 0.025674;, + 0.724554; 0.451803;, + 0.753512; 0.451803;, + 0.753512; 0.508898;, + 0.724553; 0.508898;, + 0.546740; 0.565437;, + 0.546744; 0.536479;, + 0.603837; 0.536487;, + 0.603833; 0.565445;, + 0.608724; 0.451801;, + 0.637682; 0.451803;, + 0.637678; 0.508895;, + 0.608720; 0.508893;, + 0.463938; 0.451790;, + 0.492895; 0.451792;, + 0.492890; 0.508884;, + 0.463933; 0.508882;, + 0.835890; 0.980403;, + 0.806932; 0.980403;, + 0.806932; 0.923309;, + 0.835890; 0.923309;, + 0.546699; 0.912928;, + 0.546702; 0.883971;, + 0.603794; 0.883978;, + 0.603790; 0.912935;, + 0.546709; 0.826057;, + 0.546712; 0.797100;, + 0.603804; 0.797106;, + 0.603801; 0.826064;, + 0.057361; 0.797107;, + 0.057355; 0.768150;, + 0.082802; 0.768146;, + 0.082806; 0.797103;, + 0.753512; 0.451803;, + 0.782471; 0.451803;, + 0.782471; 0.508898;, + 0.753512; 0.508898;, + 0.695595; 0.451803;, + 0.724554; 0.451803;, + 0.724553; 0.508898;, + 0.695594; 0.508898;, + 0.057391; 0.999797;, + 0.057387; 0.970842;, + 0.082831; 0.970838;, + 0.082835; 0.999793;, + 0.546725; 0.681269;, + 0.546728; 0.652311;, + 0.603822; 0.652318;, + 0.603818; 0.681276;, + 0.546736; 0.594395;, + 0.546740; 0.565437;, + 0.603833; 0.565445;, + 0.603829; 0.594403;, + 0.057305; 0.565436;, + 0.057294; 0.536474;, + 0.082745; 0.536463;, + 0.082755; 0.565427;, + 0.579767; 0.451798;, + 0.608724; 0.451801;, + 0.608720; 0.508893;, + 0.579762; 0.508891;, + 0.318726; 0.000208;, + 0.347687; 0.000205;, + 0.347690; 0.025655;, + 0.318729; 0.025658;, + 0.546696; 0.941885;, + 0.546699; 0.912928;, + 0.603790; 0.912935;, + 0.603787; 0.941892;, + 0.343711; 0.999774;, + 0.314758; 0.999773;, + 0.314758; 0.970819;, + 0.343712; 0.970820;, + 0.343718; 0.768127;, + 0.314759; 0.768126;, + 0.314760; 0.739168;, + 0.343718; 0.739168;, + 0.189099; 0.999779;, + 0.160145; 0.999783;, + 0.160142; 0.970828;, + 0.189096; 0.970825;, + 0.189088; 0.883960;, + 0.160132; 0.883963;, + 0.160129; 0.855006;, + 0.189086; 0.855004;, + 0.498329; 0.999792;, + 0.469373; 0.999787;, + 0.469377; 0.970832;, + 0.498333; 0.970835;, + 0.498343; 0.883966;, + 0.469387; 0.883963;, + 0.469389; 0.855006;, + 0.498346; 0.855009;, + 0.343715; 0.883955;, + 0.314759; 0.883955;, + 0.314759; 0.854998;, + 0.343716; 0.854999;, + 0.498355; 0.768137;, + 0.469397; 0.768135;, + 0.469400; 0.739177;, + 0.498358; 0.739180;, + 0.498367; 0.652305;, + 0.469409; 0.652301;, + 0.469412; 0.623343;, + 0.498371; 0.623347;, + 0.343722; 0.652290;, + 0.314761; 0.652288;, + 0.314762; 0.623327;, + 0.343724; 0.623329;, + 0.189078; 0.768132;, + 0.160120; 0.768135;, + 0.160117; 0.739176;, + 0.189076; 0.739173;, + 0.189067; 0.652293;, + 0.160105; 0.652296;, + 0.160101; 0.623334;, + 0.189063; 0.623331;, + 0.131191; 0.999786;, + 0.102236; 0.999791;, + 0.102232; 0.970836;, + 0.131187; 0.970832;, + 0.131183; 0.941877;, + 0.102228; 0.941881;, + 0.102224; 0.912925;, + 0.131180; 0.912922;, + 0.440418; 0.999783;, + 0.411463; 0.999779;, + 0.411467; 0.970825;, + 0.440421; 0.970828;, + 0.440425; 0.941873;, + 0.411469; 0.941870;, + 0.411472; 0.912914;, + 0.440428; 0.912917;, + 0.343713; 0.941866;, + 0.314758; 0.941865;, + 0.314759; 0.912910;, + 0.343714; 0.912911;, + 0.440439; 0.768132;, + 0.411481; 0.768130;, + 0.411483; 0.739172;, + 0.440442; 0.739174;, + 0.440444; 0.710216;, + 0.411485; 0.710213;, + 0.411488; 0.681254;, + 0.440447; 0.681257;, + 0.343719; 0.710209;, + 0.314760; 0.710209;, + 0.314760; 0.681249;, + 0.343720; 0.681250;, + 0.131162; 0.768138;, + 0.102204; 0.768143;, + 0.102200; 0.739185;, + 0.131158; 0.739180;, + 0.131154; 0.710221;, + 0.102194; 0.710226;, + 0.102189; 0.681267;, + 0.131149; 0.681261;, + 0.285805; 0.999773;, + 0.256852; 0.999774;, + 0.256850; 0.970820;, + 0.285804; 0.970820;, + 0.285804; 0.941865;, + 0.256849; 0.941866;, + 0.256848; 0.912911;, + 0.285803; 0.912910;, + 0.189093; 0.941871;, + 0.160138; 0.941874;, + 0.160135; 0.912918;, + 0.189091; 0.912916;, + 0.285803; 0.883955;, + 0.256847; 0.883956;, + 0.256846; 0.854999;, + 0.285802; 0.854999;, + 0.285802; 0.826042;, + 0.256845; 0.826043;, + 0.256844; 0.797085;, + 0.285802; 0.797085;, + 0.189083; 0.826047;, + 0.160126; 0.826050;, + 0.160123; 0.797093;, + 0.189081; 0.797090;, + 0.131176; 0.883966;, + 0.102221; 0.883969;, + 0.102217; 0.855013;, + 0.131173; 0.855010;, + 0.131170; 0.826053;, + 0.102213; 0.826057;, + 0.102209; 0.797100;, + 0.131166; 0.797096;, + 0.498337; 0.941879;, + 0.469381; 0.941876;, + 0.469384; 0.912920;, + 0.498340; 0.912923;, + 0.498349; 0.826052;, + 0.469392; 0.826049;, + 0.469394; 0.797092;, + 0.498352; 0.797095;, + 0.440430; 0.883961;, + 0.411474; 0.883958;, + 0.411476; 0.855002;, + 0.440433; 0.855004;, + 0.440435; 0.826047;, + 0.411478; 0.826045;, + 0.411480; 0.797088;, + 0.440437; 0.797090;, + 0.343716; 0.826042;, + 0.314759; 0.826042;, + 0.314759; 0.797084;, + 0.343717; 0.797085;, + 0.498361; 0.710222;, + 0.469402; 0.710219;, + 0.469405; 0.681260;, + 0.498364; 0.681263;, + 0.498375; 0.594388;, + 0.469416; 0.594384;, + 0.469421; 0.565425;, + 0.498379; 0.565430;, + 0.440450; 0.652298;, + 0.411490; 0.652295;, + 0.411493; 0.623335;, + 0.440453; 0.623339;, + 0.440457; 0.594380;, + 0.411497; 0.594375;, + 0.411501; 0.565415;, + 0.440461; 0.565420;, + 0.343726; 0.594367;, + 0.314764; 0.594365;, + 0.314766; 0.565402;, + 0.343729; 0.565405;, + 0.285801; 0.768127;, + 0.256843; 0.768127;, + 0.256842; 0.739169;, + 0.285801; 0.739168;, + 0.285800; 0.710209;, + 0.256841; 0.710209;, + 0.256839; 0.681249;, + 0.285800; 0.681249;, + 0.189073; 0.710214;, + 0.160113; 0.710217;, + 0.160109; 0.681257;, + 0.189070; 0.681254;, + 0.285800; 0.652288;, + 0.256839; 0.652288;, + 0.256838; 0.623326;, + 0.285800; 0.623326;, + 0.285801; 0.594363;, + 0.256837; 0.594363;, + 0.256837; 0.565399;, + 0.285802; 0.565400;, + 0.189060; 0.594367;, + 0.160096; 0.594371;, + 0.160091; 0.565407;, + 0.189056; 0.565403;, + 0.131144; 0.652301;, + 0.102183; 0.652307;, + 0.102177; 0.623346;, + 0.131138; 0.623340;, + 0.131132; 0.594377;, + 0.102170; 0.594384;, + 0.102162; 0.565421;, + 0.131126; 0.565413;, + 0.343712; 0.970820;, + 0.314758; 0.970819;, + 0.314758; 0.941865;, + 0.343713; 0.941866;, + 0.343718; 0.739168;, + 0.314760; 0.739168;, + 0.314760; 0.710209;, + 0.343719; 0.710209;, + 0.189096; 0.970825;, + 0.160142; 0.970828;, + 0.160138; 0.941874;, + 0.189093; 0.941871;, + 0.189086; 0.855004;, + 0.160129; 0.855006;, + 0.160126; 0.826050;, + 0.189083; 0.826047;, + 0.498333; 0.970835;, + 0.469377; 0.970832;, + 0.469381; 0.941876;, + 0.498337; 0.941879;, + 0.498346; 0.855009;, + 0.469389; 0.855006;, + 0.469392; 0.826049;, + 0.498349; 0.826052;, + 0.343716; 0.854999;, + 0.314759; 0.854998;, + 0.314759; 0.826042;, + 0.343716; 0.826042;, + 0.498358; 0.739180;, + 0.469400; 0.739177;, + 0.469402; 0.710219;, + 0.498361; 0.710222;, + 0.498371; 0.623347;, + 0.469412; 0.623343;, + 0.469416; 0.594384;, + 0.498375; 0.594388;, + 0.343724; 0.623329;, + 0.314762; 0.623327;, + 0.314764; 0.594365;, + 0.343726; 0.594367;, + 0.189076; 0.739173;, + 0.160117; 0.739176;, + 0.160113; 0.710217;, + 0.189073; 0.710214;, + 0.189063; 0.623331;, + 0.160101; 0.623334;, + 0.160096; 0.594371;, + 0.189060; 0.594367;, + 0.160145; 0.999783;, + 0.131191; 0.999786;, + 0.131187; 0.970832;, + 0.160142; 0.970828;, + 0.160142; 0.970828;, + 0.131187; 0.970832;, + 0.131183; 0.941877;, + 0.160138; 0.941874;, + 0.131187; 0.970832;, + 0.102232; 0.970836;, + 0.102228; 0.941881;, + 0.131183; 0.941877;, + 0.160138; 0.941874;, + 0.131183; 0.941877;, + 0.131180; 0.912922;, + 0.160135; 0.912918;, + 0.160135; 0.912918;, + 0.131180; 0.912922;, + 0.131176; 0.883966;, + 0.160132; 0.883963;, + 0.131180; 0.912922;, + 0.102224; 0.912925;, + 0.102221; 0.883969;, + 0.131176; 0.883966;, + 0.469373; 0.999787;, + 0.440418; 0.999783;, + 0.440421; 0.970828;, + 0.469377; 0.970832;, + 0.469377; 0.970832;, + 0.440421; 0.970828;, + 0.440425; 0.941873;, + 0.469381; 0.941876;, + 0.440421; 0.970828;, + 0.411467; 0.970825;, + 0.411469; 0.941870;, + 0.440425; 0.941873;, + 0.469381; 0.941876;, + 0.440425; 0.941873;, + 0.440428; 0.912917;, + 0.469384; 0.912920;, + 0.469384; 0.912920;, + 0.440428; 0.912917;, + 0.440430; 0.883961;, + 0.469387; 0.883963;, + 0.440428; 0.912917;, + 0.411472; 0.912914;, + 0.411474; 0.883958;, + 0.440430; 0.883961;, + 0.343714; 0.912911;, + 0.314759; 0.912910;, + 0.314759; 0.883955;, + 0.343715; 0.883955;, + 0.469397; 0.768135;, + 0.440439; 0.768132;, + 0.440442; 0.739174;, + 0.469400; 0.739177;, + 0.469400; 0.739177;, + 0.440442; 0.739174;, + 0.440444; 0.710216;, + 0.469402; 0.710219;, + 0.440442; 0.739174;, + 0.411483; 0.739172;, + 0.411485; 0.710213;, + 0.440444; 0.710216;, + 0.469402; 0.710219;, + 0.440444; 0.710216;, + 0.440447; 0.681257;, + 0.469405; 0.681260;, + 0.469405; 0.681260;, + 0.440447; 0.681257;, + 0.440450; 0.652298;, + 0.469409; 0.652301;, + 0.440447; 0.681257;, + 0.411488; 0.681254;, + 0.411490; 0.652295;, + 0.440450; 0.652298;, + 0.343720; 0.681250;, + 0.314760; 0.681249;, + 0.314761; 0.652288;, + 0.343722; 0.652290;, + 0.160120; 0.768135;, + 0.131162; 0.768138;, + 0.131158; 0.739180;, + 0.160117; 0.739176;, + 0.160117; 0.739176;, + 0.131158; 0.739180;, + 0.131154; 0.710221;, + 0.160113; 0.710217;, + 0.131158; 0.739180;, + 0.102200; 0.739185;, + 0.102194; 0.710226;, + 0.131154; 0.710221;, + 0.160113; 0.710217;, + 0.131154; 0.710221;, + 0.131149; 0.681261;, + 0.160109; 0.681257;, + 0.160109; 0.681257;, + 0.131149; 0.681261;, + 0.131144; 0.652301;, + 0.160105; 0.652296;, + 0.131149; 0.681261;, + 0.102189; 0.681267;, + 0.102183; 0.652307;, + 0.131144; 0.652301;, + 0.314758; 0.999773;, + 0.285805; 0.999773;, + 0.285804; 0.970820;, + 0.314758; 0.970819;, + 0.314758; 0.970819;, + 0.285804; 0.970820;, + 0.285804; 0.941865;, + 0.314758; 0.941865;, + 0.285804; 0.970820;, + 0.256850; 0.970820;, + 0.256849; 0.941866;, + 0.285804; 0.941865;, + 0.314758; 0.941865;, + 0.285804; 0.941865;, + 0.285803; 0.912910;, + 0.314759; 0.912910;, + 0.314759; 0.912910;, + 0.285803; 0.912910;, + 0.285803; 0.883955;, + 0.314759; 0.883955;, + 0.285803; 0.912910;, + 0.256848; 0.912911;, + 0.256847; 0.883956;, + 0.285803; 0.883955;, + 0.189091; 0.912916;, + 0.160135; 0.912918;, + 0.160132; 0.883963;, + 0.189088; 0.883960;, + 0.314759; 0.883955;, + 0.285803; 0.883955;, + 0.285802; 0.854999;, + 0.314759; 0.854998;, + 0.314759; 0.854998;, + 0.285802; 0.854999;, + 0.285802; 0.826042;, + 0.314759; 0.826042;, + 0.285802; 0.854999;, + 0.256846; 0.854999;, + 0.256845; 0.826043;, + 0.285802; 0.826042;, + 0.314759; 0.826042;, + 0.285802; 0.826042;, + 0.285802; 0.797085;, + 0.314759; 0.797084;, + 0.314759; 0.797084;, + 0.285802; 0.797085;, + 0.285801; 0.768127;, + 0.314759; 0.768126;, + 0.285802; 0.797085;, + 0.256844; 0.797085;, + 0.256843; 0.768127;, + 0.285801; 0.768127;, + 0.189081; 0.797090;, + 0.160123; 0.797093;, + 0.160120; 0.768135;, + 0.189078; 0.768132;, + 0.160132; 0.883963;, + 0.131176; 0.883966;, + 0.131173; 0.855010;, + 0.160129; 0.855006;, + 0.160129; 0.855006;, + 0.131173; 0.855010;, + 0.131170; 0.826053;, + 0.160126; 0.826050;, + 0.131173; 0.855010;, + 0.102217; 0.855013;, + 0.102213; 0.826057;, + 0.131170; 0.826053;, + 0.160126; 0.826050;, + 0.131170; 0.826053;, + 0.131166; 0.797096;, + 0.160123; 0.797093;, + 0.160123; 0.797093;, + 0.131166; 0.797096;, + 0.131162; 0.768138;, + 0.160120; 0.768135;, + 0.131166; 0.797096;, + 0.102209; 0.797100;, + 0.102204; 0.768143;, + 0.131162; 0.768138;, + 0.498340; 0.912923;, + 0.469384; 0.912920;, + 0.469387; 0.883963;, + 0.498343; 0.883966;, + 0.498352; 0.797095;, + 0.469394; 0.797092;, + 0.469397; 0.768135;, + 0.498355; 0.768137;, + 0.469387; 0.883963;, + 0.440430; 0.883961;, + 0.440433; 0.855004;, + 0.469389; 0.855006;, + 0.469389; 0.855006;, + 0.440433; 0.855004;, + 0.440435; 0.826047;, + 0.469392; 0.826049;, + 0.440433; 0.855004;, + 0.411476; 0.855002;, + 0.411478; 0.826045;, + 0.440435; 0.826047;, + 0.469392; 0.826049;, + 0.440435; 0.826047;, + 0.440437; 0.797090;, + 0.469394; 0.797092;, + 0.469394; 0.797092;, + 0.440437; 0.797090;, + 0.440439; 0.768132;, + 0.469397; 0.768135;, + 0.440437; 0.797090;, + 0.411480; 0.797088;, + 0.411481; 0.768130;, + 0.440439; 0.768132;, + 0.343717; 0.797085;, + 0.314759; 0.797084;, + 0.314759; 0.768126;, + 0.343718; 0.768127;, + 0.498364; 0.681263;, + 0.469405; 0.681260;, + 0.469409; 0.652301;, + 0.498367; 0.652305;, + 0.498379; 0.565430;, + 0.469421; 0.565425;, + 0.469426; 0.536466;, + 0.498384; 0.536472;, + 0.469409; 0.652301;, + 0.440450; 0.652298;, + 0.440453; 0.623339;, + 0.469412; 0.623343;, + 0.469412; 0.623343;, + 0.440453; 0.623339;, + 0.440457; 0.594380;, + 0.469416; 0.594384;, + 0.440453; 0.623339;, + 0.411493; 0.623335;, + 0.411497; 0.594375;, + 0.440457; 0.594380;, + 0.469416; 0.594384;, + 0.440457; 0.594380;, + 0.440461; 0.565420;, + 0.469421; 0.565425;, + 0.469421; 0.565425;, + 0.440461; 0.565420;, + 0.440467; 0.536460;, + 0.469426; 0.536466;, + 0.440461; 0.565420;, + 0.411501; 0.565415;, + 0.411507; 0.536454;, + 0.440467; 0.536460;, + 0.343729; 0.565405;, + 0.314766; 0.565402;, + 0.314769; 0.536438;, + 0.343733; 0.536441;, + 0.314759; 0.768126;, + 0.285801; 0.768127;, + 0.285801; 0.739168;, + 0.314760; 0.739168;, + 0.314760; 0.739168;, + 0.285801; 0.739168;, + 0.285800; 0.710209;, + 0.314760; 0.710209;, + 0.285801; 0.739168;, + 0.256842; 0.739169;, + 0.256841; 0.710209;, + 0.285800; 0.710209;, + 0.314760; 0.710209;, + 0.285800; 0.710209;, + 0.285800; 0.681249;, + 0.314760; 0.681249;, + 0.314760; 0.681249;, + 0.285800; 0.681249;, + 0.285800; 0.652288;, + 0.314761; 0.652288;, + 0.285800; 0.681249;, + 0.256839; 0.681249;, + 0.256839; 0.652288;, + 0.285800; 0.652288;, + 0.189070; 0.681254;, + 0.160109; 0.681257;, + 0.160105; 0.652296;, + 0.189067; 0.652293;, + 0.314761; 0.652288;, + 0.285800; 0.652288;, + 0.285800; 0.623326;, + 0.314762; 0.623327;, + 0.314762; 0.623327;, + 0.285800; 0.623326;, + 0.285801; 0.594363;, + 0.314764; 0.594365;, + 0.285800; 0.623326;, + 0.256838; 0.623326;, + 0.256837; 0.594363;, + 0.285801; 0.594363;, + 0.314764; 0.594365;, + 0.285801; 0.594363;, + 0.285802; 0.565400;, + 0.314766; 0.565402;, + 0.314766; 0.565402;, + 0.285802; 0.565400;, + 0.285804; 0.536435;, + 0.314769; 0.536438;, + 0.285802; 0.565400;, + 0.256837; 0.565399;, + 0.256838; 0.536433;, + 0.285804; 0.536435;, + 0.189056; 0.565403;, + 0.160091; 0.565407;, + 0.160085; 0.536441;, + 0.189053; 0.536436;, + 0.160105; 0.652296;, + 0.131144; 0.652301;, + 0.131138; 0.623340;, + 0.160101; 0.623334;, + 0.160101; 0.623334;, + 0.131138; 0.623340;, + 0.131132; 0.594377;, + 0.160096; 0.594371;, + 0.131138; 0.623340;, + 0.102177; 0.623346;, + 0.102170; 0.594384;, + 0.131132; 0.594377;, + 0.160096; 0.594371;, + 0.131132; 0.594377;, + 0.131126; 0.565413;, + 0.160091; 0.565407;, + 0.160091; 0.565407;, + 0.131126; 0.565413;, + 0.131119; 0.536448;, + 0.160085; 0.536441;, + 0.131126; 0.565413;, + 0.102162; 0.565421;, + 0.102153; 0.536456;, + 0.131119; 0.536448;, + 0.376650; 0.450984;, + 0.405606; 0.450986;, + 0.405605; 0.479942;, + 0.376649; 0.479941;, + 0.260822; 0.450982;, + 0.289779; 0.450982;, + 0.289779; 0.479939;, + 0.260822; 0.479939;, + 0.318737; 0.393068;, + 0.347695; 0.393069;, + 0.347694; 0.422026;, + 0.318736; 0.422026;, + 0.260822; 0.393067;, + 0.289780; 0.393068;, + 0.289779; 0.422025;, + 0.260822; 0.422025;, + 0.260823; 0.280860;, + 0.289781; 0.280860;, + 0.289781; 0.309818;, + 0.260823; 0.309818;, + 0.144991; 0.450983;, + 0.173949; 0.450983;, + 0.173949; 0.479940;, + 0.144992; 0.479940;, + 0.029160; 0.450983;, + 0.058118; 0.450983;, + 0.058118; 0.479941;, + 0.029160; 0.479941;, + 0.087076; 0.393067;, + 0.116033; 0.393067;, + 0.116033; 0.422025;, + 0.087076; 0.422025;, + 0.029160; 0.393067;, + 0.058118; 0.393067;, + 0.058118; 0.422025;, + 0.029160; 0.422025;, + 0.029162; 0.280861;, + 0.058119; 0.280861;, + 0.058119; 0.309818;, + 0.029162; 0.309818;, + 0.202906; 0.222944;, + 0.231864; 0.222943;, + 0.231864; 0.251902;, + 0.202906; 0.251902;, + 0.144990; 0.222946;, + 0.173948; 0.222945;, + 0.173948; 0.251903;, + 0.144991; 0.251903;, + 0.144984; 0.110741;, + 0.173942; 0.110738;, + 0.173944; 0.139696;, + 0.144987; 0.139698;, + 0.087076; 0.222947;, + 0.116033; 0.222947;, + 0.116033; 0.251904;, + 0.087076; 0.251904;, + 0.029163; 0.222948;, + 0.058119; 0.222948;, + 0.058119; 0.251904;, + 0.029163; 0.251904;, + 0.029159; 0.110749;, + 0.058115; 0.110747;, + 0.058116; 0.139703;, + 0.029161; 0.139705;, + 0.087066; 0.052833;, + 0.116022; 0.052830;, + 0.116025; 0.081786;, + 0.087069; 0.081789;, + 0.029155; 0.052838;, + 0.058110; 0.052835;, + 0.058113; 0.081791;, + 0.029157; 0.081794;, + 0.405617; 0.280863;, + 0.434576; 0.280865;, + 0.434574; 0.309824;, + 0.405615; 0.309822;, + 0.173949; 0.280860;, + 0.202907; 0.280860;, + 0.202907; 0.309818;, + 0.173949; 0.309818;, + 0.405619; 0.110723;, + 0.434581; 0.110722;, + 0.434582; 0.139684;, + 0.405620; 0.139684;, + 0.289777; 0.110729;, + 0.318737; 0.110727;, + 0.318738; 0.139687;, + 0.289778; 0.139689;, + 0.405606; 0.450986;, + 0.434563; 0.450987;, + 0.434561; 0.479944;, + 0.405605; 0.479942;, + 0.289779; 0.450982;, + 0.318736; 0.450983;, + 0.318735; 0.479940;, + 0.289779; 0.479939;, + 0.289781; 0.280860;, + 0.318740; 0.280860;, + 0.318739; 0.309818;, + 0.289781; 0.309818;, + 0.173949; 0.450983;, + 0.202907; 0.450982;, + 0.202907; 0.479940;, + 0.173949; 0.479940;, + 0.058118; 0.450983;, + 0.087076; 0.450983;, + 0.087076; 0.479941;, + 0.058118; 0.479941;, + 0.058119; 0.280861;, + 0.087076; 0.280861;, + 0.087076; 0.309818;, + 0.058119; 0.309818;, + 0.173942; 0.110738;, + 0.202900; 0.110736;, + 0.202902; 0.139694;, + 0.173944; 0.139696;, + 0.058115; 0.110747;, + 0.087071; 0.110745;, + 0.087073; 0.139701;, + 0.058116; 0.139703;, + 0.434580; 0.081759;, + 0.463543; 0.081758;, + 0.463544; 0.110721;, + 0.434581; 0.110722;, + 0.405618; 0.081761;, + 0.434580; 0.081759;, + 0.434581; 0.110722;, + 0.405619; 0.110723;, + 0.405616; 0.052799;, + 0.434578; 0.052797;, + 0.434580; 0.081759;, + 0.405618; 0.081761;, + 0.376656; 0.081763;, + 0.405618; 0.081761;, + 0.405619; 0.110723;, + 0.376658; 0.110724;, + 0.347695; 0.081765;, + 0.376656; 0.081763;, + 0.376658; 0.110724;, + 0.347697; 0.110726;, + 0.347693; 0.052804;, + 0.376654; 0.052801;, + 0.376656; 0.081763;, + 0.347695; 0.081765;, + 0.434565; 0.422031;, + 0.463521; 0.422033;, + 0.463519; 0.450989;, + 0.434563; 0.450987;, + 0.405608; 0.422029;, + 0.434565; 0.422031;, + 0.434563; 0.450987;, + 0.405606; 0.450986;, + 0.405609; 0.393072;, + 0.434567; 0.393073;, + 0.434565; 0.422031;, + 0.405608; 0.422029;, + 0.376651; 0.422027;, + 0.405608; 0.422029;, + 0.405606; 0.450986;, + 0.376650; 0.450984;, + 0.347694; 0.422026;, + 0.376651; 0.422027;, + 0.376650; 0.450984;, + 0.347693; 0.450983;, + 0.347695; 0.393069;, + 0.376652; 0.393070;, + 0.376651; 0.422027;, + 0.347694; 0.422026;, + 0.347698; 0.280860;, + 0.376657; 0.280861;, + 0.376656; 0.309820;, + 0.347698; 0.309819;, + 0.202907; 0.422025;, + 0.231864; 0.422025;, + 0.231864; 0.450982;, + 0.202907; 0.450982;, + 0.173949; 0.422025;, + 0.202907; 0.422025;, + 0.202907; 0.450982;, + 0.173949; 0.450983;, + 0.173949; 0.393067;, + 0.202907; 0.393067;, + 0.202907; 0.422025;, + 0.173949; 0.422025;, + 0.144991; 0.422025;, + 0.173949; 0.422025;, + 0.173949; 0.450983;, + 0.144991; 0.450983;, + 0.116033; 0.422025;, + 0.144991; 0.422025;, + 0.144991; 0.450983;, + 0.116034; 0.450983;, + 0.116033; 0.393067;, + 0.144991; 0.393067;, + 0.144991; 0.422025;, + 0.116033; 0.422025;, + 0.116034; 0.280861;, + 0.144991; 0.280861;, + 0.144991; 0.309818;, + 0.116034; 0.309818;, + 0.202897; 0.081778;, + 0.231856; 0.081775;, + 0.231858; 0.110734;, + 0.202900; 0.110736;, + 0.173939; 0.081781;, + 0.202897; 0.081778;, + 0.202900; 0.110736;, + 0.173942; 0.110738;, + 0.173936; 0.052823;, + 0.202894; 0.052820;, + 0.202897; 0.081778;, + 0.173939; 0.081781;, + 0.144982; 0.081784;, + 0.173939; 0.081781;, + 0.173942; 0.110738;, + 0.144984; 0.110741;, + 0.116025; 0.081786;, + 0.144982; 0.081784;, + 0.144984; 0.110741;, + 0.116028; 0.110743;, + 0.116022; 0.052830;, + 0.144979; 0.052827;, + 0.144982; 0.081784;, + 0.116025; 0.081786;, + 0.434578; 0.251905;, + 0.463539; 0.251907;, + 0.463536; 0.280867;, + 0.434576; 0.280865;, + 0.405618; 0.251903;, + 0.434578; 0.251905;, + 0.434576; 0.280865;, + 0.405617; 0.280863;, + 0.405620; 0.222943;, + 0.434580; 0.222944;, + 0.434578; 0.251905;, + 0.405618; 0.251903;, + 0.376659; 0.251902;, + 0.405618; 0.251903;, + 0.405617; 0.280863;, + 0.376657; 0.280861;, + 0.347699; 0.251901;, + 0.376659; 0.251902;, + 0.376657; 0.280861;, + 0.347698; 0.280860;, + 0.347700; 0.222942;, + 0.376659; 0.222942;, + 0.376659; 0.251902;, + 0.347699; 0.251901;, + 0.347697; 0.110726;, + 0.376658; 0.110724;, + 0.376659; 0.139685;, + 0.347698; 0.139686;, + 0.318740; 0.251901;, + 0.347699; 0.251901;, + 0.347698; 0.280860;, + 0.318740; 0.280860;, + 0.289781; 0.251901;, + 0.318740; 0.251901;, + 0.318740; 0.280860;, + 0.289781; 0.280860;, + 0.289781; 0.222942;, + 0.318740; 0.222942;, + 0.318740; 0.251901;, + 0.289781; 0.251901;, + 0.260823; 0.251901;, + 0.289781; 0.251901;, + 0.289781; 0.280860;, + 0.260823; 0.280860;, + 0.231864; 0.251902;, + 0.260823; 0.251901;, + 0.260823; 0.280860;, + 0.231865; 0.280860;, + 0.231864; 0.222943;, + 0.260822; 0.222943;, + 0.260823; 0.251901;, + 0.231864; 0.251902;, + 0.231858; 0.110734;, + 0.260817; 0.110731;, + 0.260819; 0.139691;, + 0.231860; 0.139692;, + 0.318734; 0.081767;, + 0.347695; 0.081765;, + 0.347697; 0.110726;, + 0.318737; 0.110727;, + 0.289774; 0.081770;, + 0.318734; 0.081767;, + 0.318737; 0.110727;, + 0.289777; 0.110729;, + 0.289772; 0.052810;, + 0.318732; 0.052806;, + 0.318734; 0.081767;, + 0.289774; 0.081770;, + 0.260815; 0.081772;, + 0.289774; 0.081770;, + 0.289777; 0.110729;, + 0.260817; 0.110731;, + 0.231856; 0.081775;, + 0.260815; 0.081772;, + 0.260817; 0.110731;, + 0.231858; 0.110734;, + 0.231853; 0.052816;, + 0.260812; 0.052813;, + 0.260815; 0.081772;, + 0.231856; 0.081775;, + 0.347693; 0.450983;, + 0.376650; 0.450984;, + 0.376649; 0.479941;, + 0.347692; 0.479940;, + 0.231864; 0.450982;, + 0.260822; 0.450982;, + 0.260822; 0.479939;, + 0.231864; 0.479940;, + 0.318736; 0.422026;, + 0.347694; 0.422026;, + 0.347693; 0.450983;, + 0.318736; 0.450983;, + 0.289779; 0.422025;, + 0.318736; 0.422026;, + 0.318736; 0.450983;, + 0.289779; 0.450982;, + 0.289780; 0.393068;, + 0.318737; 0.393068;, + 0.318736; 0.422026;, + 0.289779; 0.422025;, + 0.260822; 0.422025;, + 0.289779; 0.422025;, + 0.289779; 0.450982;, + 0.260822; 0.450982;, + 0.231864; 0.422025;, + 0.260822; 0.422025;, + 0.260822; 0.450982;, + 0.231864; 0.450982;, + 0.231864; 0.393067;, + 0.260822; 0.393067;, + 0.260822; 0.422025;, + 0.231864; 0.422025;, + 0.231865; 0.280860;, + 0.260823; 0.280860;, + 0.260823; 0.309818;, + 0.231865; 0.309818;, + 0.116034; 0.450983;, + 0.144991; 0.450983;, + 0.144992; 0.479940;, + 0.116034; 0.479941;, + 0.000202; 0.450983;, + 0.029160; 0.450983;, + 0.029160; 0.479941;, + 0.000202; 0.479941;, + 0.087076; 0.422025;, + 0.116033; 0.422025;, + 0.116034; 0.450983;, + 0.087076; 0.450983;, + 0.058118; 0.422025;, + 0.087076; 0.422025;, + 0.087076; 0.450983;, + 0.058118; 0.450983;, + 0.058118; 0.393067;, + 0.087076; 0.393067;, + 0.087076; 0.422025;, + 0.058118; 0.422025;, + 0.029160; 0.422025;, + 0.058118; 0.422025;, + 0.058118; 0.450983;, + 0.029160; 0.450983;, + 0.000202; 0.422025;, + 0.029160; 0.422025;, + 0.029160; 0.450983;, + 0.000202; 0.450983;, + 0.000202; 0.393067;, + 0.029160; 0.393067;, + 0.029160; 0.422025;, + 0.000202; 0.422025;, + 0.000206; 0.280860;, + 0.029162; 0.280861;, + 0.029162; 0.309818;, + 0.000205; 0.309817;, + 0.202906; 0.251902;, + 0.231864; 0.251902;, + 0.231865; 0.280860;, + 0.202907; 0.280860;, + 0.173948; 0.251903;, + 0.202906; 0.251902;, + 0.202907; 0.280860;, + 0.173949; 0.280860;, + 0.173948; 0.222945;, + 0.202906; 0.222944;, + 0.202906; 0.251902;, + 0.173948; 0.251903;, + 0.144991; 0.251903;, + 0.173948; 0.251903;, + 0.173949; 0.280860;, + 0.144991; 0.280861;, + 0.116033; 0.251904;, + 0.144991; 0.251903;, + 0.144991; 0.280861;, + 0.116034; 0.280861;, + 0.116033; 0.222947;, + 0.144990; 0.222946;, + 0.144991; 0.251903;, + 0.116033; 0.251904;, + 0.116028; 0.110743;, + 0.144984; 0.110741;, + 0.144987; 0.139698;, + 0.116029; 0.139700;, + 0.087076; 0.251904;, + 0.116033; 0.251904;, + 0.116034; 0.280861;, + 0.087076; 0.280861;, + 0.058119; 0.251904;, + 0.087076; 0.251904;, + 0.087076; 0.280861;, + 0.058119; 0.280861;, + 0.058119; 0.222948;, + 0.087076; 0.222947;, + 0.087076; 0.251904;, + 0.058119; 0.251904;, + 0.029163; 0.251904;, + 0.058119; 0.251904;, + 0.058119; 0.280861;, + 0.029162; 0.280861;, + 0.000207; 0.251904;, + 0.029163; 0.251904;, + 0.029162; 0.280861;, + 0.000206; 0.280860;, + 0.000207; 0.222948;, + 0.029163; 0.222948;, + 0.029163; 0.251904;, + 0.000207; 0.251904;, + 0.000204; 0.110751;, + 0.029159; 0.110749;, + 0.029161; 0.139705;, + 0.000205; 0.139706;, + 0.087069; 0.081789;, + 0.116025; 0.081786;, + 0.116028; 0.110743;, + 0.087071; 0.110745;, + 0.058113; 0.081791;, + 0.087069; 0.081789;, + 0.087071; 0.110745;, + 0.058115; 0.110747;, + 0.058110; 0.052835;, + 0.087066; 0.052833;, + 0.087069; 0.081789;, + 0.058113; 0.081791;, + 0.029157; 0.081794;, + 0.058113; 0.081791;, + 0.058115; 0.110747;, + 0.029159; 0.110749;, + 0.000202; 0.081796;, + 0.029157; 0.081794;, + 0.029159; 0.110749;, + 0.000204; 0.110751;, + 0.000199; 0.052841;, + 0.029155; 0.052838;, + 0.029157; 0.081794;, + 0.000202; 0.081796;, + 0.057305; 0.565436;, + 0.057314; 0.594397;, + 0.000217; 0.594416;, + 0.000206; 0.565457;, + 0.057383; 0.941887;, + 0.057387; 0.970842;, + 0.000299; 0.970851;, + 0.000294; 0.941895;, + 0.057361; 0.797107;, + 0.057365; 0.826064;, + 0.000276; 0.826074;, + 0.000270; 0.797118;, + 0.057331; 0.652317;, + 0.057338; 0.681276;, + 0.000244; 0.681291;, + 0.000235; 0.652333;, + 0.057323; 0.623357;, + 0.057331; 0.652317;, + 0.000235; 0.652333;, + 0.000226; 0.623375;, + 0.057370; 0.855020;, + 0.057374; 0.883976;, + 0.000285; 0.883985;, + 0.000281; 0.855029;, + 0.057338; 0.681276;, + 0.057344; 0.710235;, + 0.000251; 0.710248;, + 0.000244; 0.681291;, + 0.057314; 0.594397;, + 0.057323; 0.623357;, + 0.000226; 0.623375;, + 0.000217; 0.594416;, + 0.057365; 0.826064;, + 0.057370; 0.855020;, + 0.000281; 0.855029;, + 0.000276; 0.826074;, + 0.057374; 0.883976;, + 0.057379; 0.912931;, + 0.000290; 0.912940;, + 0.000285; 0.883985;, + 0.057350; 0.739193;, + 0.057355; 0.768150;, + 0.000264; 0.768162;, + 0.000258; 0.739205;, + 0.057379; 0.912931;, + 0.057383; 0.941887;, + 0.000294; 0.941895;, + 0.000290; 0.912940;, + 0.057344; 0.710235;, + 0.057350; 0.739193;, + 0.000258; 0.739205;, + 0.000251; 0.710248;, + 0.057294; 0.536474;, + 0.057305; 0.565436;, + 0.000206; 0.565457;, + 0.000194; 0.536497;, + 0.057387; 0.970842;, + 0.057391; 0.999797;, + 0.000303; 0.999806;, + 0.000299; 0.970851;, + 0.057355; 0.768150;, + 0.057361; 0.797107;, + 0.000270; 0.797118;, + 0.000264; 0.768162;, + 0.977169; 0.923310;, + 0.977169; 0.980403;, + 0.951722; 0.980403;, + 0.951722; 0.923309;, + 0.057344; 0.710235;, + 0.057338; 0.681276;, + 0.082785; 0.681271;, + 0.082791; 0.710230;, + 0.376649; 0.000201;, + 0.405612; 0.000199;, + 0.405614; 0.025649;, + 0.376652; 0.025652;, + 0.057323; 0.623357;, + 0.057314; 0.594397;, + 0.082764; 0.594389;, + 0.082772; 0.623351;, + 0.173929; 0.000232;, + 0.202887; 0.000227;, + 0.202891; 0.025674;, + 0.173933; 0.025678;, + 0.231845; 0.000222;, + 0.260805; 0.000217;, + 0.260808; 0.025666;, + 0.231849; 0.025670;, + 0.057379; 0.912931;, + 0.057374; 0.883976;, + 0.082819; 0.883972;, + 0.082823; 0.912928;, + 0.057370; 0.855020;, + 0.057365; 0.826064;, + 0.082811; 0.826060;, + 0.082815; 0.855016;, + 0.836877; 0.451803;, + 0.836877; 0.508898;, + 0.811430; 0.508898;, + 0.811429; 0.451803;, + 0.116016; 0.000240;, + 0.144972; 0.000236;, + 0.144976; 0.025682;, + 0.116019; 0.025685;, + 0.057355; 0.768150;, + 0.057350; 0.739193;, + 0.082797; 0.739188;, + 0.082802; 0.768146;, + 0.057383; 0.941887;, + 0.057379; 0.912931;, + 0.082823; 0.912928;, + 0.082827; 0.941883;, + 0.347687; 0.000205;, + 0.376649; 0.000201;, + 0.376652; 0.025652;, + 0.347690; 0.025655;, + 0.029149; 0.000250;, + 0.058105; 0.000247;, + 0.058107; 0.025692;, + 0.029152; 0.025694;, + 0.260805; 0.000217;, + 0.289765; 0.000213;, + 0.289768; 0.025662;, + 0.260808; 0.025666;, + 0.087060; 0.000244;, + 0.116016; 0.000240;, + 0.116019; 0.025685;, + 0.087063; 0.025689;, + 0.057350; 0.739193;, + 0.057344; 0.710235;, + 0.082791; 0.710230;, + 0.082797; 0.739188;, + 0.405612; 0.000199;, + 0.434575; 0.000196;, + 0.434577; 0.025647;, + 0.405614; 0.025649;, + 0.713049; 0.193461;, + 0.713050; 0.174059;, + 0.744379; 0.174059;, + 0.744378; 0.193462;, + 0.637681; 0.441873;, + 0.666640; 0.441875;, + 0.666636; 0.508897;, + 0.637678; 0.508895;, + 0.744378; 0.193462;, + 0.744379; 0.174059;, + 0.779683; 0.174059;, + 0.779683; 0.193462;, + 0.538219; 0.174056;, + 0.538218; 0.193459;, + 0.502914; 0.193458;, + 0.502915; 0.174056;, + 0.639530; 0.866817;, + 0.639530; 0.895775;, + 0.604225; 0.895775;, + 0.604225; 0.866817;, + 0.538218; 0.193459;, + 0.538218; 0.250552;, + 0.502913; 0.250552;, + 0.502914; 0.193458;, + 0.680897; 0.536435;, + 0.680897; 0.565393;, + 0.661495; 0.565393;, + 0.661494; 0.536436;, + 0.626819; 0.193460;, + 0.626818; 0.250554;, + 0.569547; 0.250553;, + 0.569547; 0.193459;, + 0.713050; 0.130054;, + 0.744378; 0.130054;, + 0.744379; 0.174059;, + 0.713050; 0.174059;, + 0.569547; 0.174056;, + 0.569547; 0.193459;, + 0.538218; 0.193459;, + 0.538219; 0.174056;, + 0.569547; 0.193459;, + 0.569547; 0.250553;, + 0.538218; 0.250552;, + 0.538218; 0.193459;, + 0.713048; 0.250555;, + 0.713049; 0.193461;, + 0.744378; 0.193462;, + 0.744377; 0.250556;, + 0.538218; 0.105181;, + 0.569546; 0.105181;, + 0.569546; 0.130052;, + 0.538218; 0.130053;, + 0.683535; 0.866817;, + 0.683535; 0.895775;, + 0.639530; 0.895775;, + 0.639530; 0.866817;, + 0.724902; 0.536434;, + 0.724902; 0.565392;, + 0.680897; 0.565393;, + 0.680897; 0.536435;, + 0.538218; 0.130053;, + 0.569546; 0.130052;, + 0.569547; 0.174056;, + 0.538219; 0.174056;, + 0.749775; 0.565392;, + 0.749774; 0.536433;, + 0.781104; 0.536433;, + 0.781104; 0.565392;, + 0.818664; 0.105182;, + 0.818664; 0.130054;, + 0.744378; 0.130054;, + 0.744378; 0.105182;, + 0.749774; 0.536433;, + 0.749775; 0.565392;, + 0.724902; 0.565392;, + 0.724902; 0.536434;, + 0.713050; 0.105182;, + 0.744378; 0.105182;, + 0.744378; 0.130054;, + 0.713050; 0.130054;, + 0.637683; 0.406569;, + 0.666641; 0.406570;, + 0.666640; 0.441875;, + 0.637681; 0.441873;, + 0.637685; 0.375240;, + 0.666643; 0.375241;, + 0.666641; 0.406570;, + 0.637683; 0.406569;, + 0.779681; 0.317579;, + 0.744376; 0.317578;, + 0.744377; 0.250556;, + 0.779682; 0.250557;, + 0.655775; 0.317576;, + 0.655777; 0.250554;, + 0.713048; 0.250555;, + 0.713047; 0.317577;, + 0.744376; 0.317578;, + 0.713047; 0.317577;, + 0.713048; 0.250555;, + 0.744377; 0.250556;, + 0.538217; 0.317574;, + 0.502912; 0.317573;, + 0.502913; 0.250552;, + 0.538218; 0.250552;, + 0.626819; 0.193460;, + 0.655778; 0.193460;, + 0.655777; 0.250554;, + 0.626818; 0.250554;, + 0.655775; 0.317576;, + 0.626817; 0.317575;, + 0.626818; 0.250554;, + 0.655777; 0.250554;, + 0.604227; 0.565396;, + 0.604225; 0.536439;, + 0.661494; 0.536436;, + 0.661495; 0.565393;, + 0.655777; 0.250554;, + 0.655778; 0.193460;, + 0.713049; 0.193461;, + 0.713048; 0.250555;, + 0.626818; 0.250554;, + 0.626817; 0.317575;, + 0.569546; 0.317575;, + 0.569547; 0.250553;, + 0.637688; 0.317967;, + 0.666646; 0.317969;, + 0.666643; 0.375241;, + 0.637685; 0.375240;, + 0.782694; 0.866817;, + 0.782694; 0.895775;, + 0.757821; 0.895775;, + 0.757821; 0.866817;, + 0.757821; 0.866817;, + 0.757821; 0.895775;, + 0.683535; 0.895775;, + 0.683535; 0.866817;, + 0.855393; 0.536433;, + 0.855393; 0.565392;, + 0.781104; 0.565392;, + 0.781104; 0.536433;, + 0.463933; 0.130054;, + 0.463933; 0.105182;, + 0.538218; 0.105181;, + 0.538218; 0.130053;; + } //End of Plane_000 UV Coordinates + } //End of Plane_000 Mesh + } //End of Plane +} //End of Root Frame diff --git a/games/minetime_game/mods/boats/textures/boat_inventory.png b/games/minetime_game/mods/boats/textures/boat_inventory.png new file mode 100644 index 0000000..e075663 Binary files /dev/null and b/games/minetime_game/mods/boats/textures/boat_inventory.png differ diff --git a/games/minetime_game/mods/boats/textures/boat_wield.png b/games/minetime_game/mods/boats/textures/boat_wield.png new file mode 100644 index 0000000..ca62b14 Binary files /dev/null and b/games/minetime_game/mods/boats/textures/boat_wield.png differ diff --git a/games/minetime_game/mods/bucket/README.txt b/games/minetime_game/mods/bucket/README.txt new file mode 100644 index 0000000..7dad641 --- /dev/null +++ b/games/minetime_game/mods/bucket/README.txt @@ -0,0 +1,26 @@ +Minetest 0.4 mod: bucket +========================= + +License of source code: +----------------------- +Copyright (C) 2011-2012 Kahrl +Copyright (C) 2011-2012 celeron55, Perttu Ahola + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +http://www.gnu.org/licenses/lgpl-2.1.html + +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) 2010-2012 celeron55, Perttu Ahola + + diff --git a/games/minimal/mods/bucket/depends.txt b/games/minetime_game/mods/bucket/depends.txt similarity index 100% rename from games/minimal/mods/bucket/depends.txt rename to games/minetime_game/mods/bucket/depends.txt diff --git a/games/minetime_game/mods/bucket/init.lua b/games/minetime_game/mods/bucket/init.lua new file mode 100644 index 0000000..999b344 --- /dev/null +++ b/games/minetime_game/mods/bucket/init.lua @@ -0,0 +1,182 @@ +-- Minetest 0.4 mod: bucket +-- See README.txt for licensing and other information. + +local LIQUID_MAX = 8 --The number of water levels when liquid_finite is enabled + +minetest.register_alias("bucket", "bucket:bucket_empty") +minetest.register_alias("bucket_water", "bucket:bucket_water") +minetest.register_alias("bucket_lava", "bucket:bucket_lava") + +minetest.register_craft({ + output = 'bucket:bucket_empty 1', + recipe = { + {'default:steel_ingot', '', 'default:steel_ingot'}, + {'', 'default:steel_ingot', ''}, + } +}) + +bucket = {} +bucket.liquids = {} + +local function check_protection(pos, name, text) + if minetest.is_protected(pos, name) then + minetest.log("action", (name ~= "" and name or "A mod") + .. " tried to " .. text + .. " at protected position " + .. minetest.pos_to_string(pos) + .. " with a bucket") + minetest.record_protection_violation(pos, name) + return true + end + return false +end + +-- Register a new liquid +-- source = name of the source node +-- flowing = name of the flowing node +-- itemname = name of the new bucket item (or nil if liquid is not takeable) +-- inventory_image = texture of the new bucket item (ignored if itemname == nil) +-- This function can be called from any mod (that depends on bucket). +function bucket.register_liquid(source, flowing, itemname, inventory_image, name) + bucket.liquids[source] = { + source = source, + flowing = flowing, + itemname = itemname, + } + bucket.liquids[flowing] = bucket.liquids[source] + + if itemname ~= nil then + minetest.register_craftitem(itemname, { + description = name, + inventory_image = inventory_image, + stack_max = 1, + liquids_pointable = true, + on_place = function(itemstack, user, pointed_thing) + -- Must be pointing to node + if pointed_thing.type ~= "node" then + return + end + + local node = minetest.get_node_or_nil(pointed_thing.under) + local ndef + if node then + ndef = minetest.registered_nodes[node.name] + end + -- Call on_rightclick if the pointed node defines it + if ndef and ndef.on_rightclick and + user and not user:get_player_control().sneak then + return ndef.on_rightclick( + pointed_thing.under, + node, user, + itemstack) or itemstack + end + + local place_liquid = function(pos, node, source, flowing, fullness) + if check_protection(pos, + user and user:get_player_name() or "", + "place "..source) then + return + end + if math.floor(fullness/128) == 1 or + not minetest.setting_getbool("liquid_finite") then + minetest.add_node(pos, {name=source, + param2=fullness}) + return + elseif node.name == flowing then + fullness = fullness + node.param2 + elseif node.name == source then + fullness = LIQUID_MAX + end + + if fullness >= LIQUID_MAX then + minetest.add_node(pos, {name=source, + param2=LIQUID_MAX}) + else + minetest.add_node(pos, {name=flowing, + param2=fullness}) + end + end + + -- Check if pointing to a buildable node + local fullness = tonumber(itemstack:get_metadata()) + if not fullness then fullness = LIQUID_MAX end + + if ndef and ndef.buildable_to then + -- buildable; replace the node + place_liquid(pointed_thing.under, node, + source, flowing, fullness) + else + -- not buildable to; place the liquid above + -- check if the node above can be replaced + local node = minetest.get_node_or_nil(pointed_thing.above) + if node and minetest.registered_nodes[node.name].buildable_to then + place_liquid(pointed_thing.above, + node, source, + flowing, fullness) + else + -- do not remove the bucket with the liquid + return + end + end + return {name="bucket:bucket_empty"} + end + }) + end +end + +minetest.register_craftitem("bucket:bucket_empty", { + description = "Empty Bucket", + inventory_image = "bucket.png", + stack_max = 1, + liquids_pointable = true, + on_use = function(itemstack, user, pointed_thing) + -- Must be pointing to node + if pointed_thing.type ~= "node" then + return + end + -- Check if pointing to a liquid source + node = minetest.get_node(pointed_thing.under) + liquiddef = bucket.liquids[node.name] + if liquiddef ~= nil and liquiddef.itemname ~= nil and + (node.name == liquiddef.source or + (node.name == liquiddef.flowing and + minetest.setting_getbool("liquid_finite"))) then + if check_protection(pointed_thing.under, + user:get_player_name(), + "take ".. node.name) then + return + end + + minetest.add_node(pointed_thing.under, {name="air"}) + + if node.name == liquiddef.source then + node.param2 = LIQUID_MAX + end + return ItemStack({name = liquiddef.itemname, + metadata = tostring(node.param2)}) + end + end, +}) + +bucket.register_liquid( + "default:water_source", + "default:water_flowing", + "bucket:bucket_water", + "bucket_water.png", + "Water Bucket" +) + +bucket.register_liquid( + "default:lava_source", + "default:lava_flowing", + "bucket:bucket_lava", + "bucket_lava.png", + "Lava Bucket" +) + +minetest.register_craft({ + type = "fuel", + recipe = "bucket:bucket_lava", + burntime = 60, + replacements = {{"bucket:bucket_lava", "bucket:bucket_empty"}}, +}) diff --git a/games/minetime_game/mods/bucket/textures/bucket.png b/games/minetime_game/mods/bucket/textures/bucket.png new file mode 100644 index 0000000..6779528 Binary files /dev/null and b/games/minetime_game/mods/bucket/textures/bucket.png differ diff --git a/games/minetime_game/mods/bucket/textures/bucket_lava.png b/games/minetime_game/mods/bucket/textures/bucket_lava.png new file mode 100644 index 0000000..d2baeb9 Binary files /dev/null and b/games/minetime_game/mods/bucket/textures/bucket_lava.png differ diff --git a/games/minetime_game/mods/bucket/textures/bucket_water.png b/games/minetime_game/mods/bucket/textures/bucket_water.png new file mode 100644 index 0000000..877692a Binary files /dev/null and b/games/minetime_game/mods/bucket/textures/bucket_water.png differ diff --git a/games/minetime_game/mods/creative/README.txt b/games/minetime_game/mods/creative/README.txt new file mode 100644 index 0000000..7d49b98 --- /dev/null +++ b/games/minetime_game/mods/creative/README.txt @@ -0,0 +1,22 @@ +Minetest 0.4 mod: creative +========================== + +Implements creative mode. + +Switch on by using the "creative_mode" setting. + +Registered items that +- have a description, and +- do not have the group not_in_creative_inventory +are added to the creative inventory. + +License of source code and media files: +--------------------------------------- +Copyright (C) 2012 Perttu Ahola (celeron55) + +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. + diff --git a/games/minimal/mods/give_initial_stuff/depends.txt b/games/minetime_game/mods/creative/depends.txt similarity index 88% rename from games/minimal/mods/give_initial_stuff/depends.txt rename to games/minetime_game/mods/creative/depends.txt index 3a7daa1..4ad96d5 100644 --- a/games/minimal/mods/give_initial_stuff/depends.txt +++ b/games/minetime_game/mods/creative/depends.txt @@ -1,2 +1 @@ default - diff --git a/games/minetime_game/mods/creative/init.lua b/games/minetime_game/mods/creative/init.lua new file mode 100644 index 0000000..41282b1 --- /dev/null +++ b/games/minetime_game/mods/creative/init.lua @@ -0,0 +1,172 @@ +-- minetest/creative/init.lua + +creative_inventory = {} +creative_inventory.creative_inventory_size = 0 + +-- Create detached creative inventory after loading all mods +minetest.after(0, function() + local inv = minetest.create_detached_inventory("creative", { + allow_move = function(inv, from_list, from_index, to_list, to_index, count, player) + if minetest.setting_getbool("creative_mode") then + return count + else + return 0 + end + end, + allow_put = function(inv, listname, index, stack, player) + return 0 + end, + allow_take = function(inv, listname, index, stack, player) + if minetest.setting_getbool("creative_mode") then + return -1 + else + return 0 + end + end, + on_move = function(inv, from_list, from_index, to_list, to_index, count, player) + end, + on_put = function(inv, listname, index, stack, player) + end, + on_take = function(inv, listname, index, stack, player) + --print(player:get_player_name().." takes item from creative inventory; listname="..dump(listname)..", index="..dump(index)..", stack="..dump(stack)) + if stack then + minetest.log("action", player:get_player_name().." takes "..dump(stack:get_name()).." from creative inventory") + --print("stack:get_name()="..dump(stack:get_name())..", stack:get_count()="..dump(stack:get_count())) + end + end, + }) + local creative_list = {} + for name,def in pairs(minetest.registered_items) do + if (not def.groups.not_in_creative_inventory or def.groups.not_in_creative_inventory == 0) + and def.description and def.description ~= "" then + table.insert(creative_list, name) + end + end + table.sort(creative_list) + inv:set_size("main", #creative_list) + for _,itemstring in ipairs(creative_list) do + inv:add_item("main", ItemStack(itemstring)) + end + creative_inventory.creative_inventory_size = #creative_list + --print("creative inventory size: "..dump(creative_inventory.creative_inventory_size)) +end) + +-- Create the trash field +local trash = minetest.create_detached_inventory("creative_trash", { + -- Allow the stack to be placed and remove it in on_put() + -- This allows the creative inventory to restore the stack + allow_put = function(inv, listname, index, stack, player) + if minetest.setting_getbool("creative_mode") then + return stack:get_count() + else + return 0 + end + end, + on_put = function(inv, listname, index, stack, player) + inv:set_stack(listname, index, "") + end, +}) +trash:set_size("main", 1) + + +creative_inventory.set_creative_formspec = function(player, start_i, pagenum) + pagenum = math.floor(pagenum) + local pagemax = math.floor((creative_inventory.creative_inventory_size-1) / (6*4) + 1) + player:set_inventory_formspec( + "size[13,7.5]".. + --"image[6,0.6;1,2;player.png]".. + default.gui_bg.. + default.gui_bg_img.. + default.gui_slots.. + "list[current_player;main;5,3.5;8,1;]".. + "list[current_player;main;5,4.75;8,3;8]".. + "list[current_player;craft;8,0;3,3;]".. + "list[current_player;craftpreview;12,1;1,1;]".. + "list[detached:creative;main;0.3,0.5;4,6;"..tostring(start_i).."]".. + "label[2.0,6.55;"..tostring(pagenum).."/"..tostring(pagemax).."]".. + "button[0.3,6.5;1.6,1;creative_prev;<<]".. + "button[2.7,6.5;1.6,1;creative_next;>>]".. + "label[5,1.5;Trash:]".. + "list[detached:creative_trash;main;5,2;1,1;]".. + default.get_hotbar_bg(5,3.5) + ) +end +minetest.register_on_joinplayer(function(player) + -- If in creative mode, modify player's inventory forms + if not minetest.setting_getbool("creative_mode") then + return + end + creative_inventory.set_creative_formspec(player, 0, 1) +end) +minetest.register_on_player_receive_fields(function(player, formname, fields) + if not minetest.setting_getbool("creative_mode") then + return + end + -- Figure out current page from formspec + local current_page = 0 + local formspec = player:get_inventory_formspec() + local start_i = string.match(formspec, "list%[detached:creative;main;[%d.]+,[%d.]+;[%d.]+,[%d.]+;(%d+)%]") + start_i = tonumber(start_i) or 0 + + if fields.creative_prev then + start_i = start_i - 4*6 + end + if fields.creative_next then + start_i = start_i + 4*6 + end + + if start_i < 0 then + start_i = start_i + 4*6 + end + if start_i >= creative_inventory.creative_inventory_size then + start_i = start_i - 4*6 + end + + if start_i < 0 or start_i >= creative_inventory.creative_inventory_size then + start_i = 0 + end + + creative_inventory.set_creative_formspec(player, start_i, start_i / (6*4) + 1) +end) + +if minetest.setting_getbool("creative_mode") then + local digtime = 0.5 + minetest.register_item(":", { + type = "none", + wield_image = "wieldhand.png", + wield_scale = {x=1,y=1,z=2.5}, + range = 10, + tool_capabilities = { + full_punch_interval = 0.5, + max_drop_level = 3, + groupcaps = { + crumbly = {times={[1]=digtime, [2]=digtime, [3]=digtime}, uses=0, maxlevel=3}, + cracky = {times={[1]=digtime, [2]=digtime, [3]=digtime}, uses=0, maxlevel=3}, + snappy = {times={[1]=digtime, [2]=digtime, [3]=digtime}, uses=0, maxlevel=3}, + choppy = {times={[1]=digtime, [2]=digtime, [3]=digtime}, uses=0, maxlevel=3}, + oddly_breakable_by_hand = {times={[1]=digtime, [2]=digtime, [3]=digtime}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy = 10}, + } + }) + + minetest.register_on_placenode(function(pos, newnode, placer, oldnode, itemstack) + return true + end) + + function minetest.handle_node_drops(pos, drops, digger) + if not digger or not digger:is_player() then + return + end + local inv = digger:get_inventory() + if inv then + for _,item in ipairs(drops) do + item = ItemStack(item):get_name() + if not inv:contains_item("main", item) then + inv:add_item("main", item) + end + end + end + end + +end diff --git a/games/minetime_game/mods/default/README.txt b/games/minetime_game/mods/default/README.txt new file mode 100644 index 0000000..703f3dc --- /dev/null +++ b/games/minetime_game/mods/default/README.txt @@ -0,0 +1,177 @@ +Minetest 0.4 mod: default +========================== + +License of source code: +----------------------- +Copyright (C) 2011-2012 celeron55, Perttu Ahola + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +http://www.gnu.org/licenses/lgpl-2.1.html + +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) 2010-2012 celeron55, Perttu Ahola + +Cisoun's WTFPL texture pack: + default_chest_front.png + default_chest_lock.png + default_chest_side.png + default_chest_top.png + default_dirt.png + default_grass.png + default_grass_side.png + default_jungletree.png + default_jungletree_top.png + default_lava.png + default_leaves.png + default_sapling.png + default_sign_wall.png + default_stone.png + default_tree.png + default_tree_top.png + default_water.png + +Originating from G4JC's Almost MC Texture Pack: + default_torch.png + default_torch_on_ceiling.png + default_torch_on_floor.png + +VanessaE's animated torches (WTFPL): + default_torch_animated.png + default_torch_on_ceiling_animated.png + default_torch_on_floor_animated.png + default_torch_on_floor.png + +RealBadAngel's animated water (WTFPL): + default_water_source_animated.png + default_water_flowing_animated.png + +VanessaE (WTFPL): + default_nc_back.png + default_nc_front.png + default_nc_rb.png + default_nc_side.png + default_grass_*.png + default_desert_sand.png + default_desert_stone.png + default_desert_stone_brick.png + default_sand.png + default_sandstone_brick.png + +Calinou (CC BY-SA): + default_brick.png + default_papyrus.png + default_copper_lump.png + default_mineral_copper.png + +MirceaKitsune (WTFPL): + character.x + +Jordach (CC BY-SA 3.0): + character.png + +PilzAdam (WTFPL): + default_jungleleaves.png + default_junglesapling.png + default_junglewood.png + default_obsidian_glass.png + default_obsidian_shard.png + default_mossycobble.png + default_gold_lump.png + default_mineral_gold.png + default_snowball.png + +jojoa1997 (WTFPL): + default_obsidian.png + +InfinityProject (WTFPL): + default_mineral_diamond.png + +Splizard (CC BY-SA 3.0): + default_snow.png + default_snow_side.png + default_ice.png + +Zeg9 (CC BY-SA 3.0): + default_coal_block.png + default_steel_block.png + default_copper_block.png + default_bronze_block.png + default_gold_block.png + +paramat (CC BY-SA 3.0): + wieldhand.png, based on character.png by Jordach (CC BY-SA 3.0) + +brunob.santos (CC BY-SA 4.0): + default_desert_cobble.png + +BlockMen (CC BY-SA 3.0): + default_stone_brick.png + default_wood.png + default_cobble.png + default_clay_brick.png + default_tool_steelsword.png + default_bronze_ingot.png + default_copper_ingot.png + default_gold_ingot.png + default_diamond.png + default_diamond_block.png + default_tool_*.png + default_lava_source_animated.png + default_lava_flowing_animated.png + default_book.png + default_paper.png + default_stick.png + bubble.png + heart.png + gui_*.png + +Glass breaking sounds (CC BY 3.0): + 1: http://www.freesound.org/people/cmusounddesign/sounds/71947/ + 2: http://www.freesound.org/people/Tomlija/sounds/97669/ + 3: http://www.freesound.org/people/lsprice/sounds/88808/ + +Mito551 (sounds) (CC BY-SA): + default_dig_choppy.ogg + default_dig_cracky.ogg + default_dig_crumbly.1.ogg + default_dig_crumbly.2.ogg + default_dig_dig_immediate.ogg + default_dig_oddly_breakable_by_hand.ogg + default_dug_node.1.ogg + default_dug_node.2.ogg + default_grass_footstep.1.ogg + default_grass_footstep.2.ogg + default_grass_footstep.3.ogg + default_gravel_footstep.1.ogg + default_gravel_footstep.2.ogg + default_gravel_footstep.3.ogg + default_gravel_footstep.4.ogg + default_grass_footstep.1.ogg + default_place_node.1.ogg + default_place_node.2.ogg + default_place_node.3.ogg + default_place_node_hard.1.ogg + default_place_node_hard.2.ogg + default_snow_footstep.1.ogg + default_snow_footstep.2.ogg + default_hard_footstep.1.ogg + default_hard_footstep.2.ogg + default_hard_footstep.3.ogg + default_sand_footstep.1.ogg + default_sand_footstep.2.ogg + default_wood_footstep.1.ogg + default_wood_footstep.2.ogg + default_dirt_footstep.1.ogg + default_dirt_footstep.2.ogg + default_glass_footstep.ogg diff --git a/games/minimal/mods/legacy/init.lua b/games/minetime_game/mods/default/aliases.lua similarity index 73% rename from games/minimal/mods/legacy/init.lua rename to games/minetime_game/mods/default/aliases.lua index 98ad69b..d80082e 100644 --- a/games/minimal/mods/legacy/init.lua +++ b/games/minetime_game/mods/default/aliases.lua @@ -1,9 +1,5 @@ --- legacy (Minetest 0.4 mod) --- Provides as much backwards-compatibility as feasible - --- --- Aliases to support loading 0.3 and old 0.4 worlds and inventories --- +-- aliases (Minetest 0.4 mod) +-- Provides alias for most default items minetest.register_alias("stone", "default:stone") minetest.register_alias("stone_with_coal", "default:stone_with_coal") @@ -69,60 +65,3 @@ minetest.register_alias("lump_of_iron", "default:iron_lump") minetest.register_alias("lump_of_clay", "default:clay_lump") minetest.register_alias("steel_ingot", "default:steel_ingot") minetest.register_alias("clay_brick", "default:clay_brick") -minetest.register_alias("scorched_stuff", "default:scorched_stuff") - --- --- Old items --- - -minetest.register_craftitem(":rat", { - description = "Rat", - inventory_image = "rat.png", - on_drop = function(item, dropper, pos) - item:take_item() - return item - end, - on_place = function(item, dropped, pointed) - pos = minetest.get_pointed_thing_position(pointed, true) - if pos ~= nil then - item:take_item() - return item - end - end -}) - -minetest.register_craftitem(":cooked_rat", { - description = "Cooked rat", - inventory_image = "cooked_rat.png", - on_use = minetest.item_eat(6), -}) - -minetest.register_craftitem(":firefly", { - description = "Firefly", - inventory_image = "firefly.png", - on_drop = function(item, dropper, pos) - item:take_item() - return item - end, - on_place = function(item, dropped, pointed) - pos = minetest.get_pointed_thing_position(pointed, true) - if pos ~= nil then - item:take_item() - return item - end - end -}) - -minetest.register_craft({ - type = "cooking", - output = "cooked_rat", - recipe = "rat", -}) - -minetest.register_craft({ - type = "cooking", - output = "scorched_stuff", - recipe = "cooked_rat", -}) - --- END diff --git a/games/minetime_game/mods/default/crafting.lua b/games/minetime_game/mods/default/crafting.lua new file mode 100644 index 0000000..00e212e --- /dev/null +++ b/games/minetime_game/mods/default/crafting.lua @@ -0,0 +1,808 @@ +-- mods/default/crafting.lua + +minetest.register_craft({ + output = 'default:wood 4', + recipe = { + {'default:tree'}, + } +}) + +minetest.register_craft({ + output = 'default:junglewood 4', + recipe = { + {'default:jungletree'}, + } +}) + +minetest.register_craft({ + output = 'default:stick 4', + recipe = { + {'group:wood'}, + } +}) + +minetest.register_craft({ + output = 'default:fence_wood 2', + recipe = { + {'group:stick', 'group:stick', 'group:stick'}, + {'group:stick', 'group:stick', 'group:stick'}, + } +}) + +minetest.register_craft({ + output = 'default:sign_wall', + recipe = { + {'group:wood', 'group:wood', 'group:wood'}, + {'group:wood', 'group:wood', 'group:wood'}, + {'', 'group:stick', ''}, + } +}) + +minetest.register_craft({ + output = 'default:torch 4', + recipe = { + {'default:coal_lump'}, + {'group:stick'}, + } +}) + +minetest.register_craft({ + output = 'default:pick_wood', + recipe = { + {'group:wood', 'group:wood', 'group:wood'}, + {'', 'group:stick', ''}, + {'', 'group:stick', ''}, + } +}) + +minetest.register_craft({ + output = 'default:pick_stone', + recipe = { + {'group:stone', 'group:stone', 'group:stone'}, + {'', 'group:stick', ''}, + {'', 'group:stick', ''}, + } +}) + +minetest.register_craft({ + output = 'default:pick_steel', + recipe = { + {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}, + {'', 'group:stick', ''}, + {'', 'group:stick', ''}, + } +}) + +minetest.register_craft({ + output = 'default:pick_bronze', + recipe = { + {'default:bronze_ingot', 'default:bronze_ingot', 'default:bronze_ingot'}, + {'', 'group:stick', ''}, + {'', 'group:stick', ''}, + } +}) + +minetest.register_craft({ + output = 'default:pick_mese', + recipe = { + {'default:mese_crystal', 'default:mese_crystal', 'default:mese_crystal'}, + {'', 'group:stick', ''}, + {'', 'group:stick', ''}, + } +}) + +minetest.register_craft({ + output = 'default:pick_diamond', + recipe = { + {'default:diamond', 'default:diamond', 'default:diamond'}, + {'', 'group:stick', ''}, + {'', 'group:stick', ''}, + } +}) + +minetest.register_craft({ + output = 'default:shovel_wood', + recipe = { + {'group:wood'}, + {'group:stick'}, + {'group:stick'}, + } +}) + +minetest.register_craft({ + output = 'default:shovel_stone', + recipe = { + {'group:stone'}, + {'group:stick'}, + {'group:stick'}, + } +}) + +minetest.register_craft({ + output = 'default:shovel_steel', + recipe = { + {'default:steel_ingot'}, + {'group:stick'}, + {'group:stick'}, + } +}) + +minetest.register_craft({ + output = 'default:shovel_bronze', + recipe = { + {'default:bronze_ingot'}, + {'group:stick'}, + {'group:stick'}, + } +}) + +minetest.register_craft({ + output = 'default:shovel_mese', + recipe = { + {'default:mese_crystal'}, + {'group:stick'}, + {'group:stick'}, + } +}) + +minetest.register_craft({ + output = 'default:shovel_diamond', + recipe = { + {'default:diamond'}, + {'group:stick'}, + {'group:stick'}, + } +}) + +minetest.register_craft({ + output = 'default:axe_wood', + recipe = { + {'group:wood', 'group:wood'}, + {'group:wood', 'group:stick'}, + {'', 'group:stick'}, + } +}) + +minetest.register_craft({ + output = 'default:axe_stone', + recipe = { + {'group:stone', 'group:stone'}, + {'group:stone', 'group:stick'}, + {'', 'group:stick'}, + } +}) + +minetest.register_craft({ + output = 'default:axe_steel', + recipe = { + {'default:steel_ingot', 'default:steel_ingot'}, + {'default:steel_ingot', 'group:stick'}, + {'', 'group:stick'}, + } +}) + +minetest.register_craft({ + output = 'default:axe_bronze', + recipe = { + {'default:bronze_ingot', 'default:bronze_ingot'}, + {'default:bronze_ingot', 'group:stick'}, + {'', 'group:stick'}, + } +}) + +minetest.register_craft({ + output = 'default:axe_mese', + recipe = { + {'default:mese_crystal', 'default:mese_crystal'}, + {'default:mese_crystal', 'group:stick'}, + {'', 'group:stick'}, + } +}) + +minetest.register_craft({ + output = 'default:axe_diamond', + recipe = { + {'default:diamond', 'default:diamond'}, + {'default:diamond', 'group:stick'}, + {'', 'group:stick'}, + } +}) + +minetest.register_craft({ + output = 'default:axe_wood', + recipe = { + {'group:wood', 'group:wood'}, + {'group:stick', 'group:wood'}, + {'group:stick',''}, + } +}) + +minetest.register_craft({ + output = 'default:axe_stone', + recipe = { + {'group:stone', 'group:stone'}, + {'group:stick', 'group:stone'}, + {'group:stick', ''}, + } +}) + +minetest.register_craft({ + output = 'default:axe_steel', + recipe = { + {'default:steel_ingot', 'default:steel_ingot'}, + {'group:stick', 'default:steel_ingot'}, + {'group:stick', ''}, + } +}) + +minetest.register_craft({ + output = 'default:axe_bronze', + recipe = { + {'default:bronze_ingot', 'default:bronze_ingot'}, + {'group:stick', 'default:bronze_ingot'}, + {'group:stick', ''}, + } +}) + +minetest.register_craft({ + output = 'default:axe_mese', + recipe = { + {'default:mese_crystal', 'default:mese_crystal'}, + {'group:stick', 'default:mese_crystal'}, + {'group:stick', ''}, + } +}) + +minetest.register_craft({ + output = 'default:axe_diamond', + recipe = { + {'default:diamond', 'default:diamond'}, + {'group:stick', 'default:diamond'}, + {'group:stick', ''}, + } +}) + +minetest.register_craft({ + output = 'default:sword_wood', + recipe = { + {'group:wood'}, + {'group:wood'}, + {'group:stick'}, + } +}) + +minetest.register_craft({ + output = 'default:sword_stone', + recipe = { + {'group:stone'}, + {'group:stone'}, + {'group:stick'}, + } +}) + +minetest.register_craft({ + output = 'default:sword_steel', + recipe = { + {'default:steel_ingot'}, + {'default:steel_ingot'}, + {'group:stick'}, + } +}) + +minetest.register_craft({ + output = 'default:sword_bronze', + recipe = { + {'default:bronze_ingot'}, + {'default:bronze_ingot'}, + {'group:stick'}, + } +}) + +minetest.register_craft({ + output = 'default:sword_mese', + recipe = { + {'default:mese_crystal'}, + {'default:mese_crystal'}, + {'group:stick'}, + } +}) + +minetest.register_craft({ + output = 'default:sword_diamond', + recipe = { + {'default:diamond'}, + {'default:diamond'}, + {'group:stick'}, + } +}) + +minetest.register_craft({ + output = 'default:rail 15', + recipe = { + {'default:steel_ingot', '', 'default:steel_ingot'}, + {'default:steel_ingot', 'group:stick', 'default:steel_ingot'}, + {'default:steel_ingot', '', 'default:steel_ingot'}, + } +}) + +minetest.register_craft({ + output = 'default:chest', + recipe = { + {'group:wood', 'group:wood', 'group:wood'}, + {'group:wood', '', 'group:wood'}, + {'group:wood', 'group:wood', 'group:wood'}, + } +}) + +minetest.register_craft({ + output = 'default:chest_locked', + recipe = { + {'group:wood', 'group:wood', 'group:wood'}, + {'group:wood', 'default:steel_ingot', 'group:wood'}, + {'group:wood', 'group:wood', 'group:wood'}, + } +}) + +minetest.register_craft({ + output = 'default:furnace', + recipe = { + {'group:stone', 'group:stone', 'group:stone'}, + {'group:stone', '', 'group:stone'}, + {'group:stone', 'group:stone', 'group:stone'}, + } +}) + +minetest.register_craft({ + type = "shapeless", + output = "default:bronze_ingot", + recipe = {"default:steel_ingot", "default:copper_ingot"}, +}) + +minetest.register_craft({ + output = 'default:coalblock', + recipe = { + {'default:coal_lump', 'default:coal_lump', 'default:coal_lump'}, + {'default:coal_lump', 'default:coal_lump', 'default:coal_lump'}, + {'default:coal_lump', 'default:coal_lump', 'default:coal_lump'}, + } +}) + +minetest.register_craft({ + output = 'default:coal_lump 9', + recipe = { + {'default:coalblock'}, + } +}) + +minetest.register_craft({ + output = 'default:steelblock', + recipe = { + {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}, + {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}, + {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}, + } +}) + +minetest.register_craft({ + output = 'default:steel_ingot 9', + recipe = { + {'default:steelblock'}, + } +}) + +minetest.register_craft({ + output = 'default:copperblock', + recipe = { + {'default:copper_ingot', 'default:copper_ingot', 'default:copper_ingot'}, + {'default:copper_ingot', 'default:copper_ingot', 'default:copper_ingot'}, + {'default:copper_ingot', 'default:copper_ingot', 'default:copper_ingot'}, + } +}) + +minetest.register_craft({ + output = 'default:copper_ingot 9', + recipe = { + {'default:copperblock'}, + } +}) + +minetest.register_craft({ + output = 'default:bronzeblock', + recipe = { + {'default:bronze_ingot', 'default:bronze_ingot', 'default:bronze_ingot'}, + {'default:bronze_ingot', 'default:bronze_ingot', 'default:bronze_ingot'}, + {'default:bronze_ingot', 'default:bronze_ingot', 'default:bronze_ingot'}, + } +}) + +minetest.register_craft({ + output = 'default:bronze_ingot 9', + recipe = { + {'default:bronzeblock'}, + } +}) + +minetest.register_craft({ + output = 'default:goldblock', + recipe = { + {'default:gold_ingot', 'default:gold_ingot', 'default:gold_ingot'}, + {'default:gold_ingot', 'default:gold_ingot', 'default:gold_ingot'}, + {'default:gold_ingot', 'default:gold_ingot', 'default:gold_ingot'}, + } +}) + +minetest.register_craft({ + output = 'default:gold_ingot 9', + recipe = { + {'default:goldblock'}, + } +}) + +minetest.register_craft({ + output = 'default:diamondblock', + recipe = { + {'default:diamond', 'default:diamond', 'default:diamond'}, + {'default:diamond', 'default:diamond', 'default:diamond'}, + {'default:diamond', 'default:diamond', 'default:diamond'}, + } +}) + +minetest.register_craft({ + output = 'default:diamond 9', + recipe = { + {'default:diamondblock'}, + } +}) + +minetest.register_craft({ + output = 'default:sandstone', + recipe = { + {'group:sand', 'group:sand'}, + {'group:sand', 'group:sand'}, + } +}) + +minetest.register_craft({ + output = 'default:sand 4', + recipe = { + {'default:sandstone'}, + } +}) + +minetest.register_craft({ + output = 'default:sandstonebrick 4', + recipe = { + {'default:sandstone', 'default:sandstone'}, + {'default:sandstone', 'default:sandstone'}, + } +}) + +minetest.register_craft({ + output = 'default:clay', + recipe = { + {'default:clay_lump', 'default:clay_lump'}, + {'default:clay_lump', 'default:clay_lump'}, + } +}) + +minetest.register_craft({ + output = 'default:brick', + recipe = { + {'default:clay_brick', 'default:clay_brick'}, + {'default:clay_brick', 'default:clay_brick'}, + } +}) + +minetest.register_craft({ + output = 'default:clay_brick 4', + recipe = { + {'default:brick'}, + } +}) + +minetest.register_craft({ + output = 'default:wet_paper', + recipe = { + {'default:papyrus', 'default:papyrus', 'default:papyrus'}, + } +}) + +minetest.register_craft({ + output = 'default:book', + recipe = { + {'default:paper'}, + {'default:paper'}, + {'default:paper'}, + } +}) + +minetest.register_craft({ + output = 'default:bookshelf', + recipe = { + {'group:wood', 'group:wood', 'group:wood'}, + {'default:book', 'default:book', 'default:book'}, + {'group:wood', 'group:wood', 'group:wood'}, + } +}) + +minetest.register_craft({ + output = 'default:ladder', + recipe = { + {'group:stick', '', 'group:stick'}, + {'group:stick', 'group:stick', 'group:stick'}, + {'group:stick', '', 'group:stick'}, + } +}) + +minetest.register_craft({ + output = 'default:mese', + recipe = { + {'default:mese_crystal', 'default:mese_crystal', 'default:mese_crystal'}, + {'default:mese_crystal', 'default:mese_crystal', 'default:mese_crystal'}, + {'default:mese_crystal', 'default:mese_crystal', 'default:mese_crystal'}, + } +}) + +minetest.register_craft({ + output = 'default:mese_crystal 9', + recipe = { + {'default:mese'}, + } +}) + +minetest.register_craft({ + output = 'default:mese_crystal_fragment 9', + recipe = { + {'default:mese_crystal'}, + } +}) + +minetest.register_craft({ + output = 'default:obsidian_shard 9', + recipe = { + {'default:obsidian'} + } +}) + +minetest.register_craft({ + output = 'default:obsidian', + recipe = { + {'default:obsidian_shard', 'default:obsidian_shard', 'default:obsidian_shard'}, + {'default:obsidian_shard', 'default:obsidian_shard', 'default:obsidian_shard'}, + {'default:obsidian_shard', 'default:obsidian_shard', 'default:obsidian_shard'}, + } +}) + +minetest.register_craft({ + output = 'default:stonebrick 4', + recipe = { + {'default:stone', 'default:stone'}, + {'default:stone', 'default:stone'}, + } +}) + +minetest.register_craft({ + output = 'default:desert_stonebrick 4', + recipe = { + {'default:desert_stone', 'default:desert_stone'}, + {'default:desert_stone', 'default:desert_stone'}, + } +}) + +minetest.register_craft({ + output = 'default:snowblock', + recipe = { + {'default:snow', 'default:snow', 'default:snow'}, + {'default:snow', 'default:snow', 'default:snow'}, + {'default:snow', 'default:snow', 'default:snow'}, + } +}) + +minetest.register_craft({ + output = 'default:snow 9', + recipe = { + {'default:snowblock'}, + } +}) + +-- +-- Crafting (tool repair) +-- +minetest.register_craft({ + type = "toolrepair", + additional_wear = -0.02, +}) + +-- +-- Cooking recipes +-- + +minetest.register_craft({ + type = "cooking", + output = "default:glass", + recipe = "group:sand", +}) + +minetest.register_craft({ + type = "cooking", + output = "default:paper", + recipe = "default:wet_paper", +}) + +minetest.register_craft({ + type = "cooking", + output = "default:obsidian_glass", + recipe = "default:obsidian_shard", +}) + +minetest.register_craft({ + type = "cooking", + output = "default:stone", + recipe = "default:cobble", +}) + +minetest.register_craft({ + type = "cooking", + output = "default:desert_stone", + recipe = "default:desert_cobble", +}) + +minetest.register_craft({ + type = "cooking", + output = "default:steel_ingot", + recipe = "default:iron_lump", +}) + +minetest.register_craft({ + type = "cooking", + output = "default:copper_ingot", + recipe = "default:copper_lump", +}) + +minetest.register_craft({ + type = "cooking", + output = "default:gold_ingot", + recipe = "default:gold_lump", +}) + +minetest.register_craft({ + type = "cooking", + output = "default:clay_brick", + recipe = "default:clay_lump", +}) + +-- +-- Fuels +-- + +minetest.register_craft({ + type = "fuel", + recipe = "group:tree", + burntime = 30, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:junglegrass", + burntime = 2, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "group:leaves", + burntime = 1, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:cactus", + burntime = 15, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:papyrus", + burntime = 1, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:bookshelf", + burntime = 30, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:fence_wood", + burntime = 15, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:ladder", + burntime = 5, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "group:wood", + burntime = 7, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:lava_source", + burntime = 60, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:torch", + burntime = 4, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:sign_wall", + burntime = 10, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:chest", + burntime = 30, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:chest_locked", + burntime = 30, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:nyancat", + burntime = 1, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:nyancat_rainbow", + burntime = 1, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:sapling", + burntime = 10, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:apple", + burntime = 3, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:coal_lump", + burntime = 40, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:coalblock", + burntime = 370, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:junglesapling", + burntime = 10, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:grass_1", + burntime = 2, +}) diff --git a/games/minetime_game/mods/default/craftitems.lua b/games/minetime_game/mods/default/craftitems.lua new file mode 100644 index 0000000..3afe780 --- /dev/null +++ b/games/minetime_game/mods/default/craftitems.lua @@ -0,0 +1,92 @@ +-- mods/default/craftitems.lua + +minetest.register_craftitem("default:stick", { + description = "Stick", + inventory_image = "default_stick.png", + groups = {stick=1}, +}) + +minetest.register_craftitem("default:wet_paper", { + description = "Wet Paper", + inventory_image = "default_wet_paper.png", +}) + +minetest.register_craftitem("default:paper", { + description = "Paper", + inventory_image = "default_paper.png", +}) + +minetest.register_craftitem("default:book", { + description = "Book", + inventory_image = "default_book.png", +}) + +minetest.register_craftitem("default:coal_lump", { + description = "Coal Lump", + inventory_image = "default_coal_lump.png", +}) + +minetest.register_craftitem("default:iron_lump", { + description = "Iron Lump", + inventory_image = "default_iron_lump.png", +}) + +minetest.register_craftitem("default:copper_lump", { + description = "Copper Lump", + inventory_image = "default_copper_lump.png", +}) + +minetest.register_craftitem("default:mese_crystal", { + description = "Mese Crystal", + inventory_image = "default_mese_crystal.png", +}) + +minetest.register_craftitem("default:gold_lump", { + description = "Gold Lump", + inventory_image = "default_gold_lump.png", +}) + +minetest.register_craftitem("default:diamond", { + description = "Diamond", + inventory_image = "default_diamond.png", +}) + +minetest.register_craftitem("default:clay_lump", { + description = "Clay Lump", + inventory_image = "default_clay_lump.png", +}) + +minetest.register_craftitem("default:steel_ingot", { + description = "Steel Ingot", + inventory_image = "default_steel_ingot.png", +}) + +minetest.register_craftitem("default:copper_ingot", { + description = "Copper Ingot", + inventory_image = "default_copper_ingot.png", +}) + +minetest.register_craftitem("default:bronze_ingot", { + description = "Bronze Ingot", + inventory_image = "default_bronze_ingot.png", +}) + +minetest.register_craftitem("default:gold_ingot", { + description = "Gold Ingot", + inventory_image = "default_gold_ingot.png" +}) + +minetest.register_craftitem("default:mese_crystal_fragment", { + description = "Mese Crystal Fragment", + inventory_image = "default_mese_crystal_fragment.png", +}) + +minetest.register_craftitem("default:clay_brick", { + description = "Clay Brick", + inventory_image = "default_clay_brick.png", +}) + +minetest.register_craftitem("default:obsidian_shard", { + description = "Obsidian Shard", + inventory_image = "default_obsidian_shard.png", +}) diff --git a/games/minetime_game/mods/default/death_msg.lua b/games/minetime_game/mods/default/death_msg.lua new file mode 100644 index 0000000..f3c39f4 --- /dev/null +++ b/games/minetime_game/mods/default/death_msg.lua @@ -0,0 +1,53 @@ +-- A table of quips for death messages + +local messages = {} + +-- Lava death messages +messages.lava = { + " melted into a ball of fire.", + " couldn't resist that warm glow of lava." +} + +-- Drowning death messages +messages.water = { + " ran out of air.", + " blew one too many bubbles." +} + +-- Burning death messages +messages.fire = { + " burned to a crisp.", + " just got roasted , hotdog style." +} + +-- Other death messages +messages.other = { + " did something fatal.", + " is somewhat dead now.", + " passed out, permanently.", +} + + +minetest.register_on_dieplayer(function(player) + local player_name = player:get_player_name() + if minetest.is_singleplayer() then + player_name = "You" + end + -- Death by lava + local nodename = minetest.get_node(player:getpos()).name + if nodename == "default:lava_source" or nodename == "default:lava_flowing" then + minetest.chat_send_all(player_name .. messages.lava[math.random(1,#messages.lava)] ) + -- Death by drowning + elseif nodename == "default:water_source" or nodename == "default:water_flowing" then + minetest.chat_send_all(player_name .. messages.water[math.random(1,#messages.water)] ) + -- Death by fire + elseif nodename == "fire:basic_flame" then + minetest.chat_send_all(player_name .. messages.fire[math.random(1,#messages.fire)] ) + -- Death by something else + else + minetest.chat_send_all(player_name .. messages.other[math.random(1,#messages.other)] ) + end + +end) + + diff --git a/games/minetime_game/mods/default/functions.lua b/games/minetime_game/mods/default/functions.lua new file mode 100644 index 0000000..fda517b --- /dev/null +++ b/games/minetime_game/mods/default/functions.lua @@ -0,0 +1,433 @@ +-- mods/default/functions.lua + +-- +-- Sounds +-- + +function default.node_sound_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name="", gain=1.0} + table.dug = table.dug or + {name="default_dug_node", gain=0.25} + table.place = table.place or + {name="default_place_node_hard", gain=1.0} + return table +end + +function default.node_sound_stone_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name="default_hard_footstep", gain=0.5} + table.dug = table.dug or + {name="default_hard_footstep", gain=1.0} + default.node_sound_defaults(table) + return table +end + +function default.node_sound_dirt_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name="default_dirt_footstep", gain=1.0} + table.dug = table.dug or + {name="default_dirt_footstep", gain=1.5} + table.place = table.place or + {name="default_place_node", gain=1.0} + default.node_sound_defaults(table) + return table +end + +function default.node_sound_sand_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name="default_sand_footstep", gain=0.5} + table.dug = table.dug or + {name="default_sand_footstep", gain=1.0} + table.place = table.place or + {name="default_place_node", gain=1.0} + default.node_sound_defaults(table) + return table +end + +function default.node_sound_wood_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name="default_wood_footstep", gain=0.5} + table.dug = table.dug or + {name="default_wood_footstep", gain=1.0} + default.node_sound_defaults(table) + return table +end + +function default.node_sound_leaves_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name="default_grass_footstep", gain=0.35} + table.dug = table.dug or + {name="default_grass_footstep", gain=0.85} + table.dig = table.dig or + {name="default_dig_crumbly", gain=0.4} + table.place = table.place or + {name="default_place_node", gain=1.0} + default.node_sound_defaults(table) + return table +end + +function default.node_sound_glass_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name="default_glass_footstep", gain=0.5} + table.dug = table.dug or + {name="default_break_glass", gain=1.0} + default.node_sound_defaults(table) + return table +end + +-- +-- Legacy +-- + +function default.spawn_falling_node(p, nodename) + spawn_falling_node(p, nodename) +end + +-- Horrible crap to support old code +-- Don't use this and never do what this does, it's completely wrong! +-- (More specifically, the client and the C++ code doesn't get the group) +function default.register_falling_node(nodename, texture) + minetest.log("error", debug.traceback()) + minetest.log('error', "WARNING: default.register_falling_node is deprecated") + if minetest.registered_nodes[nodename] then + minetest.registered_nodes[nodename].groups.falling_node = 1 + end +end + +-- +-- Global callbacks +-- + +-- Global environment step function +function on_step(dtime) + -- print("on_step") +end +minetest.register_globalstep(on_step) + +function on_placenode(p, node) + --print("on_placenode") +end +minetest.register_on_placenode(on_placenode) + +function on_dignode(p, node) + --print("on_dignode") +end +minetest.register_on_dignode(on_dignode) + +function on_punchnode(p, node) +end +minetest.register_on_punchnode(on_punchnode) + + +-- +-- Grow trees +-- + +minetest.register_abm({ + nodenames = {"default:sapling"}, + interval = 5, + chance = 30, + action = function(pos, node) + local nu = minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name + local is_soil = minetest.get_item_group(nu, "soil") + if is_soil == 0 then + return + end + minetest.remove_node(pos) + minetest.log("action", "A sapling grows into a tree at "..minetest.pos_to_string(pos)) + local vm = minetest.get_voxel_manip() + local minp, maxp = vm:read_from_map({x=pos.x-16, y=pos.y, z=pos.z-16}, {x=pos.x+16, y=pos.y+16, z=pos.z+16}) + local a = VoxelArea:new{MinEdge=minp, MaxEdge=maxp} + local data = vm:get_data() + default.grow_tree(data, a, pos, math.random(1, 4) == 1, math.random(1,100000)) + vm:set_data(data) + vm:write_to_map(data) + vm:update_map() + end +}) + +minetest.register_abm({ + nodenames = {"default:junglesapling"}, + interval = 5, + chance = 30, + action = function(pos, node) + local nu = minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name + local is_soil = minetest.get_item_group(nu, "soil") + if is_soil == 0 then + return + end + minetest.remove_node(pos) + minetest.log("action", "A jungle sapling grows into a tree at "..minetest.pos_to_string(pos)) + local vm = minetest.get_voxel_manip() + local minp, maxp = vm:read_from_map({x=pos.x-16, y=pos.y-1, z=pos.z-16}, {x=pos.x+16, y=pos.y+16, z=pos.z+16}) + local a = VoxelArea:new{MinEdge=minp, MaxEdge=maxp} + local data = vm:get_data() + default.grow_jungletree(data, a, pos, math.random(1,100000)) + vm:set_data(data) + vm:write_to_map(data) + vm:update_map() + end +}) + +-- +-- Lavacooling +-- + +default.cool_lava_source = function(pos) + minetest.set_node(pos, {name="default:obsidian"}) + minetest.sound_play("default_cool_lava", {pos = pos, gain = 0.25}) +end + +default.cool_lava_flowing = function(pos) + minetest.set_node(pos, {name="default:stone"}) + minetest.sound_play("default_cool_lava", {pos = pos, gain = 0.25}) +end + +minetest.register_abm({ + nodenames = {"default:lava_flowing"}, + neighbors = {"group:water"}, + interval = 3, + chance = 8, + action = function(pos, node, active_object_count, active_object_count_wider) + default.cool_lava_flowing(pos, node, active_object_count, active_object_count_wider) + end, +}) + +minetest.register_abm({ + nodenames = {"default:lava_source"}, + neighbors = {"group:water"}, + interval = 3, + chance = 8, + action = function(pos, node, active_object_count, active_object_count_wider) + default.cool_lava_source(pos, node, active_object_count, active_object_count_wider) + end, +}) + +-- +-- Papyrus and cactus growing +-- + +minetest.register_abm({ + nodenames = {"default:cactus"}, + neighbors = {"group:sand"}, + interval = 50, + chance = 20, + action = function(pos, node) + pos.y = pos.y-1 + local name = minetest.get_node(pos).name + if minetest.get_item_group(name, "sand") ~= 0 then + pos.y = pos.y+1 + local height = 0 + while minetest.get_node(pos).name == "default:cactus" and height < 8 do + height = height+1 + pos.y = pos.y+1 + end + if height < 8 then + if minetest.get_node(pos).name == "air" then + minetest.set_node(pos, {name="default:cactus"}) + end + end + end + end, +}) + +minetest.register_abm({ + nodenames = {"default:papyrus"}, + neighbors = {"default:dirt", "default:dirt_with_grass"}, + interval = 50, + chance = 20, + action = function(pos, node) + pos.y = pos.y-1 + local name = minetest.get_node(pos).name + if name == "default:dirt" or name == "default:dirt_with_grass" then + if minetest.find_node_near(pos, 3, {"group:water"}) == nil then + return + end + pos.y = pos.y+1 + local height = 0 + while minetest.get_node(pos).name == "default:papyrus" and height < 4 do + height = height+1 + pos.y = pos.y+1 + end + if height < 4 then + if minetest.get_node(pos).name == "air" then + minetest.set_node(pos, {name="default:papyrus"}) + end + end + end + end, +}) + +-- +-- dig upwards +-- + +function default.dig_up(pos, node, digger) + if digger == nil then return end + local np = {x = pos.x, y = pos.y + 1, z = pos.z} + local nn = minetest.get_node(np) + if nn.name == node.name then + minetest.node_dig(np, nn, digger) + end +end + +-- +-- Leafdecay +-- + +-- To enable leaf decay for a node, add it to the "leafdecay" group. +-- +-- The rating of the group determines how far from a node in the group "tree" +-- the node can be without decaying. +-- +-- If param2 of the node is ~= 0, the node will always be preserved. Thus, if +-- the player places a node of that kind, you will want to set param2=1 or so. +-- +-- If the node is in the leafdecay_drop group then the it will always be dropped +-- as an item + +default.leafdecay_trunk_cache = {} +default.leafdecay_enable_cache = true +-- Spread the load of finding trunks +default.leafdecay_trunk_find_allow_accumulator = 0 + +minetest.register_globalstep(function(dtime) + local finds_per_second = 5000 + default.leafdecay_trunk_find_allow_accumulator = + math.floor(dtime * finds_per_second) +end) + +minetest.register_abm({ + nodenames = {"group:leafdecay"}, + neighbors = {"air", "group:liquid"}, + -- A low interval and a high inverse chance spreads the load + interval = 2, + chance = 5, + + action = function(p0, node, _, _) + --print("leafdecay ABM at "..p0.x..", "..p0.y..", "..p0.z..")") + local do_preserve = false + local d = minetest.registered_nodes[node.name].groups.leafdecay + if not d or d == 0 then + --print("not groups.leafdecay") + return + end + local n0 = minetest.get_node(p0) + if n0.param2 ~= 0 then + --print("param2 ~= 0") + return + end + local p0_hash = nil + if default.leafdecay_enable_cache then + p0_hash = minetest.hash_node_position(p0) + local trunkp = default.leafdecay_trunk_cache[p0_hash] + if trunkp then + local n = minetest.get_node(trunkp) + local reg = minetest.registered_nodes[n.name] + -- Assume ignore is a trunk, to make the thing work at the border of the active area + if n.name == "ignore" or (reg and reg.groups.tree and reg.groups.tree ~= 0) then + --print("cached trunk still exists") + return + end + --print("cached trunk is invalid") + -- Cache is invalid + table.remove(default.leafdecay_trunk_cache, p0_hash) + end + end + if default.leafdecay_trunk_find_allow_accumulator <= 0 then + return + end + default.leafdecay_trunk_find_allow_accumulator = + default.leafdecay_trunk_find_allow_accumulator - 1 + -- Assume ignore is a trunk, to make the thing work at the border of the active area + local p1 = minetest.find_node_near(p0, d, {"ignore", "group:tree"}) + if p1 then + do_preserve = true + if default.leafdecay_enable_cache then + --print("caching trunk") + -- Cache the trunk + default.leafdecay_trunk_cache[p0_hash] = p1 + end + end + if not do_preserve then + -- Drop stuff other than the node itself + itemstacks = minetest.get_node_drops(n0.name) + for _, itemname in ipairs(itemstacks) do + if minetest.get_item_group(n0.name, "leafdecay_drop") ~= 0 or + itemname ~= n0.name then + local p_drop = { + x = p0.x - 0.5 + math.random(), + y = p0.y - 0.5 + math.random(), + z = p0.z - 0.5 + math.random(), + } + minetest.add_item(p_drop, itemname) + end + end + -- Remove node + minetest.remove_node(p0) + nodeupdate(p0) + end + end +}) + +-- +-- treedecay +-- + +-- To enable tree decay for a node, add it to the "treedecay" group. +-- +-- The rating of the group determines how far from a node in the group "tree" +-- the node can be without decaying. + +minetest.register_abm({ + nodenames = {"group:treedecay"}, + neighbors = {"air", "group:liquid", "group:leaves"}, + interval = 5, + chance = 2, + + action = function(pos, node, _, _) + local pos1 = {x=pos.x, y=pos.y-1, z=pos.z} + local node = minetest.get_node(pos) + local node_under = minetest.get_node(pos1) + local decay = minetest.registered_nodes[node.name].groups.treedecay + local nodes_around = minetest.find_node_near(pos, decay, {"group:trunk"}) + if not decay or decay == 0 then + return + elseif decay ~= 1 and nodes_around then + return + else + if minetest.get_node(pos1).name == "default:dirt" or minetest.get_node(pos1).name == "default:dirt_with_grass" or + minetest.get_node(pos1).name == "default:dirt_with_snow" or minetest.get_node(pos1).name == "default:sand" or + minetest.get_node(pos1).name == "default:tree" or minetest.get_node(pos1).name == "default:tree_gen" or + minetest.get_node(pos1).name == "default:jungletree" or minetest.get_node(pos1).name == "default:jungletree_gen" or + minetest.get_node(pos1).name == "default:acaciatree" or minetest.get_node(pos1).name == "default:acaciatree_gen" or + minetest.get_node(pos1).name == "default:acaciatree_t" or + minetest.get_node(pos1).name == "default:desert_sand" or minetest.get_item_group(node_under.name, "tree") > 0 then + return + else + itemstacks = minetest.get_node_drops(node.name) + for _, itemname in ipairs(itemstacks) do + if minetest.get_item_group(node.name, "treedecay_drop") ~= 0 or + itemname ~= node.name then + local p_drop = { + x = pos.x - 0.5 + math.random(), + y = pos.y - 0.5 + math.random(), + z = pos.z - 0.5 + math.random(), + } + minetest.add_item(p_drop, itemname) + end + end + minetest.remove_node(pos) + nodeupdate(pos) + end + end + end +}) diff --git a/games/minetime_game/mods/default/init.lua b/games/minetime_game/mods/default/init.lua new file mode 100644 index 0000000..7dff739 --- /dev/null +++ b/games/minetime_game/mods/default/init.lua @@ -0,0 +1,55 @@ +-- Minetest 0.4 mod: default +-- See README.txt for licensing and other information. + +-- The API documentation in here was moved into doc/lua_api.txt + +WATER_ALPHA = 160 +WATER_VISC = 1 +LAVA_VISC = 7 +LIGHT_MAX = 14 + +-- Definitions made by this mod that other mods can use too +default = {} + +-- GUI related stuff +default.gui_bg = "bgcolor[#080808BB;true]" +default.gui_bg_img = "background[5,5;1,1;gui_formbg.png;true]" +default.gui_slots = "listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + +function default.get_hotbar_bg(x,y) + local out = "" + for i=0,7,1 do + out = out .."image["..x+i..","..y..";1,1;gui_hb_bg.png]" + end + return out +end + +default.gui_suvival_form = "size[8,8.5]".. + default.gui_bg.. + default.gui_bg_img.. + default.gui_slots.. + "list[current_player;main;0,4.25;8,1;]".. + "list[current_player;main;0,5.5;8,3;8]".. + "list[current_player;craft;1.75,0.5;3,3;]".. + "list[current_player;craftpreview;5.75,1.5;1,1;]".. + "image[4.75,1.5;1,1;gui_furnace_arrow_bg.png^[transformR270]".. + default.get_hotbar_bg(0,4.25) + +-- Load files +dofile(minetest.get_modpath("default").."/functions.lua") +dofile(minetest.get_modpath("default").."/nodes.lua") +dofile(minetest.get_modpath("default").."/tools.lua") +dofile(minetest.get_modpath("default").."/craftitems.lua") +dofile(minetest.get_modpath("default").."/crafting.lua") +dofile(minetest.get_modpath("default").."/mapgen.lua") +dofile(minetest.get_modpath("default").."/player.lua") +dofile(minetest.get_modpath("default").."/trees.lua") +dofile(minetest.get_modpath("default").."/aliases.lua") +dofile(minetest.get_modpath("default").."/item_drop.lua") +dofile(minetest.get_modpath("default").."/replacer.lua") +dofile(minetest.get_modpath("default").."/death_msg.lua") +dofile(minetest.get_modpath("default").."/time_lag.lua") +dofile(minetest.get_modpath("default").."/travel.lua") + + + diff --git a/games/minetime_game/mods/default/item_drop.lua b/games/minetime_game/mods/default/item_drop.lua new file mode 100644 index 0000000..cf93443 --- /dev/null +++ b/games/minetime_game/mods/default/item_drop.lua @@ -0,0 +1,311 @@ +-- item_drop code by cyisfor +-- https://github.com/cyisfor/item_drop + + +if drops == nil then + drops = {} +end + +local movers = {} + +local removedAlreadyDammit = {} + +vector.fixedNormalize = function(v) + assert(v) + local len = vector.length(v) + if len == 0 then + -- no length 1 vector will ever equal this + return vector.new(0,0,0) + else + return vector.divide(v, len) + end +end + +if not vector.dot then + vector.dot = function(p1,p2) + return p1.x * p2.x + p1.y * p2.y + p1.z * p2.z + end +end + +local function removeObject(object) + movers[object] = nil + removedAlreadyDammit[object] = true + object:remove() +end + +local function removeObjectWithSound(object) + movers[object] = nil + removedAlreadyDammit[object] = true + local pos=object:getpos() + --[[minetest.sound_play("item_gone", { + pos=pos, + gain = 0.2, + max_hear_distance = 32, + })]]-- + object:remove() +end + +-- returns whether the pickup failed or not. +-- nil pickupRadius means to infinity and beyond +local function pickup(player, inv, object, pickupRadius) + if removedAlreadyDammit[object] then + -- this gets called after the timeout, as well as when it hits the player + return true + end + if player == nil then return true end + + -- itemstring is serialized item so includes metadata + local lua = object:get_luaentity() + item = ItemStack(lua.itemstring) + if inv and inv:room_for_item("main", item) then + inv:add_item("main", item) + if object:get_luaentity().itemstring ~= "" then + --[[minetest.sound_play("item_drop_pickup", { + to_player = player:get_player_name(), + gain = 0.4, + })]]-- + end + lua.itemstring = '' + removeObject(object) + return false + else + return true + end +end + +local function isGood(object) + -- only want items swooping up after players, not after chests! + if not object:is_player() and object:get_luaentity() and object:get_luaentity().name == "__builtin:item" then + return true + else + return false + end +end + +local function stop(object) + movers[object] = nil + -- no pickup, even though it's close, so + -- stop moving towards the player + object:setvelocity({x=0, y=0, z=0}) + object:setacceleration({x=0, y=0, z=0}) + -- also we can walk on it and it can push pressure plates + -- physical_state = false means "please make us physical again" + local lua = object:get_luaentity() + if lua then + lua.physical_state = false + end + --object:set_properties({ + -- physical = true + --}) +end + +local function pickupOrStop(object, inv, player, pickupRadius) + local lua = object:get_luaentity() + if object == nil or lua == nil or lua.itemstring == nil then + return + end + if pickup(player, inv, object, pickupRadius) then + stop(object) + end +end + +-- GMass... it's the player's mass if the player were a giant planetlike object +-- which things orbit around +-- in the following units: +-- if G = 6.67×10−11 then +-- GMass = 1 for 14,992,503,748 kilograms +drops.playerGMass = 1.7 +-- the player is faaaaaaaat + +local function moveTowards(object, player, pickupRadius, attractRadius) + -- move it towards the player, then pick it up after a delay! + local pos1 = player:getpos() + if pos1 == nil then return end + local pos2 = object:getpos() + if pos2 == nil then return end + pos1.y = pos1.y+0.5 -- head towards player's belt + local direct = vector.subtract(pos1, pos2) + local R = vector.length(direct) + v = object:getvelocity() + stopped = v.x == 0 and v.y == 0 and v.z == 0 + -- when direction(X) = direction(V) we passed the player + -- so project V onto X. If same, passed. If not, approaching. + -- projection = norm(X) * (length(V) * cos(theta)) + -- => length(V) * dot(V,X) / length(V) / length(X) + -- = dot(V,X) / length(X) + -- if X is normalized, length(X) == 1 so... dot product! + -- sign(dot) > 0 = same direction sign(dot)< 0 = different + direct = vector.fixedNormalize(direct) + + -- idea, set velocity not acceleration but set it + -- not to velocity + acceleration, but to the projection of that + -- onto the direction vector. object will always have velocity towards YOU + + if R > attractRadius then + stop(object) + return + end + if R < pickupRadius or (not stopped and vector.dot(v,direct) < 0) then + pickupOrStop(object,player:get_inventory(),player,nil) + return + end + -- Fg = G*M1*M2/R^2 + -- M1*A1 = G * M1 * M2 / R^2 + -- A1 = G * M2 / R ^2 + -- G = whatever it takes for stuff to orbit around the player + -- and the weight of the player is ^^^ + -- A1 = C / R^2 + local A + A = drops.playerGMass / R^2 + A = math.max(A,2*drops.playerGMass) + object:setacceleration(vector.multiply(direct,A)) +end + +if minetest.setting_get("enable_item_pickup") == "true" then + local tickets = 0 -- XXX: oy vey + moveDelay = 0 + minetest.register_globalstep(function(dtime) + -- it's much more efficient to just restart... no way to unregister_globalstep right? + if not minetest.setting_get("enable_item_pickup") then return end + moveDelay = moveDelay + dtime + local pickupRadius = 0.5 + local attractRadius = 3 + if moveDelay > 0.1 then + moveDelay = 0 + -- correct your trajectory while moving + for object,pair in pairs(movers) do + local player = pair[1] + moveTowards(object,player,pickupRadius,attractRadius) + end + end + for _, player in ipairs(minetest.get_connected_players()) do + if player:get_hp() > 0 or not minetest.setting_getbool("enable_damage") then + local playerPosition = player:getpos() + if playerPosition ~= nil then + playerPosition.y = playerPosition.y + 0.5 + local inv = player:get_inventory() + + for _, object in ipairs(minetest.env:get_objects_inside_radius(playerPosition, 3)) do + if isGood(object) and (object:get_luaentity().dropped_by ~= player:get_player_name() or object:get_luaentity().age > 5) and + inv and + inv:room_for_item("main", ItemStack(object:get_luaentity().itemstring)) + then + local ticket = tickets + movers[object] = {player,ticket} + tickets = tickets + 1 + moveTowards(object, player, pickupRadius, attractRadius) + -- make sure object doesn't push the player around! + object:get_luaentity().physical_state = true + object:get_luaentity().object:set_properties({ + physical = false, + collide_with_objects = false, + weight = 0 + }) + -- pleeease no immortal orbiting entities + -- unless you want them to be >:) + minetest.after(30, function(object) + -- only if it's still moving + -- but what if it started moving a second time? + pair = movers[object] + if pair and pair[2] == ticket then + stop(object) + end + end, object) + end + end + end + end + end + end) +end + +if minetest.setting_get("enable_item_drops") == "true" then + local old_handle_node_drops = minetest.handle_node_drops + + function new_handle_node_drops(pos, drops, digger) + if digger and digger.is_fake_player then + return old_handle_node_drops(pos, drops, digger) + end + local inv + -- the digger might be a node, like a constructor + if minetest.setting_getbool("creative_mode") and digger and digger:is_player() then + inv = digger:get_inventory() + end + for _, item in ipairs(drops) do + local count, name + if type(item) == "string" then + count = 1 + name = item + else + count = item:get_count() + name = item:get_name() + end + -- Only drop the item if not in creative, or if the item is not in creative inventory + if not inv or not inv:contains_item("main", ItemStack(name)) then + for i=1, count do + local obj = minetest.env:add_item(pos, item) + if obj ~= nil then + local x = math.random(1, 5) + if math.random(1, 2) == 1 then + x = -x + end + local z = math.random(1, 5) + if math.random(1, 2) == 1 then + z = -z + end + -- hurl it out into space at a random velocity + -- (still falling though) + obj:setvelocity({x=1/x, y=obj:getvelocity().y, z=1/z}) + end + end + end + end + -- the items have been dropped. Don't use builtin/item.lua or it could put the items + -- into an inventory! (see quarry) + -- return old_handle_node_drops(pos, drops, digger) + end + + function checkSetting(pos, drops, digger) + if minetest.setting_get("enable_item_drops") == "true" then + return new_handle_node_drops(pos, drops, digger) + else + return old_handle_node_drops(pos, drops, digger) + end + end + minetest.handle_node_drops = checkSetting + +end + +function minetest.item_drop(itemstack, dropper, pos) + if dropper.get_player_name then + local v = dropper:get_look_dir() + local p = {x=pos.x+v.x, y=pos.y+1.5+v.y, z=pos.z+v.z} + local r + if dropper:get_player_control().sneak then + r = itemstack + itemstack = itemstack:to_table() + itemstack.count = 1 + itemstack = ItemStack(itemstack) + r:take_item() + else + r = ItemStack("") + end + --[[minetest.sound_play("item_drop", { + pos=pos, + gain = 1.0, + max_hear_distance = 32, + })]]-- + local obj = minetest.add_item(p, itemstack) + if obj then + v.x = v.x*2 + v.y = v.y*2 + 1 + v.z = v.z*2 + obj:setvelocity(v) + obj:get_luaentity().dropped_by = dropper:get_player_name() + end + return r + else + minetest.add_item(pos, itemstack) + return ItemStack("") + end +end diff --git a/games/minetime_game/mods/default/mapgen.lua b/games/minetime_game/mods/default/mapgen.lua new file mode 100644 index 0000000..2099dc6 --- /dev/null +++ b/games/minetime_game/mods/default/mapgen.lua @@ -0,0 +1,514 @@ +-- mods/default/mapgen.lua + +-- +-- Aliases for map generator outputs +-- + +minetest.register_alias("mapgen_stone", "default:stone") +minetest.register_alias("mapgen_tree", "default:tree") +minetest.register_alias("mapgen_sapling", "default:sapling") +minetest.register_alias("mapgen_leaves", "default:leaves") +minetest.register_alias("mapgen_jungletree", "default:jungletree") +minetest.register_alias("mapgen_jsapling", "default:junglesapling") +minetest.register_alias("mapgen_jungleleaves", "default:jungleleaves") +minetest.register_alias("mapgen_apple", "default:apple") +minetest.register_alias("mapgen_water_source", "default:water_source") +minetest.register_alias("mapgen_dirt", "default:dirt") +minetest.register_alias("mapgen_sand", "default:sand") +minetest.register_alias("mapgen_gravel", "default:gravel") +minetest.register_alias("mapgen_clay", "default:clay") +minetest.register_alias("mapgen_lava_source", "default:lava_source") +minetest.register_alias("mapgen_cobble", "default:cobble") +minetest.register_alias("mapgen_mossycobble", "default:mossycobble") +minetest.register_alias("mapgen_dirt_with_grass", "default:dirt_with_grass") +minetest.register_alias("mapgen_junglegrass", "default:junglegrass") +minetest.register_alias("mapgen_stone_with_coal", "default:stone_with_coal") +minetest.register_alias("mapgen_stone_with_iron", "default:stone_with_iron") +minetest.register_alias("mapgen_mese", "default:mese") +minetest.register_alias("mapgen_desert_sand", "default:desert_sand") +minetest.register_alias("mapgen_desert_stone", "default:desert_stone") +minetest.register_alias("mapgen_stair_cobble", "stairs:stair_cobble") + +-- +-- Ore generation +-- + +minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_coal", + wherein = "default:stone", + clust_scarcity = 8*8*8, + clust_num_ores = 8, + clust_size = 3, + height_min = -31000, + height_max = 64, +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_coal", + wherein = "default:stone", + clust_scarcity = 24*24*24, + clust_num_ores = 27, + clust_size = 6, + height_min = -31000, + height_max = 0, + flags = "absheight", +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_iron", + wherein = "default:stone", + clust_scarcity = 12*12*12, + clust_num_ores = 3, + clust_size = 2, + height_min = -15, + height_max = 2, +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_iron", + wherein = "default:stone", + clust_scarcity = 9*9*9, + clust_num_ores = 5, + clust_size = 3, + height_min = -63, + height_max = -16, +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_iron", + wherein = "default:stone", + clust_scarcity = 7*7*7, + clust_num_ores = 5, + clust_size = 3, + height_min = -31000, + height_max = -64, + flags = "absheight", +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_iron", + wherein = "default:stone", + clust_scarcity = 24*24*24, + clust_num_ores = 27, + clust_size = 6, + height_min = -31000, + height_max = -64, + flags = "absheight", +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_mese", + wherein = "default:stone", + clust_scarcity = 18*18*18, + clust_num_ores = 3, + clust_size = 2, + height_min = -255, + height_max = -64, + flags = "absheight", +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_mese", + wherein = "default:stone", + clust_scarcity = 14*14*14, + clust_num_ores = 5, + clust_size = 3, + height_min = -31000, + height_max = -256, + flags = "absheight", +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "default:mese", + wherein = "default:stone", + clust_scarcity = 36*36*36, + clust_num_ores = 3, + clust_size = 2, + height_min = -31000, + height_max = -1024, + flags = "absheight", +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_gold", + wherein = "default:stone", + clust_scarcity = 15*15*15, + clust_num_ores = 3, + clust_size = 2, + height_min = -255, + height_max = -64, + flags = "absheight", +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_gold", + wherein = "default:stone", + clust_scarcity = 13*13*13, + clust_num_ores = 5, + clust_size = 3, + height_min = -31000, + height_max = -256, + flags = "absheight", +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_diamond", + wherein = "default:stone", + clust_scarcity = 17*17*17, + clust_num_ores = 4, + clust_size = 3, + height_min = -255, + height_max = -128, + flags = "absheight", +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_diamond", + wherein = "default:stone", + clust_scarcity = 15*15*15, + clust_num_ores = 4, + clust_size = 3, + height_min = -31000, + height_max = -256, + flags = "absheight", +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_copper", + wherein = "default:stone", + clust_scarcity = 12*12*12, + clust_num_ores = 4, + clust_size = 3, + height_min = -63, + height_max = -16, +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_copper", + wherein = "default:stone", + clust_scarcity = 9*9*9, + clust_num_ores = 5, + clust_size = 3, + height_min = -31000, + height_max = -64, + flags = "absheight", +}) + +if minetest.setting_get("mg_name") == "indev" then + -- Floatlands and high mountains springs + minetest.register_ore({ + ore_type = "scatter", + ore = "default:water_source", + ore_param2 = 128, + wherein = "default:stone", + clust_scarcity = 40*40*40, + clust_num_ores = 8, + clust_size = 3, + height_min = 100, + height_max = 31000, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:lava_source", + ore_param2 = 128, + wherein = "default:stone", + clust_scarcity = 50*50*50, + clust_num_ores = 5, + clust_size = 2, + height_min = 10000, + height_max = 31000, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:sand", + wherein = "default:stone", + clust_scarcity = 20*20*20, + clust_num_ores = 5*5*3, + clust_size = 5, + height_min = 500, + height_max = 31000, + }) + + -- Underground springs + minetest.register_ore({ + ore_type = "scatter", + ore = "default:water_source", + ore_param2 = 128, + wherein = "default:stone", + clust_scarcity = 25*25*25, + clust_num_ores = 8, + clust_size = 3, + height_min = -10000, + height_max = -10, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:lava_source", + ore_param2 = 128, + wherein = "default:stone", + clust_scarcity = 35*35*35, + clust_num_ores = 5, + clust_size = 2, + height_min = -31000, + height_max = -100, + }) +end + +minetest.register_ore({ + ore_type = "scatter", + ore = "default:clay", + wherein = "default:sand", + clust_scarcity = 15*15*15, + clust_num_ores = 64, + clust_size = 5, + height_max = 0, + height_min = -10, +}) + +function default.generate_ore(name, wherein, minp, maxp, seed, chunks_per_volume, chunk_size, ore_per_chunk, height_min, height_max) + minetest.log('action', "WARNING: default.generate_ore is deprecated") + + if maxp.y < height_min or minp.y > height_max then + return + end + local y_min = math.max(minp.y, height_min) + local y_max = math.min(maxp.y, height_max) + if chunk_size >= y_max - y_min + 1 then + return + end + local volume = (maxp.x-minp.x+1)*(y_max-y_min+1)*(maxp.z-minp.z+1) + local num_chunks = math.floor(chunks_per_volume * volume) + local inverse_chance = math.floor(chunk_size*chunk_size*chunk_size / ore_per_chunk) + --print("generate_ore num_chunks: "..dump(num_chunks)) + for i=1,num_chunks do + local y0 = math.random(y_min, y_max-chunk_size+1) + if y0 >= height_min and y0 <= height_max then + local x0 = math.random(minp.x, maxp.x-chunk_size+1) + local z0 = math.random(minp.z, maxp.z-chunk_size+1) + local p0 = {x=x0, y=y0, z=z0} + for x1=0,chunk_size-1 do + for y1=0,chunk_size-1 do + for z1=0,chunk_size-1 do + if math.random(1,inverse_chance) == 1 then + local x2 = x0+x1 + local y2 = y0+y1 + local z2 = z0+z1 + local p2 = {x=x2, y=y2, z=z2} + if minetest.get_node(p2).name == wherein then + minetest.set_node(p2, {name=name}) + end + end + end + end + end + end + end + --print("generate_ore done") +end + +function default.make_papyrus(pos, size) + for y=0,size-1 do + local p = {x=pos.x, y=pos.y+y, z=pos.z} + local nn = minetest.get_node(p).name + if minetest.registered_nodes[nn] and + minetest.registered_nodes[nn].buildable_to then + minetest.set_node(p, {name="default:papyrus"}) + else + return + end + end +end + +function default.make_cactus(pos, size) + for y=0,size-1 do + local p = {x=pos.x, y=pos.y+y, z=pos.z} + local nn = minetest.get_node(p).name + if minetest.registered_nodes[nn] and + minetest.registered_nodes[nn].buildable_to then + minetest.set_node(p, {name="default:cactus"}) + else + return + end + end +end + +-- facedir: 0/1/2/3 (head node facedir value) +-- length: length of rainbow tail +function default.make_nyancat(pos, facedir, length) + local tailvec = {x=0, y=0, z=0} + if facedir == 0 then + tailvec.z = 1 + elseif facedir == 1 then + tailvec.x = 1 + elseif facedir == 2 then + tailvec.z = -1 + elseif facedir == 3 then + tailvec.x = -1 + else + --print("default.make_nyancat(): Invalid facedir: "+dump(facedir)) + facedir = 0 + tailvec.z = 1 + end + local p = {x=pos.x, y=pos.y, z=pos.z} + minetest.set_node(p, {name="default:nyancat", param2=facedir}) + for i=1,length do + p.x = p.x + tailvec.x + p.z = p.z + tailvec.z + minetest.set_node(p, {name="default:nyancat_rainbow", param2=facedir}) + end +end + +function generate_nyancats(seed, minp, maxp) + local height_min = -31000 + local height_max = -32 + if maxp.y < height_min or minp.y > height_max then + return + end + local y_min = math.max(minp.y, height_min) + local y_max = math.min(maxp.y, height_max) + local volume = (maxp.x-minp.x+1)*(y_max-y_min+1)*(maxp.z-minp.z+1) + local pr = PseudoRandom(seed + 9324342) + local max_num_nyancats = math.floor(volume / (16*16*16)) + for i=1,max_num_nyancats do + if math.random(0, 1000) == 0 then + local x0 = math.random(minp.x, maxp.x) + local y0 = math.random(minp.y, maxp.y) + local z0 = math.random(minp.z, maxp.z) + local p0 = {x=x0, y=y0, z=z0} + default.make_nyancat(p0, math.random(0,3), math.random(3,15)) + end + end +end + +minetest.register_on_generated(function(minp, maxp, seed) + if maxp.y >= 2 and minp.y <= 0 then + -- Generate papyrus + local perlin1 = minetest.get_perlin(354, 3, 0.7, 100) + -- Assume X and Z lengths are equal + local divlen = 8 + local divs = (maxp.x-minp.x)/divlen+1; + for divx=0,divs-1 do + for divz=0,divs-1 do + local x0 = minp.x + math.floor((divx+0)*divlen) + local z0 = minp.z + math.floor((divz+0)*divlen) + local x1 = minp.x + math.floor((divx+1)*divlen) + local z1 = minp.z + math.floor((divz+1)*divlen) + -- Determine papyrus amount from perlin noise + local papyrus_amount = math.floor(perlin1:get2d({x=x0, y=z0}) * 45 - 20) + -- Find random positions for papyrus based on this random + local pr = PseudoRandom(seed+1) + for i=0,papyrus_amount do + local x = math.random(x0, x1) + local z = math.random(z0, z1) + if minetest.get_node({x=x,y=1,z=z}).name == "default:dirt_with_grass" and + minetest.find_node_near({x=x,y=1,z=z}, 1, "default:water_source") then + default.make_papyrus({x=x,y=2,z=z}, math.random(2, 4)) + end + end + end + end + -- Generate cactuses + local perlin1 = minetest.get_perlin(230, 3, 0.6, 100) + -- Assume X and Z lengths are equal + local divlen = 16 + local divs = (maxp.x-minp.x)/divlen+1; + for divx=0,divs-1 do + for divz=0,divs-1 do + local x0 = minp.x + math.floor((divx+0)*divlen) + local z0 = minp.z + math.floor((divz+0)*divlen) + local x1 = minp.x + math.floor((divx+1)*divlen) + local z1 = minp.z + math.floor((divz+1)*divlen) + -- Determine cactus amount from perlin noise + local cactus_amount = math.floor(perlin1:get2d({x=x0, y=z0}) * 6 - 3) + -- Find random positions for cactus based on this random + local pr = PseudoRandom(seed+1) + for i=0,cactus_amount do + local x = math.random(x0, x1) + local z = math.random(z0, z1) + -- Find ground level (0...15) + local ground_y = nil + for y=30,0,-1 do + if minetest.get_node({x=x,y=y,z=z}).name ~= "air" then + ground_y = y + break + end + end + -- If desert sand, make cactus + if ground_y and minetest.get_node({x=x,y=ground_y,z=z}).name == "default:desert_sand" then + default.make_cactus({x=x,y=ground_y+1,z=z}, math.random(6, 8)) + end + end + end + end + -- Generate grass + local perlin1 = minetest.get_perlin(329, 3, 0.6, 100) + -- Assume X and Z lengths are equal + local divlen = 16 + local divs = (maxp.x-minp.x)/divlen+1; + for divx=0,divs-1 do + for divz=0,divs-1 do + local x0 = minp.x + math.floor((divx+0)*divlen) + local z0 = minp.z + math.floor((divz+0)*divlen) + local x1 = minp.x + math.floor((divx+1)*divlen) + local z1 = minp.z + math.floor((divz+1)*divlen) + -- Determine grass amount from perlin noise + local grass_amount = math.floor(perlin1:get2d({x=x0, y=z0}) ^ 3 * 9) + -- Find random positions for grass based on this random + local pr = PseudoRandom(seed+1) + for i=0,grass_amount do + local x = math.random(x0, x1) + local z = math.random(z0, z1) + -- Find ground level (0...15) + local ground_y = nil + for y=30,0,-1 do + if minetest.get_node({x=x,y=y,z=z}).name ~= "air" then + ground_y = y + break + end + end + + if ground_y then + local p = {x=x,y=ground_y+1,z=z} + local nn = minetest.get_node(p).name + -- Check if the node can be replaced + if minetest.registered_nodes[nn] and + minetest.registered_nodes[nn].buildable_to then + nn = minetest.get_node({x=x,y=ground_y,z=z}).name + -- If desert sand, add dry shrub + if nn == "default:desert_sand" then + minetest.set_node(p,{name="default:dry_shrub"}) + + -- If dirt with grass, add grass + elseif nn == "default:dirt_with_grass" then + minetest.set_node(p,{name="default:grass_"..math.random(1, 5)}) + end + end + end + + end + end + end + end + + -- Generate nyan cats + generate_nyancats(seed, minp, maxp) +end) + diff --git a/games/minetime_game/mods/default/models/character.b3d b/games/minetime_game/mods/default/models/character.b3d new file mode 100644 index 0000000..799d7fb Binary files /dev/null and b/games/minetime_game/mods/default/models/character.b3d differ diff --git a/games/minetime_game/mods/default/models/character.png b/games/minetime_game/mods/default/models/character.png new file mode 100644 index 0000000..0502178 Binary files /dev/null and b/games/minetime_game/mods/default/models/character.png differ diff --git a/games/minetime_game/mods/default/models/characterf.b3d b/games/minetime_game/mods/default/models/characterf.b3d new file mode 100644 index 0000000..b0a9181 Binary files /dev/null and b/games/minetime_game/mods/default/models/characterf.b3d differ diff --git a/games/minetime_game/mods/default/models/characterf.png b/games/minetime_game/mods/default/models/characterf.png new file mode 100644 index 0000000..6baa26d Binary files /dev/null and b/games/minetime_game/mods/default/models/characterf.png differ diff --git a/games/minetime_game/mods/default/models/characterm.png b/games/minetime_game/mods/default/models/characterm.png new file mode 100644 index 0000000..dd3562b Binary files /dev/null and b/games/minetime_game/mods/default/models/characterm.png differ diff --git a/games/minetime_game/mods/default/nodes.lua b/games/minetime_game/mods/default/nodes.lua new file mode 100644 index 0000000..b03f57a --- /dev/null +++ b/games/minetime_game/mods/default/nodes.lua @@ -0,0 +1,1512 @@ +-- mods/default/nodes.lua + +minetest.register_node("default:stone", { + description = "Stone", + tiles = {"default_stone.png"}, + is_ground_content = true, + groups = {cracky=3, stone=1}, + drop = 'default:cobble', + legacy_mineral = true, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:desert_stone", { + description = "Desert Stone", + tiles = {"default_desert_stone.png"}, + is_ground_content = true, + groups = {cracky=3, stone=1}, + drop = 'default:desert_cobble', + legacy_mineral = true, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:stone_with_coal", { + description = "Coal Ore", + tiles = {"default_stone.png^default_mineral_coal.png"}, + is_ground_content = true, + groups = {cracky=3}, + drop = 'default:coal_lump', + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:stone_with_iron", { + description = "Iron Ore", + tiles = {"default_stone.png^default_mineral_iron.png"}, + is_ground_content = true, + groups = {cracky=2}, + drop = 'default:iron_lump', + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:stone_with_copper", { + description = "Copper Ore", + tiles = {"default_stone.png^default_mineral_copper.png"}, + is_ground_content = true, + groups = {cracky=2}, + drop = 'default:copper_lump', + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:stone_with_mese", { + description = "Mese Ore", + tiles = {"default_stone.png^default_mineral_mese.png"}, + is_ground_content = true, + groups = {cracky=1}, + drop = "default:mese_crystal", + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:stone_with_gold", { + description = "Gold Ore", + tiles = {"default_stone.png^default_mineral_gold.png"}, + is_ground_content = true, + groups = {cracky=2}, + drop = "default:gold_lump", + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:stone_with_diamond", { + description = "Diamond Ore", + tiles = {"default_stone.png^default_mineral_diamond.png"}, + is_ground_content = true, + groups = {cracky=1}, + drop = "default:diamond", + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:stonebrick", { + description = "Stone Brick", + tiles = {"default_stone_brick.png"}, + groups = {cracky=2, stone=1}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:desert_stonebrick", { + description = "Desert Stone Brick", + tiles = {"default_desert_stone_brick.png"}, + groups = {cracky=2, stone=1}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:dirt_with_grass", { + description = "Dirt with Grass", + tiles = {"default_grass.png", "default_dirt.png", "default_dirt.png^default_grass_side.png"}, + is_ground_content = true, + groups = {crumbly=3,soil=1}, + drop = 'default:dirt', + sounds = default.node_sound_dirt_defaults({ + footstep = {name="default_grass_footstep", gain=0.25}, + }), +}) + +minetest.register_node("default:dirt_with_grass_footsteps", { + description = "Dirt with Grass and Footsteps", + tiles = {"default_grass_footsteps.png", "default_dirt.png", "default_dirt.png^default_grass_side.png"}, + is_ground_content = true, + groups = {crumbly=3,soil=1,not_in_creative_inventory=1}, + drop = 'default:dirt', + sounds = default.node_sound_dirt_defaults({ + footstep = {name="default_grass_footstep", gain=0.25}, + }), +}) + +minetest.register_node("default:dirt_with_snow", { + description = "Dirt with Snow", + tiles = {"default_snow.png", "default_dirt.png", "default_dirt.png^default_snow_side.png"}, + is_ground_content = true, + groups = {crumbly=3}, + drop = 'default:dirt', + sounds = default.node_sound_dirt_defaults({ + footstep = {name="default_snow_footstep", gain=0.25}, + }), +}) + +minetest.register_node("default:dirt", { + description = "Dirt", + tiles = {"default_dirt.png"}, + is_ground_content = true, + groups = {crumbly=3,soil=1}, + sounds = default.node_sound_dirt_defaults(), +}) + +minetest.register_abm({ + nodenames = {"default:dirt"}, + interval = 2, + chance = 200, + action = function(pos, node) + local above = {x=pos.x, y=pos.y+1, z=pos.z} + local name = minetest.get_node(above).name + local nodedef = minetest.registered_nodes[name] + if nodedef and (nodedef.sunlight_propagates or nodedef.paramtype == "light") + and nodedef.liquidtype == "none" + and (minetest.get_node_light(above) or 0) >= 13 then + if name == "default:snow" or name == "default:snowblock" then + minetest.set_node(pos, {name = "default:dirt_with_snow"}) + else + minetest.set_node(pos, {name = "default:dirt_with_grass"}) + end + end + end +}) + +minetest.register_abm({ + nodenames = {"default:dirt_with_grass"}, + interval = 2, + chance = 20, + action = function(pos, node) + local above = {x=pos.x, y=pos.y+1, z=pos.z} + local name = minetest.get_node(above).name + local nodedef = minetest.registered_nodes[name] + if name ~= "ignore" and nodedef + and not ((nodedef.sunlight_propagates or nodedef.paramtype == "light") + and nodedef.liquidtype == "none") then + minetest.set_node(pos, {name = "default:dirt"}) + end + end +}) + +minetest.register_node("default:sand", { + description = "Sand", + tiles = {"default_sand.png"}, + is_ground_content = true, + groups = {crumbly=3, falling_node=1, sand=1}, + sounds = default.node_sound_sand_defaults(), +}) + +minetest.register_node("default:desert_sand", { + description = "Desert Sand", + tiles = {"default_desert_sand.png"}, + is_ground_content = true, + groups = {crumbly=3, falling_node=1, sand=1}, + sounds = default.node_sound_sand_defaults(), +}) + +minetest.register_node("default:gravel", { + description = "Gravel", + tiles = {"default_gravel.png"}, + is_ground_content = true, + groups = {crumbly=2, falling_node=1}, + sounds = default.node_sound_dirt_defaults({ + footstep = {name="default_gravel_footstep", gain=0.5}, + dug = {name="default_gravel_footstep", gain=1.0}, + }), +}) + +minetest.register_node("default:sandstone", { + description = "Sandstone", + tiles = {"default_sandstone.png"}, + is_ground_content = true, + groups = {crumbly=2,cracky=3}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:sandstonebrick", { + description = "Sandstone Brick", + tiles = {"default_sandstone_brick.png"}, + is_ground_content = true, + groups = {cracky=2}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:clay", { + description = "Clay", + tiles = {"default_clay.png"}, + is_ground_content = true, + groups = {crumbly=3}, + drop = 'default:clay_lump 4', + sounds = default.node_sound_dirt_defaults(), +}) + +minetest.register_node("default:brick", { + description = "Brick Block", + tiles = {"default_brick.png"}, + is_ground_content = false, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:tree", { + description = "Tree", + tiles = {"default_tree_top.png", "default_tree_top.png", "default_tree.png"}, + paramtype2 = "facedir", + drawtype = "nodebox", + paramtype = "light", + node_box = { + type = "fixed", + fixed = { + {-0.375, -0.5, -0.375, 0.375, 0.5, 0.375}, -- NodeBox1 + {-0.3125, -0.5, 0.375, 0.3125, 0.5, 0.4375}, -- NodeBox2 + {-0.1875, -0.5, 0.4375, 0.1875, 0.5, 0.5}, -- NodeBox3 + {-0.3125, -0.5, -0.4375, 0.3125, 0.5, -0.375}, -- NodeBox4 + {-0.1875, -0.5, -0.5, 0.1875, 0.5, -0.4375}, -- NodeBox5 + {-0.4375, -0.5, -0.3125, -0.375, 0.5, 0.3125}, -- NodeBox6 + {-0.5, -0.5, -0.1875, -0.4375, 0.5, 0.1875}, -- NodeBox7 + {0.375, -0.5, -0.3125, 0.4375, 0.5, 0.3125}, -- NodeBox8 + {0.4375, -0.5, -0.1875, 0.5, 0.5, 0.1875}, -- NodeBox9 + } + }, + is_ground_content = false, + groups = {tree=1,trunk=1,treedecay=1,choppy=2,oddly_breakable_by_hand=1,flammable=2}, + sounds = default.node_sound_wood_defaults(), + on_place = minetest.rotate_node +}) + +minetest.register_node("default:jungletree", { + description = "Jungle Tree", + tiles = {"default_jungletree_top.png", "default_jungletree_top.png", "default_jungletree.png"}, + paramtype2 = "facedir", + drawtype = "nodebox", + paramtype = "light", + node_box = { + type = "fixed", + fixed = { + {-0.375, -0.5, -0.375, 0.375, 0.5, 0.375}, -- NodeBox1 + {-0.3125, -0.5, 0.375, 0.3125, 0.5, 0.4375}, -- NodeBox2 + {-0.1875, -0.5, 0.4375, 0.1875, 0.5, 0.5}, -- NodeBox3 + {-0.3125, -0.5, -0.4375, 0.3125, 0.5, -0.375}, -- NodeBox4 + {-0.1875, -0.5, -0.5, 0.1875, 0.5, -0.4375}, -- NodeBox5 + {-0.4375, -0.5, -0.3125, -0.375, 0.5, 0.3125}, -- NodeBox6 + {-0.5, -0.5, -0.1875, -0.4375, 0.5, 0.1875}, -- NodeBox7 + {0.375, -0.5, -0.3125, 0.4375, 0.5, 0.3125}, -- NodeBox8 + {0.4375, -0.5, -0.1875, 0.5, 0.5, 0.1875}, -- NodeBox9 + } + }, + is_ground_content = false, + groups = {tree=1,trunk=1,treedecay=1,choppy=2,oddly_breakable_by_hand=1,flammable=2}, + sounds = default.node_sound_wood_defaults(), + on_place = minetest.rotate_node +}) + +minetest.register_node("default:junglewood", { + description = "Junglewood Planks", + tiles = {"default_junglewood.png"}, + groups = {choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1}, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node("default:jungleleaves", { + description = "Jungle Leaves", + drawtype = "allfaces_optional", + waving = 1, + visual_scale = 1.3, + tiles = {"default_branches.png^default_jungleleaves.png"}, + paramtype = "light", + is_ground_content = false, + groups = {snappy=3, leafdecay=5, flammable=2, leaves=1}, + drop = { + max_items = 1, + items = { + { + -- player will get sapling with 1/20 chance + items = {'default:junglesapling'}, + rarity = 20, + }, + { + -- player will get leaves only if he get no saplings, + -- this is because max_items is 1 + items = {'default:jungleleaves'}, + } + } + }, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("default:junglesapling", { + description = "Jungle Sapling", + drawtype = "plantlike", + visual_scale = 1.0, + tiles = {"default_junglesapling.png"}, + inventory_image = "default_junglesapling.png", + wield_image = "default_junglesapling.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(), +}) + +minetest.register_node("default:junglegrass", { + description = "Jungle Grass", + drawtype = "plantlike", + waving = 1, + visual_scale = 1.3, + tiles = {"default_junglegrass.png"}, + inventory_image = "default_junglegrass.png", + wield_image = "default_junglegrass.png", + paramtype = "light", + walkable = false, + buildable_to = true, + is_ground_content = true, + groups = {snappy=3,flammable=2,flora=1,attached_node=1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}, + }, +}) + +minetest.register_node("default:leaves", { + description = "Leaves", + drawtype = "allfaces_optional", + waving = 1, + visual_scale = 1.3, + tiles = {"default_branches.png^default_leaves.png"}, + paramtype = "light", + is_ground_content = false, + groups = {snappy=3, leafdecay=4, flammable=2, leaves=1}, + drop = { + max_items = 1, + items = { + { + -- player will get sapling with 1/20 chance + items = {'default:sapling'}, + rarity = 20, + }, + { + -- player will get leaves only if he get no saplings, + -- this is because max_items is 1 + items = {'default:leaves'}, + } + } + }, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("default:cactus", { + description = "Cactus", + tiles = {"default_cactus_top.png", "default_cactus_top.png", "default_cactus_side.png"}, + paramtype2 = "facedir", + is_ground_content = true, + groups = {snappy=1,tree=1,treedecay=1,choppy=3,flammable=2}, + sounds = default.node_sound_wood_defaults(), + on_place = minetest.rotate_node, + after_dig_node = function(pos, node, metadata, digger) + default.dig_up(pos, node, digger) + end, +}) + +minetest.register_node("default:papyrus", { + description = "Papyrus", + drawtype = "plantlike", + tiles = {"default_papyrus.png"}, + inventory_image = "default_papyrus.png", + wield_image = "default_papyrus.png", + paramtype = "light", + walkable = false, + is_ground_content = true, + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3} + }, + groups = {snappy=3,flammable=2}, + sounds = default.node_sound_leaves_defaults(), + after_dig_node = function(pos, node, metadata, digger) + default.dig_up(pos, node, digger) + end, +}) + +default.bookshelf_formspec = + "size[8,7;]".. + default.gui_bg.. + default.gui_bg_img.. + default.gui_slots.. + "list[context;books;0,0.3;8,2;]".. + "list[current_player;main;0,2.85;8,1;]".. + "list[current_player;main;0,4.08;8,3;8]".. + default.get_hotbar_bg(0,2.85) + +minetest.register_node("default:bookshelf", { + description = "Bookshelf", + tiles = {"default_wood.png", "default_wood.png", "default_bookshelf.png"}, + is_ground_content = false, + groups = {choppy=3,oddly_breakable_by_hand=2,flammable=3}, + sounds = default.node_sound_wood_defaults(), + on_construct = function(pos) + local meta = minetest.env:get_meta(pos) + meta:set_string("formspec", default.bookshelf_formspec) + local inv = meta:get_inventory() + inv:set_size("books", 8*2) + end, + can_dig = function(pos,player) + local meta = minetest.env:get_meta(pos); + local inv = meta:get_inventory() + return inv:is_empty("books") + end, + + allow_metadata_inventory_put = function(pos, listname, index, stack, player) + local meta = minetest.env:get_meta(pos) + local inv = meta:get_inventory() + if listname == "books" then + if stack:get_name() == "default:book" then + return 1 + else + return 0 + end + end + end, + + allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + local meta = minetest.env:get_meta(pos) + local inv = meta:get_inventory() + local stack = inv:get_stack(from_list, from_index) + local to_stack = inv:get_stack(to_list, to_index) + if to_list == "books" then + if stack:get_name() == "default:book" and to_stack:is_empty() then + return 1 + else + return 0 + end + end + end, + + on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + minetest.log("action", player:get_player_name().. + " moves stuff in bookshelf at "..minetest.pos_to_string(pos)) + end, + on_metadata_inventory_put = function(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name().. + " moves stuff to bookshelf at "..minetest.pos_to_string(pos)) + end, + on_metadata_inventory_take = function(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name().. + " takes stuff from bookshelf at "..minetest.pos_to_string(pos)) + end, +}) + +minetest.register_node("default:glass", { + description = "Glass", + drawtype = "glasslike", + tiles = {"default_glass.png"}, + inventory_image = minetest.inventorycube("default_glass.png"), + paramtype = "light", + sunlight_propagates = true, + is_ground_content = false, + groups = {cracky=3,oddly_breakable_by_hand=3}, + sounds = default.node_sound_glass_defaults(), +}) + +local fence_texture = "default_fence_overlay.png^default_wood.png^default_fence_overlay.png^[makealpha:255,126,126" +minetest.register_node("default:fence_wood", { + description = "Wooden Fence", + drawtype = "fencelike", + tiles = {"default_wood.png"}, + inventory_image = fence_texture, + wield_image = fence_texture, + paramtype = "light", + is_ground_content = false, + selection_box = { + type = "fixed", + fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7}, + }, + groups = {choppy=2,oddly_breakable_by_hand=2,flammable=2}, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node("default:rail", { + description = "Rail", + drawtype = "raillike", + tiles = {"default_rail.png", "default_rail_curved.png", "default_rail_t_junction.png", "default_rail_crossing.png"}, + inventory_image = "default_rail.png", + wield_image = "default_rail.png", + paramtype = "light", + walkable = false, + is_ground_content = false, + selection_box = { + type = "fixed", + -- but how to specify the dimensions for curved and sideways rails? + fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2}, + }, + groups = {bendy=2,dig_immediate=2,attached_node=1}, +}) + +minetest.register_node("default:ladder", { + description = "Ladder", + drawtype = "signlike", + tiles = {"default_ladder.png"}, + inventory_image = "default_ladder.png", + wield_image = "default_ladder.png", + paramtype = "light", + paramtype2 = "wallmounted", + walkable = false, + climbable = true, + is_ground_content = false, + selection_box = { + type = "wallmounted", + --wall_top = = + --wall_bottom = = + --wall_side = = + }, + groups = {choppy=2,oddly_breakable_by_hand=3,flammable=2}, + legacy_wallmounted = true, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node("default:wood", { + description = "Wooden Planks", + tiles = {"default_wood.png"}, + groups = {choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1}, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node("default:cloud", { + description = "Cloud", + tiles = {"default_cloud.png"}, + sounds = default.node_sound_defaults(), + groups = {not_in_creative_inventory=1}, +}) + +minetest.register_node("default:water_flowing", { + description = "Flowing Water", + inventory_image = minetest.inventorycube("default_water.png"), + drawtype = "flowingliquid", + tiles = {"default_water.png"}, + special_tiles = { + { + image="default_water_flowing_animated.png", + backface_culling=false, + animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=0.8} + }, + { + image="default_water_flowing_animated.png", + backface_culling=true, + animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=0.8} + }, + }, + alpha = WATER_ALPHA, + paramtype = "light", + paramtype2 = "flowingliquid", + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + drop = "", + drowning = 1, + liquidtype = "flowing", + liquid_alternative_flowing = "default:water_flowing", + liquid_alternative_source = "default:water_source", + liquid_viscosity = WATER_VISC, + freezemelt = "default:snow", + post_effect_color = {a=64, r=100, g=100, b=200}, + groups = {water=3, liquid=3, puts_out_fire=1, not_in_creative_inventory=1, freezes=1, melt_around=1}, +}) + +minetest.register_node("default:water_source", { + description = "Water Source", + inventory_image = minetest.inventorycube("default_water.png"), + drawtype = "liquid", + tiles = { + {name="default_water_source_animated.png", animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=2.0}} + }, + special_tiles = { + -- New-style water source material (mostly unused) + { + name="default_water_source_animated.png", + animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=2.0}, + backface_culling = false, + } + }, + alpha = WATER_ALPHA, + paramtype = "light", + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + drop = "", + drowning = 1, + liquidtype = "source", + liquid_alternative_flowing = "default:water_flowing", + liquid_alternative_source = "default:water_source", + liquid_viscosity = WATER_VISC, + freezemelt = "default:ice", + post_effect_color = {a=64, r=100, g=100, b=200}, + groups = {water=3, liquid=3, puts_out_fire=1, freezes=1}, +}) + +minetest.register_node("default:lava_flowing", { + description = "Flowing Lava", + inventory_image = minetest.inventorycube("default_lava.png"), + drawtype = "flowingliquid", + tiles = {"default_lava.png"}, + special_tiles = { + { + image="default_lava_flowing_animated.png", + backface_culling=false, + animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=3.3} + }, + { + image="default_lava_flowing_animated.png", + backface_culling=true, + animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=3.3} + }, + }, + paramtype = "light", + paramtype2 = "flowingliquid", + light_source = LIGHT_MAX - 1, + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + drop = "", + drowning = 1, + liquidtype = "flowing", + liquid_alternative_flowing = "default:lava_flowing", + liquid_alternative_source = "default:lava_source", + liquid_viscosity = LAVA_VISC, + liquid_renewable = false, + damage_per_second = 4*2, + post_effect_color = {a=192, r=255, g=64, b=0}, + groups = {lava=3, liquid=2, hot=3, igniter=1, not_in_creative_inventory=1}, +}) + +minetest.register_node("default:lava_source", { + description = "Lava Source", + inventory_image = minetest.inventorycube("default_lava.png"), + drawtype = "liquid", + tiles = { + {name="default_lava_source_animated.png", animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=3.0}} + }, + special_tiles = { + -- New-style lava source material (mostly unused) + { + name="default_lava_source_animated.png", + animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=3.0}, + backface_culling = false, + } + }, + paramtype = "light", + light_source = LIGHT_MAX - 1, + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + drop = "", + drowning = 1, + liquidtype = "source", + liquid_alternative_flowing = "default:lava_flowing", + liquid_alternative_source = "default:lava_source", + liquid_viscosity = LAVA_VISC, + liquid_renewable = false, + damage_per_second = 4*2, + post_effect_color = {a=192, r=255, g=64, b=0}, + groups = {lava=3, liquid=2, hot=3, igniter=1}, +}) + +minetest.register_node("default:torch", { + description = "Torch", + drawtype = "torchlike", + --tiles = {"default_torch_on_floor.png", "default_torch_on_ceiling.png", "default_torch.png"}, + tiles = { + {name="default_torch_on_floor_animated.png", animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=3.0}}, + {name="default_torch_on_ceiling_animated.png", animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=3.0}}, + {name="default_torch_animated.png", animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=3.0}} + }, + inventory_image = "default_torch_on_floor.png", + wield_image = "default_torch_on_floor.png", + paramtype = "light", + paramtype2 = "wallmounted", + sunlight_propagates = true, + is_ground_content = false, + walkable = false, + light_source = LIGHT_MAX-1, + selection_box = { + type = "wallmounted", + wall_top = {-0.1, 0.5-0.6, -0.1, 0.1, 0.5, 0.1}, + wall_bottom = {-0.1, -0.5, -0.1, 0.1, -0.5+0.6, 0.1}, + wall_side = {-0.5, -0.3, -0.1, -0.5+0.3, 0.3, 0.1}, + }, + groups = {choppy=2,dig_immediate=3,flammable=1,attached_node=1,hot=2}, + legacy_wallmounted = true, + sounds = default.node_sound_defaults(), +}) + +minetest.register_node("default:sign_wall", { + description = "Sign", + drawtype = "signlike", + tiles = {"default_sign_wall.png"}, + inventory_image = "default_sign_wall.png", + wield_image = "default_sign_wall.png", + paramtype = "light", + paramtype2 = "wallmounted", + sunlight_propagates = true, + is_ground_content = false, + walkable = false, + selection_box = { + type = "wallmounted", + --wall_top = + --wall_bottom = + --wall_side = + }, + groups = {choppy=2,dig_immediate=2,attached_node=1}, + legacy_wallmounted = true, + sounds = default.node_sound_defaults(), + on_construct = function(pos) + --local n = minetest.get_node(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", "field[text;;${text}]") + meta:set_string("infotext", "\"\"") + end, + on_receive_fields = function(pos, formname, fields, sender) + --print("Sign at "..minetest.pos_to_string(pos).." got "..dump(fields)) + if minetest.is_protected(pos, sender:get_player_name()) then + minetest.record_protection_violation(pos, sender:get_player_name()) + return + end + local meta = minetest.get_meta(pos) + if not fields.text then return end + minetest.log("action", (sender:get_player_name() or "").." wrote \""..fields.text.. + "\" to sign at "..minetest.pos_to_string(pos)) + meta:set_string("text", fields.text) + meta:set_string("infotext", '"'..fields.text..'"') + end, +}) + +default.chest_formspec = + "size[8,9]".. + default.gui_bg.. + default.gui_bg_img.. + default.gui_slots.. + "list[current_name;main;0,0.3;8,4;]".. + "list[current_player;main;0,4.85;8,1;]".. + "list[current_player;main;0,6.08;8,3;8]".. + default.get_hotbar_bg(0,4.85) + +function default.get_locked_chest_formspec(pos) + local spos = pos.x .. "," .. pos.y .. "," ..pos.z + local formspec = + "size[8,9]".. + default.gui_bg.. + default.gui_bg_img.. + default.gui_slots.. + "list[nodemeta:".. spos .. ";main;0,0.3;8,4;]".. + "list[current_player;main;0,4.85;8,1;]".. + "list[current_player;main;0,6.08;8,3;8]".. + default.get_hotbar_bg(0,4.85) + return formspec +end + + +minetest.register_node("default:chest", { + description = "Chest", + tiles = {"default_chest_top.png", "default_chest_top.png", "default_chest_side.png", + "default_chest_side.png", "default_chest_side.png", "default_chest_front.png"}, + paramtype2 = "facedir", + groups = {choppy=2,oddly_breakable_by_hand=2}, + legacy_facedir_simple = true, + is_ground_content = false, + sounds = default.node_sound_wood_defaults(), + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec",default.chest_formspec) + meta:set_string("infotext", "Chest") + local inv = meta:get_inventory() + inv:set_size("main", 8*4) + end, + can_dig = function(pos,player) + local meta = minetest.get_meta(pos); + local inv = meta:get_inventory() + return inv:is_empty("main") + end, + on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + minetest.log("action", player:get_player_name().. + " moves stuff in chest at "..minetest.pos_to_string(pos)) + end, + on_metadata_inventory_put = function(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name().. + " moves stuff to chest at "..minetest.pos_to_string(pos)) + end, + on_metadata_inventory_take = function(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name().. + " takes stuff from chest at "..minetest.pos_to_string(pos)) + end, +}) + +local function has_locked_chest_privilege(meta, player) + if player:get_player_name() ~= meta:get_string("owner") then + return false + end + return true +end + +minetest.register_node("default:chest_locked", { + description = "Locked Chest", + tiles = {"default_chest_top.png", "default_chest_top.png", "default_chest_side.png", + "default_chest_side.png", "default_chest_side.png", "default_chest_lock.png"}, + paramtype2 = "facedir", + groups = {choppy=2,oddly_breakable_by_hand=2}, + legacy_facedir_simple = true, + is_ground_content = false, + sounds = default.node_sound_wood_defaults(), + after_place_node = function(pos, placer) + local meta = minetest.get_meta(pos) + meta:set_string("owner", placer:get_player_name() or "") + meta:set_string("infotext", "Locked Chest (owned by ".. + meta:get_string("owner")..")") + end, + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("infotext", "Locked Chest") + meta:set_string("owner", "") + local inv = meta:get_inventory() + inv:set_size("main", 8*4) + end, + can_dig = function(pos,player) + local meta = minetest.get_meta(pos); + local inv = meta:get_inventory() + return inv:is_empty("main") and has_locked_chest_privilege(meta, player) + end, + allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + local meta = minetest.get_meta(pos) + if not has_locked_chest_privilege(meta, player) then + return 0 + end + return count + end, + allow_metadata_inventory_put = function(pos, listname, index, stack, player) + local meta = minetest.get_meta(pos) + if not has_locked_chest_privilege(meta, player) then + return 0 + end + return stack:get_count() + end, + allow_metadata_inventory_take = function(pos, listname, index, stack, player) + local meta = minetest.get_meta(pos) + if not has_locked_chest_privilege(meta, player) then + return 0 + end + return stack:get_count() + end, + on_metadata_inventory_put = function(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name().. + " moves stuff to locked chest at "..minetest.pos_to_string(pos)) + end, + on_metadata_inventory_take = function(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name().. + " takes stuff from locked chest at "..minetest.pos_to_string(pos)) + end, + on_rightclick = function(pos, node, clicker) + local meta = minetest.get_meta(pos) + if has_locked_chest_privilege(meta, clicker) then + minetest.show_formspec( + clicker:get_player_name(), + "default:chest_locked", + default.get_locked_chest_formspec(pos) + ) + end + end, +}) + +function default.furnace_active(pos, percent, item_percent) + local formspec = + "size[8,8.5]".. + default.gui_bg.. + default.gui_bg_img.. + default.gui_slots.. + "list[current_name;src;2.75,0.5;1,1;]".. + "list[current_name;fuel;2.75,2.5;1,1;]".. + "image[2.75,1.5;1,1;default_furnace_fire_bg.png^[lowpart:".. + (100-percent)..":default_furnace_fire_fg.png]".. + "image[3.75,1.5;1,1;gui_furnace_arrow_bg.png^[lowpart:".. + (item_percent*100)..":gui_furnace_arrow_fg.png^[transformR270]".. + "list[current_name;dst;4.75,0.96;2,2;]".. + "list[current_player;main;0,4.25;8,1;]".. + "list[current_player;main;0,5.5;8,3;8]".. + default.get_hotbar_bg(0,4.25) + return formspec + end + +function default.get_furnace_active_formspec(pos, percent) + local meta = minetest.get_meta(pos)local inv = meta:get_inventory() + local srclist = inv:get_list("src") + local cooked = nil + local aftercooked = nil + if srclist then + cooked, aftercooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist}) + end + local item_percent = 0 + if cooked then + item_percent = meta:get_float("src_time")/cooked.time + end + + return default.furnace_active(pos, percent, item_percent) +end + +default.furnace_inactive_formspec = + "size[8,8.5]".. + default.gui_bg.. + default.gui_bg_img.. + default.gui_slots.. + "list[current_name;src;2.75,0.5;1,1;]".. + "list[current_name;fuel;2.75,2.5;1,1;]".. + "image[2.75,1.5;1,1;default_furnace_fire_bg.png]".. + "image[3.75,1.5;1,1;gui_furnace_arrow_bg.png^[transformR270]".. + "list[current_name;dst;4.75,0.96;2,2;]".. + "list[current_player;main;0,4.25;8,1;]".. + "list[current_player;main;0,5.5;8,3;8]".. + default.get_hotbar_bg(0,4.25) + +minetest.register_node("default:furnace", { + description = "Furnace", + tiles = {"default_furnace_top.png", "default_furnace_bottom.png", "default_furnace_side.png", + "default_furnace_side.png", "default_furnace_side.png", "default_furnace_front.png"}, + paramtype2 = "facedir", + groups = {cracky=2}, + legacy_facedir_simple = true, + is_ground_content = false, + sounds = default.node_sound_stone_defaults(), + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", default.furnace_inactive_formspec) + meta:set_string("infotext", "Furnace") + local inv = meta:get_inventory() + inv:set_size("fuel", 1) + inv:set_size("src", 1) + inv:set_size("dst", 4) + end, + can_dig = function(pos,player) + local meta = minetest.get_meta(pos); + local inv = meta:get_inventory() + if not inv:is_empty("fuel") then + return false + elseif not inv:is_empty("dst") then + return false + elseif not inv:is_empty("src") then + return false + end + return true + end, + allow_metadata_inventory_put = function(pos, listname, index, stack, player) + if minetest.is_protected(pos, player:get_player_name()) then + return 0 + end + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + if listname == "fuel" then + if minetest.get_craft_result({method="fuel",width=1,items={stack}}).time ~= 0 then + if inv:is_empty("src") then + meta:set_string("infotext","Furnace is empty") + end + return stack:get_count() + else + return 0 + end + elseif listname == "src" then + return stack:get_count() + elseif listname == "dst" then + return 0 + end + end, + allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + if minetest.is_protected(pos, player:get_player_name()) then + return 0 + end + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + local stack = inv:get_stack(from_list, from_index) + if to_list == "fuel" then + if minetest.get_craft_result({method="fuel",width=1,items={stack}}).time ~= 0 then + if inv:is_empty("src") then + meta:set_string("infotext","Furnace is empty") + end + return count + else + return 0 + end + elseif to_list == "src" then + return count + elseif to_list == "dst" then + return 0 + end + end, + allow_metadata_inventory_take = function(pos, listname, index, stack, player) + if minetest.is_protected(pos, player:get_player_name()) then + return 0 + end + return stack:get_count() + end, +}) + +minetest.register_node("default:furnace_active", { + description = "Furnace", + tiles = { + "default_furnace_top.png", + "default_furnace_bottom.png", + "default_furnace_side.png", + "default_furnace_side.png", + "default_furnace_side.png", + { + image = "default_furnace_front_active.png", + backface_culling = false, + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 1.5 + }, + } + }, + paramtype2 = "facedir", + light_source = 8, + drop = "default:furnace", + groups = {cracky=2, not_in_creative_inventory=1,hot=1}, + legacy_facedir_simple = true, + is_ground_content = false, + sounds = default.node_sound_stone_defaults(), + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", default.furnace_inactive_formspec) + meta:set_string("infotext", "Furnace"); + local inv = meta:get_inventory() + inv:set_size("fuel", 1) + inv:set_size("src", 1) + inv:set_size("dst", 4) + end, + can_dig = function(pos,player) + local meta = minetest.get_meta(pos); + local inv = meta:get_inventory() + if not inv:is_empty("fuel") then + return false + elseif not inv:is_empty("dst") then + return false + elseif not inv:is_empty("src") then + return false + end + return true + end, + allow_metadata_inventory_put = function(pos, listname, index, stack, player) + if minetest.is_protected(pos, player:get_player_name()) then + return 0 + end + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + if listname == "fuel" then + if minetest.get_craft_result({method="fuel",width=1,items={stack}}).time ~= 0 then + if inv:is_empty("src") then + meta:set_string("infotext","Furnace is empty") + end + return stack:get_count() + else + return 0 + end + elseif listname == "src" then + return stack:get_count() + elseif listname == "dst" then + return 0 + end + end, + allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + if minetest.is_protected(pos, player:get_player_name()) then + return 0 + end + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + local stack = inv:get_stack(from_list, from_index) + if to_list == "fuel" then + if minetest.get_craft_result({method="fuel",width=1,items={stack}}).time ~= 0 then + if inv:is_empty("src") then + meta:set_string("infotext","Furnace is empty") + end + return count + else + return 0 + end + elseif to_list == "src" then + return count + elseif to_list == "dst" then + return 0 + end + end, + allow_metadata_inventory_take = function(pos, listname, index, stack, player) + if minetest.is_protected(pos, player:get_player_name()) then + return 0 + end + return stack:get_count() + end, +}) + +local function swap_node(pos,name) + local node = minetest.get_node(pos) + if node.name == name then + return + end + node.name = name + minetest.swap_node(pos,node) +end + +minetest.register_abm({ + nodenames = {"default:furnace","default:furnace_active"}, + interval = 1.0, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + local meta = minetest.get_meta(pos) + for i, name in ipairs({ + "fuel_totaltime", + "fuel_time", + "src_totaltime", + "src_time" + }) do + if meta:get_string(name) == "" then + meta:set_float(name, 0.0) + end + end + + local inv = meta:get_inventory() + + local srclist = inv:get_list("src") + local cooked = nil + local aftercooked + + if srclist then + cooked, aftercooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist}) + end + + local was_active = false + + if meta:get_float("fuel_time") < meta:get_float("fuel_totaltime") then + was_active = true + meta:set_float("fuel_time", meta:get_float("fuel_time") + 1) + meta:set_float("src_time", meta:get_float("src_time") + 1) + if cooked and cooked.item and meta:get_float("src_time") >= cooked.time then + -- check if there's room for output in "dst" list + if inv:room_for_item("dst",cooked.item) then + -- Put result in "dst" list + inv:add_item("dst", cooked.item) + -- take stuff from "src" list + inv:set_stack("src", 1, aftercooked.items[1]) + else + --print("Could not insert '"..cooked.item:to_string().."'") + end + meta:set_string("src_time", 0) + end + end + + if meta:get_float("fuel_time") < meta:get_float("fuel_totaltime") then + local percent = math.floor(meta:get_float("fuel_time") / + meta:get_float("fuel_totaltime") * 100) + meta:set_string("infotext","Furnace active: "..percent.."%") + swap_node(pos,"default:furnace_active") + meta:set_string("formspec",default.get_furnace_active_formspec(pos, percent)) + return + end + + local fuel = nil + local afterfuel + local cooked = nil + local fuellist = inv:get_list("fuel") + local srclist = inv:get_list("src") + + if srclist then + cooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist}) + end + if fuellist then + fuel, afterfuel = minetest.get_craft_result({method = "fuel", width = 1, items = fuellist}) + end + + if not fuel or fuel.time <= 0 then + meta:set_string("infotext","Furnace out of fuel") + swap_node(pos,"default:furnace") + meta:set_string("formspec", default.furnace_inactive_formspec) + return + end + + if cooked.item:is_empty() then + if was_active then + meta:set_string("infotext","Furnace is empty") + swap_node(pos,"default:furnace") + meta:set_string("formspec", default.furnace_inactive_formspec) + end + return + end + + meta:set_string("fuel_totaltime", fuel.time) + meta:set_string("fuel_time", 0) + + inv:set_stack("fuel", 1, afterfuel.items[1]) + end, +}) + +minetest.register_node("default:cobble", { + description = "Cobblestone", + tiles = {"default_cobble.png"}, + is_ground_content = true, + groups = {cracky=3, stone=2}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:desert_cobble", { + description = "Desert Cobblestone", + tiles = {"default_desert_cobble.png"}, + is_ground_content = true, + groups = {cracky=3, stone=2}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:mossycobble", { + description = "Mossy Cobblestone", + tiles = {"default_mossycobble.png"}, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:coalblock", { + description = "Coal Block", + tiles = {"default_coal_block.png"}, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:steelblock", { + description = "Steel Block", + tiles = {"default_steel_block.png"}, + is_ground_content = true, + groups = {cracky=1,level=2}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:copperblock", { + description = "Copper Block", + tiles = {"default_copper_block.png"}, + is_ground_content = true, + groups = {cracky=1,level=2}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:bronzeblock", { + description = "Bronze Block", + tiles = {"default_bronze_block.png"}, + is_ground_content = true, + groups = {cracky=1,level=2}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:mese", { + description = "Mese Block", + tiles = {"default_mese_block.png"}, + is_ground_content = true, + groups = {cracky=1,level=2}, + sounds = default.node_sound_stone_defaults(), +}) +minetest.register_alias("default:mese_block", "default:mese") + +minetest.register_node("default:goldblock", { + description = "Gold Block", + tiles = {"default_gold_block.png"}, + is_ground_content = true, + groups = {cracky=1}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:diamondblock", { + description = "Diamond Block", + tiles = {"default_diamond_block.png"}, + is_ground_content = true, + groups = {cracky=1,level=3}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:obsidian_glass", { + description = "Obsidian Glass", + drawtype = "glasslike", + tiles = {"default_obsidian_glass.png"}, + paramtype = "light", + is_ground_content = false, + sunlight_propagates = true, + sounds = default.node_sound_glass_defaults(), + groups = {cracky=3,oddly_breakable_by_hand=3}, +}) + +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}, +}) + +minetest.register_node("default:nyancat", { + description = "Nyan Cat", + tiles = {"default_nc_side.png", "default_nc_side.png", "default_nc_side.png", + "default_nc_side.png", "default_nc_back.png", "default_nc_front.png"}, + paramtype2 = "facedir", + groups = {cracky=2}, + is_ground_content = false, + legacy_facedir_simple = true, + sounds = default.node_sound_defaults(), +}) + +minetest.register_node("default:nyancat_rainbow", { + description = "Nyan Cat Rainbow", + tiles = {"default_nc_rb.png^[transformR90", "default_nc_rb.png^[transformR90", + "default_nc_rb.png", "default_nc_rb.png"}, + paramtype2 = "facedir", + groups = {cracky=2}, + is_ground_content = false, + sounds = default.node_sound_defaults(), +}) + +minetest.register_node("default:sapling", { + description = "Sapling", + drawtype = "plantlike", + visual_scale = 1.0, + tiles = {"default_sapling.png"}, + inventory_image = "default_sapling.png", + wield_image = "default_sapling.png", + paramtype = "light", + walkable = false, + is_ground_content = true, + 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(), +}) + +minetest.register_node("default:apple", { + description = "Apple", + drawtype = "plantlike", + visual_scale = 1.0, + tiles = {"default_apple.png"}, + inventory_image = "default_apple.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + is_ground_content = true, + selection_box = { + type = "fixed", + fixed = {-0.2, -0.5, -0.2, 0.2, 0, 0.2} + }, + groups = {fleshy=3,dig_immediate=3,flammable=2,leafdecay=3,leafdecay_drop=1}, + on_use = minetest.item_eat(1), + sounds = default.node_sound_leaves_defaults(), + after_place_node = function(pos, placer, itemstack) + if placer:is_player() then + minetest.set_node(pos, {name="default:apple", param2=1}) + end + end, +}) + +minetest.register_node("default:dry_shrub", { + description = "Dry Shrub", + drawtype = "plantlike", + waving = 1, + visual_scale = 1.0, + tiles = {"default_dry_shrub.png"}, + inventory_image = "default_dry_shrub.png", + wield_image = "default_dry_shrub.png", + paramtype = "light", + walkable = false, + is_ground_content = true, + buildable_to = true, + groups = {snappy=3,flammable=3,attached_node=1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}, + }, +}) + +minetest.register_node("default:grass_1", { + description = "Grass", + drawtype = "plantlike", + waving = 1, + tiles = {"default_grass_1.png"}, + -- use a bigger inventory image + inventory_image = "default_grass_3.png", + wield_image = "default_grass_3.png", + paramtype = "light", + walkable = false, + is_ground_content = true, + buildable_to = true, + groups = {snappy=3,flammable=3,flora=1,attached_node=1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}, + }, + on_place = function(itemstack, placer, pointed_thing) + -- place a random grass node + local stack = ItemStack("default:grass_"..math.random(1,5)) + local ret = minetest.item_place(stack, placer, pointed_thing) + return ItemStack("default:grass_1 "..itemstack:get_count()-(1-ret:get_count())) + end, +}) + +for i=2,5 do + minetest.register_node("default:grass_"..i, { + description = "Grass", + drawtype = "plantlike", + waving = 1, + tiles = {"default_grass_"..i..".png"}, + inventory_image = "default_grass_"..i..".png", + wield_image = "default_grass_"..i..".png", + paramtype = "light", + walkable = false, + buildable_to = true, + is_ground_content = true, + drop = "default:grass_1", + groups = {snappy=3,flammable=3,flora=1,attached_node=1,not_in_creative_inventory=1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}, + }, + }) +end + +minetest.register_node("default:ice", { + description = "Ice", + tiles = {"default_ice.png"}, + is_ground_content = true, + paramtype = "light", + freezemelt = "default:water_source", + groups = {cracky=3, melts=1}, + sounds = default.node_sound_glass_defaults(), +}) + +minetest.register_node("default:snow", { + description = "Snow", + tiles = {"default_snow.png"}, + inventory_image = "default_snowball.png", + wield_image = "default_snowball.png", + is_ground_content = true, + paramtype = "light", + buildable_to = true, + leveled = 7, + drawtype = "nodebox", + freezemelt = "default:water_flowing", + node_box = { + type = "leveled", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.5+2/16, 0.5}, + }, + }, + groups = {crumbly=3,falling_node=1, melts=1, float=1}, + sounds = default.node_sound_dirt_defaults({ + footstep = {name="default_snow_footstep", gain=0.25}, + dug = {name="default_snow_footstep", gain=0.75}, + }), + on_construct = function(pos) + pos.y = pos.y - 1 + if minetest.get_node(pos).name == "default:dirt_with_grass" then + minetest.set_node(pos, {name="default:dirt_with_snow"}) + end + end, +}) +minetest.register_alias("snow", "default:snow") + +minetest.register_node("default:snowblock", { + description = "Snow Block", + tiles = {"default_snow.png"}, + is_ground_content = true, + freezemelt = "default:water_source", + groups = {crumbly=3, melts=1}, + sounds = default.node_sound_dirt_defaults({ + footstep = {name="default_snow_footstep", gain=0.25}, + dug = {name="default_snow_footstep", gain=0.75}, + }), +}) diff --git a/games/minetime_game/mods/default/player.lua b/games/minetime_game/mods/default/player.lua new file mode 100644 index 0000000..cee08e4 --- /dev/null +++ b/games/minetime_game/mods/default/player.lua @@ -0,0 +1,295 @@ +-- Minetest 0.4 mod: player +-- See README.txt for licensing and other information. + +--[[ + +API +--- + +default.player_register_model(name, def) +^ Register a new model to be used by players. +^ is the model filename such as "character.x", "foo.b3d", etc. +^ See Model Definition below for format of . + +default.registered_player_models[name] +^ See Model Definition below for format. + +default.player_set_model(player, model_name) +^ is a PlayerRef. +^ is a model registered with player_register_model. + +default.player_set_animation(player, anim_name [, speed]) +^ is a PlayerRef. +^ is the name of the animation. +^ is in frames per second. If nil, default from the model is used + +default.player_set_textures(player, textures) +^ is a PlayerRef. +^ is an array of textures +^ If is nil, the default textures from the model def are used + +default.player_get_animation(player) +^ is a PlayerRef. +^ Returns a table containing fields "model", "textures" and "animation". +^ Any of the fields of the returned table may be nil. + +Model Definition +---------------- + +model_def = { + animation_speed = 30, -- Default animation speed, in FPS. + textures = {"character.png", }, -- Default array of textures. + visual_size = {x=1, y=1,}, -- Used to scale the model. + animations = { + -- = { x=, y=, }, + foo = { x= 0, y=19, }, + bar = { x=20, y=39, }, + -- ... + }, +} + +]] + +-- Player animation blending +-- Note: This is currently broken due to a bug in Irrlicht, leave at 0 +local animation_blend = 0 + +default.registered_player_models = { } + +-- Local for speed. +local models = default.registered_player_models + +function default.player_register_model(name, def) + models[name] = def +end + +-- Default player appearance +default.player_register_model("characterm.b3d", { + animation_speed = 30, + textures = {"character.png", }, + animations = { + -- Standard animations. + stand = { x= 0, y= 79, }, + lay = { x=162, y=166, }, + walk = { x=168, y=187, }, + mine = { x=189, y=198, }, + walk_mine = { x=200, y=219, }, + -- Extra animations (not currently used by the game). + sit = { x= 81, y=160, }, + }, +}) + +-- Player stats and animations +local player_model = {} +local player_textures = {} +local player_anim = {} +local player_sneak = {} + +function default.player_get_animation(player) + local name = player:get_player_name() + return { + model = player_model[name], + textures = player_textures[name], + animation = player_anim[name], + } +end + +-- Called when a player's appearance needs to be updated +function default.player_set_model(player, model_name) + local name = player:get_player_name() + local model = models[model_name] + if model then + if player_model[name] == model_name then + return + end + player:set_properties({ + mesh = model_name, + textures = player_textures[name] or model.textures, + visual = "mesh", + visual_size = model.visual_size or {x=1, y=1}, + }) + default.player_set_animation(player, "stand") + else + player:set_properties({ + textures = { "player.png", "player_back.png", }, + visual = "upright_sprite", + }) + end + player_model[name] = model_name +end + +function default.player_set_textures(player, textures) + local name = player:get_player_name() + player_textures[name] = textures + player:set_properties({textures = textures,}) +end + +function default.player_set_animation(player, anim_name, speed) + local name = player:get_player_name() + if player_anim[name] == anim_name then + return + end + local model = player_model[name] and models[player_model[name]] + if not (model and model.animations[anim_name]) then + return + end + local anim = model.animations[anim_name] + player_anim[name] = anim_name + player:set_animation(anim, speed or model.animation_speed, animation_blend) +end + +minetest.register_on_leaveplayer(function(player) + local name = player:get_player_name() + player_model[name] = nil + player_anim[name] = nil + player_textures[name] = nil +end) + +-- Localize for better performance. +local player_set_animation = default.player_set_animation + +-- Check each player and apply animations +minetest.register_globalstep(function(dtime) + for _, player in pairs(minetest.get_connected_players()) do + local name = player:get_player_name() + local model_name = player_model[name] + local model = model_name and models[model_name] + if model then + local controls = player:get_player_control() + local walking = false + local animation_speed_mod = model.animation_speed or 30 + + -- Determine if the player is walking + if controls.up or controls.down or controls.left or controls.right then + walking = true + end + + -- Determine if the player is sneaking, and reduce animation speed if so + if controls.sneak then + animation_speed_mod = animation_speed_mod / 2 + end + + -- Apply animations based on what the player is doing + if player:get_hp() == 0 then + player_set_animation(player, "lay") + elseif walking then + if player_sneak[name] ~= controls.sneak then + player_anim[name] = nil + player_sneak[name] = controls.sneak + end + if controls.LMB then + player_set_animation(player, "walk_mine", animation_speed_mod) + else + player_set_animation(player, "walk", animation_speed_mod) + end + elseif controls.LMB then + player_set_animation(player, "mine") + else + player_set_animation(player, "stand", animation_speed_mod) + end + end + end +end) + +local gender = {} +gender.players = {} + +gender.file = minetest.get_worldpath() .. "/player_genders" +gender.changed = false + +gender.formname = "gender:selection" +gender.formspec = ( + "size[8,2]label[2.1,0;Do you want boy or a girl skin?]".. + "button_exit[0,0;4,4;boy;Boy]".. + "button_exit[4,0;4,4;girl;Girl]" +) + +function gender.load_data() + local input = io.open(gender.file, "r") + if not input then return end + + for line in input:lines() do + if line ~= "" then + local data = line:split(" ") + gender.players[data[1]] = data[2] + end + end + + io.close(input) +end + +function gender.save_data() + if not gender.changed then return end + + local output = io.open(gender.file, "w") + for k,v in pairs(gender.players) do + output:write(k.." "..v.."\n") + end + io.close(output) + gender.changed = false +end + +gender.load_data() + +minetest.register_on_player_receive_fields(function(player, formname, fields) + if gender.formname ~= formname then return end + local plname = player:get_player_name() + + if fields.boy then -- Change skin to boy. + player:set_properties({ + visual = "mesh", + mesh = "character.b3d", + textures = {"characterm.png"}, + visual_size = {x=1, y=1}, + }) + minetest.chat_send_player(plname, "Set player skin to boy!") + + gender.changed = true + gender.players[plname] = "m" + elseif fields.girl then -- Change skin to girl. + player:set_properties({ + visual = "mesh", + mesh = "characterf.b3d", + textures = {"characterf.png"}, + visual_size = {x=1, y=1}, + }) + minetest.chat_send_player(plname, "Set player skin to girl!") + + gender.changed = true + gender.players[plname] = "f" + end + gender.save_data() +end) + +minetest.register_chatcommand("gender", { + description = "Set your player skin.", + func = function(name) + minetest.show_formspec(name, gender.formname, gender.formspec) + end +}) + +-- Update appearance when the player joins +minetest.register_on_joinplayer(function(player) + local plname = player:get_player_name() + player:set_local_animation({x=0, y=79}, {x=168, y=187}, {x=189, y=198}, {x=200, y=219}, 30) + if gender.players[plname] == "m" then + player:set_properties({ + visual = "mesh", + mesh = "character.b3d", + textures = {"characterm.png"}, + visual_size = {x=1, y=1}, + }) + minetest.chat_send_player(plname, "Your gender is set to boy, to change type /gender ") + elseif gender.players[plname] == "f" then + player:set_properties({ + visual = "mesh", + mesh = "characterf.b3d", + textures = {"characterf.png"}, + visual_size = {x=1, y=1}, + }) + minetest.chat_send_player(plname, "Your gender is set to girl, to change type /gender ") + else + minetest.chat_send_player(plname, "Please set your gender via /boy or /girl, thank you. You can also ignore this message and use the default male model. This message will be shown again when you rejoin.") + minetest.show_formspec(plname, gender.formname, gender.formspec) + end +end) \ No newline at end of file diff --git a/games/minetime_game/mods/default/replacer.lua b/games/minetime_game/mods/default/replacer.lua new file mode 100644 index 0000000..a849086 --- /dev/null +++ b/games/minetime_game/mods/default/replacer.lua @@ -0,0 +1,232 @@ + +replacer = {}; + + +minetest.register_tool( "default:replacer", +{ + description = "Node replacement tool", + groups = {}, + inventory_image = "replacer_replacer.png", + wield_image = "", + wield_scale = {x=1,y=1,z=1}, + stack_max = 1, -- it has to store information - thus only one can be stacked + liquids_pointable = true, -- it is ok to painit in/with water + -- the tool_capabilities are of nearly no intrest here + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=0, + groupcaps={ + -- For example: + fleshy={times={[2]=0.80, [3]=0.40}, maxwear=0.05, maxlevel=1}, + snappy={times={[2]=0.80, [3]=0.40}, maxwear=0.05, maxlevel=1}, + choppy={times={[3]=0.90}, maxwear=0.05, maxlevel=0} + } + }, + node_placement_prediction = nil, + metadata = "default:dirt", -- default replacement: common dirt + + on_place = function(itemstack, placer, pointed_thing) + + if( placer == nil or pointed_thing == nil) then + return itemstack; -- nothing consumed + end + local name = placer:get_player_name(); + --minetest.chat_send_player( name, "You PLACED this on "..minetest.serialize( pointed_thing ).."."); + + local keys=placer:get_player_control(); + + -- just place the stored node if now new one is to be selected + if( not( keys["sneak"] )) then + + return replacer.replace( itemstack, placer, pointed_thing, 0 ); end + + + if( pointed_thing.type ~= "node" ) then + minetest.chat_send_player( name, " Error: No node selected."); + return nil; + end + + local pos = minetest.get_pointed_thing_position( pointed_thing, under ); + local node = minetest.env:get_node_or_nil( pos ); + + --minetest.chat_send_player( name, " Target node: "..minetest.serialize( node ).." at pos "..minetest.serialize( pos ).."."); + + local item = itemstack:to_table(); + -- make sure metadata is always set + if( node ~= nil and node.name ) then + item[ "metadata" ] = node.name..' '..node.param1..' '..node.param2; + else + item[ "metadata" ] = "default:dirt 0 0"; + end + itemstack:replace( item ); + + minetest.chat_send_player( name, "Node replacement tool set to: '"..item[ "metadata" ].."'."); + + return itemstack; -- nothing consumed but data changed + end, + + +-- on_drop = func(itemstack, dropper, pos), + + on_use = function(itemstack, user, pointed_thing) + + return replacer.replace( itemstack, user, pointed_thing, above ); + end, +}) + + +replacer.replace = function( itemstack, user, pointed_thing, mode ) + + if( user == nil or pointed_thing == nil) then + return nil; + end + local name = user:get_player_name(); + --minetest.chat_send_player( name, "You USED this on "..minetest.serialize( pointed_thing ).."."); + + if( pointed_thing.type ~= "node" ) then + minetest.chat_send_player( name, " Error: No node."); + return nil; + end + + local pos = minetest.get_pointed_thing_position( pointed_thing, mode ); + local node = minetest.env:get_node_or_nil( pos ); + + --minetest.chat_send_player( name, " Target node: "..minetest.serialize( node ).." at pos "..minetest.serialize( pos ).."."); + + if( node == nil ) then + + minetest.chat_send_player( name, "Error: Target node not yet loaded. Please wait a moment for the server to catch up."); + return nil; + end + + + local item = itemstack:to_table(); + + -- make sure it is defined + if( not( item[ "metadata"] ) or item["metadata"]=="" ) then + item["metadata"] = "default:dirt 0 0"; + end + + -- regain information about nodename, param1 and param2 + local daten = item[ "metadata"]:split( " " ); + -- the old format stored only the node name + if( #daten < 3 ) then + daten[2] = 0; + daten[3] = 0; + end + + -- if someone else owns that node then we can not change it + if( replacer_homedecor_node_is_owned(pos, user)) then + + return nil; + end + + -- do not replace if there is nothing to be done + if( node.name == daten[1] ) then + + -- the node itshelf remains the same, but the orientation was changed + if( node.param1 ~= daten[2] or node.param2 ~= daten[3] ) then + minetest.env:add_node( pos, { name = node.name, param1 = daten[2], param2 = daten[3] } ); + end + + return nil; + end + + + -- in survival mode, the player has to provide the node he wants to be placed + if( not(minetest.setting_getbool("creative_mode") )) then + + -- players usually don't carry dirt_with_grass around; it's safe to assume normal dirt here + -- fortionately, dirt and dirt_with_grass does not make use of rotation + if( daten[1] == "default:dirt_with_grass" ) then + daten[1] = "default:dirt"; + item["metadata"] = "default:dirt 0 0"; + end + + -- does the player carry at least one of the desired nodes with him? + if( not( user:get_inventory():contains_item("main", daten[1]))) then + + + minetest.chat_send_player( name, "You have no further '"..( daten[1] or "?" ).."'. Replacement failed."); + return nil; + end + + + + -- give the player the item by simulating digging if possible + if( node.name ~= "air" + and node.name ~= "ignore" + and node.name ~= "default:lava_source" + and node.name ~= "default:lava_flowing" + and node.name ~= "default:water_source" + and node.name ~= "default:water_flowing" ) then + + minetest.node_dig( pos, node, user ); + + local digged_node = minetest.env:get_node_or_nil( pos ); + if( not( digged_node ) + or digged_node.name == node.name ) then + + minetest.chat_send_player( name, "Replacing '"..( node.name or "air" ).."' with '"..( item[ "metadata"] or "?" ).."' failed. Unable to remove old node."); + return nil; + end + + end + + -- consume the item + user:get_inventory():remove_item("main", daten[1].." 1"); + + --user:get_inventory():add_item( "main", node.name.." 1"); + end + + --minetest.chat_send_player( name, "Replacing node '"..( node.name or "air" ).."' with '"..( item[ "metadata"] or "?" ).."'."); + + --minetest.env:place_node( pos, { name = item[ "metadata" ] } ); + minetest.env:add_node( pos, { name = daten[1], param1 = daten[2], param2 = daten[3] } ); + return nil; -- no item shall be removed from inventory + end + + +minetest.register_craft({ + output = 'default:replacer', + recipe = { + { 'default:chest', '', '' }, + { '', 'default:stick', '' }, + { '', '', 'default:chest' }, + } +}) + +function replacer_homedecor_node_is_owned(pos, placer) + + if type( minetest.is_protected == "function") then + return minetest.is_protected( pos, placer:get_player_name() ); + end + + + local ownername = false + if type(IsPlayerNodeOwner) == "function" then -- node_ownership mod + if HasOwner(pos, placer) then -- returns true if the node is owned + if not IsPlayerNodeOwner(pos, placer:get_player_name()) then + if type(getLastOwner) == "function" then -- ...is an old version + ownername = getLastOwner(pos) + elseif type(GetNodeOwnerName) == "function" then -- ...is a recent version + ownername = GetNodeOwnerName(pos) + else + ownername = "someone" + end + end + end + + elseif type(isprotect)=="function" then -- glomie's protection mod + if not isprotect(5, pos, placer) then + ownername = "someone" + end + end + + if ownername ~= false then + minetest.chat_send_player( placer:get_player_name(), "Sorry, "..ownername.." owns that spot." ) + return true + else + return false + end +end \ No newline at end of file diff --git a/games/minetime_game/mods/default/sounds/default_break_glass.1.ogg b/games/minetime_game/mods/default/sounds/default_break_glass.1.ogg new file mode 100644 index 0000000..b1ccc5f Binary files /dev/null and b/games/minetime_game/mods/default/sounds/default_break_glass.1.ogg differ diff --git a/games/minetime_game/mods/default/sounds/default_break_glass.2.ogg b/games/minetime_game/mods/default/sounds/default_break_glass.2.ogg new file mode 100644 index 0000000..b6cc9e8 Binary files /dev/null and b/games/minetime_game/mods/default/sounds/default_break_glass.2.ogg differ diff --git a/games/minetime_game/mods/default/sounds/default_break_glass.3.ogg b/games/minetime_game/mods/default/sounds/default_break_glass.3.ogg new file mode 100644 index 0000000..ae6a6bf Binary files /dev/null and b/games/minetime_game/mods/default/sounds/default_break_glass.3.ogg differ diff --git a/games/minetime_game/mods/default/sounds/default_cool_lava.1.ogg b/games/minetime_game/mods/default/sounds/default_cool_lava.1.ogg new file mode 100644 index 0000000..42506dd Binary files /dev/null and b/games/minetime_game/mods/default/sounds/default_cool_lava.1.ogg differ diff --git a/games/minetime_game/mods/default/sounds/default_cool_lava.2.ogg b/games/minetime_game/mods/default/sounds/default_cool_lava.2.ogg new file mode 100644 index 0000000..2747ab8 Binary files /dev/null and b/games/minetime_game/mods/default/sounds/default_cool_lava.2.ogg differ diff --git a/games/minetime_game/mods/default/sounds/default_cool_lava.3.ogg b/games/minetime_game/mods/default/sounds/default_cool_lava.3.ogg new file mode 100644 index 0000000..8baeac3 Binary files /dev/null and b/games/minetime_game/mods/default/sounds/default_cool_lava.3.ogg differ diff --git a/games/minetime_game/mods/default/sounds/default_dig_choppy.ogg b/games/minetime_game/mods/default/sounds/default_dig_choppy.ogg new file mode 100644 index 0000000..e2ecd84 Binary files /dev/null and b/games/minetime_game/mods/default/sounds/default_dig_choppy.ogg differ diff --git a/games/minetime_game/mods/default/sounds/default_dig_cracky.ogg b/games/minetime_game/mods/default/sounds/default_dig_cracky.ogg new file mode 100644 index 0000000..da11679 Binary files /dev/null and b/games/minetime_game/mods/default/sounds/default_dig_cracky.ogg differ diff --git a/games/minetime_game/mods/default/sounds/default_dig_crumbly.ogg b/games/minetime_game/mods/default/sounds/default_dig_crumbly.ogg new file mode 100644 index 0000000..a0b2a1f Binary files /dev/null and b/games/minetime_game/mods/default/sounds/default_dig_crumbly.ogg differ diff --git a/games/minetime_game/mods/default/sounds/default_dig_dig_immediate.ogg b/games/minetime_game/mods/default/sounds/default_dig_dig_immediate.ogg new file mode 100644 index 0000000..e65d766 Binary files /dev/null and b/games/minetime_game/mods/default/sounds/default_dig_dig_immediate.ogg differ diff --git a/games/minetime_game/mods/default/sounds/default_dig_oddly_breakable_by_hand.ogg b/games/minetime_game/mods/default/sounds/default_dig_oddly_breakable_by_hand.ogg new file mode 100644 index 0000000..ef4d7b1 Binary files /dev/null and b/games/minetime_game/mods/default/sounds/default_dig_oddly_breakable_by_hand.ogg differ diff --git a/games/minetime_game/mods/default/sounds/default_dirt_footstep.1.ogg b/games/minetime_game/mods/default/sounds/default_dirt_footstep.1.ogg new file mode 100644 index 0000000..84a197d Binary files /dev/null and b/games/minetime_game/mods/default/sounds/default_dirt_footstep.1.ogg differ diff --git a/games/minetime_game/mods/default/sounds/default_dirt_footstep.2.ogg b/games/minetime_game/mods/default/sounds/default_dirt_footstep.2.ogg new file mode 100644 index 0000000..2e23b8a Binary files /dev/null and b/games/minetime_game/mods/default/sounds/default_dirt_footstep.2.ogg differ diff --git a/games/minetime_game/mods/default/sounds/default_dug_node.1.ogg b/games/minetime_game/mods/default/sounds/default_dug_node.1.ogg new file mode 100644 index 0000000..c04975d Binary files /dev/null and b/games/minetime_game/mods/default/sounds/default_dug_node.1.ogg differ diff --git a/games/minetime_game/mods/default/sounds/default_dug_node.2.ogg b/games/minetime_game/mods/default/sounds/default_dug_node.2.ogg new file mode 100644 index 0000000..9f20926 Binary files /dev/null and b/games/minetime_game/mods/default/sounds/default_dug_node.2.ogg differ diff --git a/games/minetime_game/mods/default/sounds/default_glass_footstep.ogg b/games/minetime_game/mods/default/sounds/default_glass_footstep.ogg new file mode 100644 index 0000000..191287a Binary files /dev/null and b/games/minetime_game/mods/default/sounds/default_glass_footstep.ogg differ diff --git a/games/minetime_game/mods/default/sounds/default_grass_footstep.1.ogg b/games/minetime_game/mods/default/sounds/default_grass_footstep.1.ogg new file mode 100644 index 0000000..22d1ad6 Binary files /dev/null and b/games/minetime_game/mods/default/sounds/default_grass_footstep.1.ogg differ diff --git a/games/minetime_game/mods/default/sounds/default_grass_footstep.2.ogg b/games/minetime_game/mods/default/sounds/default_grass_footstep.2.ogg new file mode 100644 index 0000000..4ccd8a0 Binary files /dev/null and b/games/minetime_game/mods/default/sounds/default_grass_footstep.2.ogg differ diff --git a/games/minetime_game/mods/default/sounds/default_grass_footstep.3.ogg b/games/minetime_game/mods/default/sounds/default_grass_footstep.3.ogg new file mode 100644 index 0000000..20db84e Binary files /dev/null and b/games/minetime_game/mods/default/sounds/default_grass_footstep.3.ogg differ diff --git a/games/minetime_game/mods/default/sounds/default_gravel_footstep.1.ogg b/games/minetime_game/mods/default/sounds/default_gravel_footstep.1.ogg new file mode 100644 index 0000000..8d260ce Binary files /dev/null and b/games/minetime_game/mods/default/sounds/default_gravel_footstep.1.ogg differ diff --git a/games/minetime_game/mods/default/sounds/default_gravel_footstep.2.ogg b/games/minetime_game/mods/default/sounds/default_gravel_footstep.2.ogg new file mode 100644 index 0000000..2aba2c6 Binary files /dev/null and b/games/minetime_game/mods/default/sounds/default_gravel_footstep.2.ogg differ diff --git a/games/minetime_game/mods/default/sounds/default_gravel_footstep.3.ogg b/games/minetime_game/mods/default/sounds/default_gravel_footstep.3.ogg new file mode 100644 index 0000000..1bcd8a1 Binary files /dev/null and b/games/minetime_game/mods/default/sounds/default_gravel_footstep.3.ogg differ diff --git a/games/minetime_game/mods/default/sounds/default_gravel_footstep.4.ogg b/games/minetime_game/mods/default/sounds/default_gravel_footstep.4.ogg new file mode 100644 index 0000000..696c9ff Binary files /dev/null and b/games/minetime_game/mods/default/sounds/default_gravel_footstep.4.ogg differ diff --git a/games/minetime_game/mods/default/sounds/default_hard_footstep.1.ogg b/games/minetime_game/mods/default/sounds/default_hard_footstep.1.ogg new file mode 100644 index 0000000..1748bc5 Binary files /dev/null and b/games/minetime_game/mods/default/sounds/default_hard_footstep.1.ogg differ diff --git a/games/minetime_game/mods/default/sounds/default_hard_footstep.2.ogg b/games/minetime_game/mods/default/sounds/default_hard_footstep.2.ogg new file mode 100644 index 0000000..fe39fd7 Binary files /dev/null and b/games/minetime_game/mods/default/sounds/default_hard_footstep.2.ogg differ diff --git a/games/minetime_game/mods/default/sounds/default_hard_footstep.3.ogg b/games/minetime_game/mods/default/sounds/default_hard_footstep.3.ogg new file mode 100644 index 0000000..5030e06 Binary files /dev/null and b/games/minetime_game/mods/default/sounds/default_hard_footstep.3.ogg differ diff --git a/games/minetime_game/mods/default/sounds/default_place_node.1.ogg b/games/minetime_game/mods/default/sounds/default_place_node.1.ogg new file mode 100644 index 0000000..46b9756 Binary files /dev/null and b/games/minetime_game/mods/default/sounds/default_place_node.1.ogg differ diff --git a/games/minetime_game/mods/default/sounds/default_place_node.2.ogg b/games/minetime_game/mods/default/sounds/default_place_node.2.ogg new file mode 100644 index 0000000..d34c01a Binary files /dev/null and b/games/minetime_game/mods/default/sounds/default_place_node.2.ogg differ diff --git a/games/minetime_game/mods/default/sounds/default_place_node.3.ogg b/games/minetime_game/mods/default/sounds/default_place_node.3.ogg new file mode 100644 index 0000000..fc29365 Binary files /dev/null and b/games/minetime_game/mods/default/sounds/default_place_node.3.ogg differ diff --git a/games/minetime_game/mods/default/sounds/default_place_node_hard.1.ogg b/games/minetime_game/mods/default/sounds/default_place_node_hard.1.ogg new file mode 100644 index 0000000..76eecf9 Binary files /dev/null and b/games/minetime_game/mods/default/sounds/default_place_node_hard.1.ogg differ diff --git a/games/minetime_game/mods/default/sounds/default_place_node_hard.2.ogg b/games/minetime_game/mods/default/sounds/default_place_node_hard.2.ogg new file mode 100644 index 0000000..1d3b3de Binary files /dev/null and b/games/minetime_game/mods/default/sounds/default_place_node_hard.2.ogg differ diff --git a/games/minetime_game/mods/default/sounds/default_sand_footstep.1.ogg b/games/minetime_game/mods/default/sounds/default_sand_footstep.1.ogg new file mode 100644 index 0000000..65b68c7 Binary files /dev/null and b/games/minetime_game/mods/default/sounds/default_sand_footstep.1.ogg differ diff --git a/games/minetime_game/mods/default/sounds/default_sand_footstep.2.ogg b/games/minetime_game/mods/default/sounds/default_sand_footstep.2.ogg new file mode 100644 index 0000000..57f35f3 Binary files /dev/null and b/games/minetime_game/mods/default/sounds/default_sand_footstep.2.ogg differ diff --git a/games/minetime_game/mods/default/sounds/default_snow_footstep.1.ogg b/games/minetime_game/mods/default/sounds/default_snow_footstep.1.ogg new file mode 100644 index 0000000..3260b91 Binary files /dev/null and b/games/minetime_game/mods/default/sounds/default_snow_footstep.1.ogg differ diff --git a/games/minetime_game/mods/default/sounds/default_snow_footstep.2.ogg b/games/minetime_game/mods/default/sounds/default_snow_footstep.2.ogg new file mode 100644 index 0000000..4aac1e7 Binary files /dev/null and b/games/minetime_game/mods/default/sounds/default_snow_footstep.2.ogg differ diff --git a/games/minetime_game/mods/default/sounds/default_snow_footstep.3.ogg b/games/minetime_game/mods/default/sounds/default_snow_footstep.3.ogg new file mode 100644 index 0000000..cf4235b Binary files /dev/null and b/games/minetime_game/mods/default/sounds/default_snow_footstep.3.ogg differ diff --git a/games/minetime_game/mods/default/sounds/default_wood_footstep.1.ogg b/games/minetime_game/mods/default/sounds/default_wood_footstep.1.ogg new file mode 100644 index 0000000..34f63a1 Binary files /dev/null and b/games/minetime_game/mods/default/sounds/default_wood_footstep.1.ogg differ diff --git a/games/minetime_game/mods/default/sounds/default_wood_footstep.2.ogg b/games/minetime_game/mods/default/sounds/default_wood_footstep.2.ogg new file mode 100644 index 0000000..124fc29 Binary files /dev/null and b/games/minetime_game/mods/default/sounds/default_wood_footstep.2.ogg differ diff --git a/games/minetime_game/mods/default/textures/bubble.png b/games/minetime_game/mods/default/textures/bubble.png new file mode 100644 index 0000000..f48aa35 Binary files /dev/null and b/games/minetime_game/mods/default/textures/bubble.png differ diff --git a/games/minetime_game/mods/default/textures/crack_anylength.png b/games/minetime_game/mods/default/textures/crack_anylength.png new file mode 100644 index 0000000..08f7c55 Binary files /dev/null and b/games/minetime_game/mods/default/textures/crack_anylength.png differ diff --git a/games/minetime_game/mods/default/textures/default_apple.png b/games/minetime_game/mods/default/textures/default_apple.png new file mode 100644 index 0000000..01942c1 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_apple.png differ diff --git a/games/minetime_game/mods/default/textures/default_book.png b/games/minetime_game/mods/default/textures/default_book.png new file mode 100644 index 0000000..db96636 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_book.png differ diff --git a/games/minetime_game/mods/default/textures/default_bookshelf.png b/games/minetime_game/mods/default/textures/default_bookshelf.png new file mode 100644 index 0000000..7afbcda Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_bookshelf.png differ diff --git a/games/minetime_game/mods/default/textures/default_branches.png b/games/minetime_game/mods/default/textures/default_branches.png new file mode 100644 index 0000000..8559b9e Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_branches.png differ diff --git a/games/minetime_game/mods/default/textures/default_brick.png b/games/minetime_game/mods/default/textures/default_brick.png new file mode 100644 index 0000000..d5850a0 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_brick.png differ diff --git a/games/minetime_game/mods/default/textures/default_bronze_block.png b/games/minetime_game/mods/default/textures/default_bronze_block.png new file mode 100644 index 0000000..710c49a Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_bronze_block.png differ diff --git a/games/minetime_game/mods/default/textures/default_bronze_ingot.png b/games/minetime_game/mods/default/textures/default_bronze_ingot.png new file mode 100644 index 0000000..527641b Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_bronze_ingot.png differ diff --git a/games/minetime_game/mods/default/textures/default_cactus_side.png b/games/minetime_game/mods/default/textures/default_cactus_side.png new file mode 100644 index 0000000..1fc8f27 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_cactus_side.png differ diff --git a/games/minetime_game/mods/default/textures/default_cactus_top.png b/games/minetime_game/mods/default/textures/default_cactus_top.png new file mode 100644 index 0000000..df48b73 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_cactus_top.png differ diff --git a/games/minetime_game/mods/default/textures/default_chest_front.png b/games/minetime_game/mods/default/textures/default_chest_front.png new file mode 100644 index 0000000..5bf33d4 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_chest_front.png differ diff --git a/games/minetime_game/mods/default/textures/default_chest_lock.png b/games/minetime_game/mods/default/textures/default_chest_lock.png new file mode 100644 index 0000000..cae4055 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_chest_lock.png differ diff --git a/games/minetime_game/mods/default/textures/default_chest_side.png b/games/minetime_game/mods/default/textures/default_chest_side.png new file mode 100644 index 0000000..dd9d923 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_chest_side.png differ diff --git a/games/minetime_game/mods/default/textures/default_chest_top.png b/games/minetime_game/mods/default/textures/default_chest_top.png new file mode 100644 index 0000000..ba5e2f4 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_chest_top.png differ diff --git a/games/minimal/mods/default/textures/default_clay.png b/games/minetime_game/mods/default/textures/default_clay.png similarity index 100% rename from games/minimal/mods/default/textures/default_clay.png rename to games/minetime_game/mods/default/textures/default_clay.png diff --git a/games/minetime_game/mods/default/textures/default_clay_brick.png b/games/minetime_game/mods/default/textures/default_clay_brick.png new file mode 100644 index 0000000..fd14ea1 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_clay_brick.png differ diff --git a/games/minetime_game/mods/default/textures/default_clay_lump.png b/games/minetime_game/mods/default/textures/default_clay_lump.png new file mode 100644 index 0000000..aef6efd Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_clay_lump.png differ diff --git a/games/minimal/mods/default/textures/default_cloud.png b/games/minetime_game/mods/default/textures/default_cloud.png similarity index 100% rename from games/minimal/mods/default/textures/default_cloud.png rename to games/minetime_game/mods/default/textures/default_cloud.png diff --git a/games/minetime_game/mods/default/textures/default_coal_block.png b/games/minetime_game/mods/default/textures/default_coal_block.png new file mode 100644 index 0000000..08fcd92 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_coal_block.png differ diff --git a/games/minetime_game/mods/default/textures/default_coal_lump.png b/games/minetime_game/mods/default/textures/default_coal_lump.png new file mode 100644 index 0000000..487f458 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_coal_lump.png differ diff --git a/games/minetime_game/mods/default/textures/default_cobble.png b/games/minetime_game/mods/default/textures/default_cobble.png new file mode 100644 index 0000000..b9cd8d8 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_cobble.png differ diff --git a/games/minetime_game/mods/default/textures/default_copper_block.png b/games/minetime_game/mods/default/textures/default_copper_block.png new file mode 100644 index 0000000..bb97a38 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_copper_block.png differ diff --git a/games/minetime_game/mods/default/textures/default_copper_ingot.png b/games/minetime_game/mods/default/textures/default_copper_ingot.png new file mode 100644 index 0000000..5f2cf03 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_copper_ingot.png differ diff --git a/games/minetime_game/mods/default/textures/default_copper_lump.png b/games/minetime_game/mods/default/textures/default_copper_lump.png new file mode 100644 index 0000000..8a706fe Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_copper_lump.png differ diff --git a/games/minetime_game/mods/default/textures/default_desert_cobble.png b/games/minetime_game/mods/default/textures/default_desert_cobble.png new file mode 100644 index 0000000..4cbab56 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_desert_cobble.png differ diff --git a/games/minetime_game/mods/default/textures/default_desert_sand.png b/games/minetime_game/mods/default/textures/default_desert_sand.png new file mode 100644 index 0000000..d9049b4 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_desert_sand.png differ diff --git a/games/minetime_game/mods/default/textures/default_desert_stone.png b/games/minetime_game/mods/default/textures/default_desert_stone.png new file mode 100644 index 0000000..5d3aded Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_desert_stone.png differ diff --git a/games/minetime_game/mods/default/textures/default_desert_stone_brick.png b/games/minetime_game/mods/default/textures/default_desert_stone_brick.png new file mode 100644 index 0000000..e967873 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_desert_stone_brick.png differ diff --git a/games/minetime_game/mods/default/textures/default_diamond.png b/games/minetime_game/mods/default/textures/default_diamond.png new file mode 100644 index 0000000..fcfa2ab Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_diamond.png differ diff --git a/games/minetime_game/mods/default/textures/default_diamond_block.png b/games/minetime_game/mods/default/textures/default_diamond_block.png new file mode 100644 index 0000000..7437f4d Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_diamond_block.png differ diff --git a/games/minetime_game/mods/default/textures/default_dirt.png b/games/minetime_game/mods/default/textures/default_dirt.png new file mode 100644 index 0000000..920dd5f Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_dirt.png differ diff --git a/games/minetime_game/mods/default/textures/default_dry_shrub.png b/games/minetime_game/mods/default/textures/default_dry_shrub.png new file mode 100644 index 0000000..f8c39a2 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_dry_shrub.png differ diff --git a/games/minetime_game/mods/default/textures/default_fence_overlay.png b/games/minetime_game/mods/default/textures/default_fence_overlay.png new file mode 100644 index 0000000..034fbb0 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_fence_overlay.png differ diff --git a/games/minetime_game/mods/default/textures/default_furnace_bottom.png b/games/minetime_game/mods/default/textures/default_furnace_bottom.png new file mode 100644 index 0000000..e8191f7 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_furnace_bottom.png differ diff --git a/games/minetime_game/mods/default/textures/default_furnace_fire_bg.png b/games/minetime_game/mods/default/textures/default_furnace_fire_bg.png new file mode 100644 index 0000000..091679b Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_furnace_fire_bg.png differ diff --git a/games/minimal/mods/default/textures/default_furnace_fire_fg.png b/games/minetime_game/mods/default/textures/default_furnace_fire_fg.png similarity index 100% rename from games/minimal/mods/default/textures/default_furnace_fire_fg.png rename to games/minetime_game/mods/default/textures/default_furnace_fire_fg.png diff --git a/games/minetime_game/mods/default/textures/default_furnace_front.png b/games/minetime_game/mods/default/textures/default_furnace_front.png new file mode 100644 index 0000000..cbc21c6 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_furnace_front.png differ diff --git a/games/minetime_game/mods/default/textures/default_furnace_front_active.png b/games/minetime_game/mods/default/textures/default_furnace_front_active.png new file mode 100644 index 0000000..caf495f Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_furnace_front_active.png differ diff --git a/games/minetime_game/mods/default/textures/default_furnace_side.png b/games/minetime_game/mods/default/textures/default_furnace_side.png new file mode 100644 index 0000000..e8191f7 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_furnace_side.png differ diff --git a/games/minetime_game/mods/default/textures/default_furnace_top.png b/games/minetime_game/mods/default/textures/default_furnace_top.png new file mode 100644 index 0000000..e8191f7 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_furnace_top.png differ diff --git a/games/minetime_game/mods/default/textures/default_glass.png b/games/minetime_game/mods/default/textures/default_glass.png new file mode 100644 index 0000000..b4c7fb5 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_glass.png differ diff --git a/games/minetime_game/mods/default/textures/default_gold_block.png b/games/minetime_game/mods/default/textures/default_gold_block.png new file mode 100644 index 0000000..d36b0a5 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_gold_block.png differ diff --git a/games/minetime_game/mods/default/textures/default_gold_ingot.png b/games/minetime_game/mods/default/textures/default_gold_ingot.png new file mode 100644 index 0000000..04117bc Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_gold_ingot.png differ diff --git a/games/minetime_game/mods/default/textures/default_gold_lump.png b/games/minetime_game/mods/default/textures/default_gold_lump.png new file mode 100644 index 0000000..5c5afef Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_gold_lump.png differ diff --git a/games/minetime_game/mods/default/textures/default_grass.png b/games/minetime_game/mods/default/textures/default_grass.png new file mode 100644 index 0000000..46c2fbb Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_grass.png differ diff --git a/games/minetime_game/mods/default/textures/default_grass_1.png b/games/minetime_game/mods/default/textures/default_grass_1.png new file mode 100644 index 0000000..3f6f137 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_grass_1.png differ diff --git a/games/minetime_game/mods/default/textures/default_grass_2.png b/games/minetime_game/mods/default/textures/default_grass_2.png new file mode 100644 index 0000000..37d9a4f Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_grass_2.png differ diff --git a/games/minetime_game/mods/default/textures/default_grass_3.png b/games/minetime_game/mods/default/textures/default_grass_3.png new file mode 100644 index 0000000..89e6ac8 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_grass_3.png differ diff --git a/games/minetime_game/mods/default/textures/default_grass_4.png b/games/minetime_game/mods/default/textures/default_grass_4.png new file mode 100644 index 0000000..4ab0718 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_grass_4.png differ diff --git a/games/minetime_game/mods/default/textures/default_grass_5.png b/games/minetime_game/mods/default/textures/default_grass_5.png new file mode 100644 index 0000000..9f494d1 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_grass_5.png differ diff --git a/games/minetime_game/mods/default/textures/default_grass_footsteps.png b/games/minetime_game/mods/default/textures/default_grass_footsteps.png new file mode 100644 index 0000000..917c1a8 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_grass_footsteps.png differ diff --git a/games/minetime_game/mods/default/textures/default_grass_side.png b/games/minetime_game/mods/default/textures/default_grass_side.png new file mode 100644 index 0000000..fa13a8a Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_grass_side.png differ diff --git a/games/minetime_game/mods/default/textures/default_gravel.png b/games/minetime_game/mods/default/textures/default_gravel.png new file mode 100644 index 0000000..752c47c Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_gravel.png differ diff --git a/games/minetime_game/mods/default/textures/default_ice.png b/games/minetime_game/mods/default/textures/default_ice.png new file mode 100644 index 0000000..14e4f56 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_ice.png differ diff --git a/games/minetime_game/mods/default/textures/default_iron_lump.png b/games/minetime_game/mods/default/textures/default_iron_lump.png new file mode 100644 index 0000000..fcc799c Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_iron_lump.png differ diff --git a/games/minetime_game/mods/default/textures/default_junglegrass.png b/games/minetime_game/mods/default/textures/default_junglegrass.png new file mode 100644 index 0000000..25abb71 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_junglegrass.png differ diff --git a/games/minetime_game/mods/default/textures/default_jungleleaves.png b/games/minetime_game/mods/default/textures/default_jungleleaves.png new file mode 100644 index 0000000..65ad848 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_jungleleaves.png differ diff --git a/games/minetime_game/mods/default/textures/default_junglesapling.png b/games/minetime_game/mods/default/textures/default_junglesapling.png new file mode 100644 index 0000000..fbb74d5 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_junglesapling.png differ diff --git a/games/minetime_game/mods/default/textures/default_jungletree.png b/games/minetime_game/mods/default/textures/default_jungletree.png new file mode 100644 index 0000000..bf0403e Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_jungletree.png differ diff --git a/games/minetime_game/mods/default/textures/default_jungletree_top.png b/games/minetime_game/mods/default/textures/default_jungletree_top.png new file mode 100644 index 0000000..e3a3ccc Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_jungletree_top.png differ diff --git a/games/minetime_game/mods/default/textures/default_junglewood.png b/games/minetime_game/mods/default/textures/default_junglewood.png new file mode 100644 index 0000000..1f22d9a Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_junglewood.png differ diff --git a/games/minetime_game/mods/default/textures/default_ladder.png b/games/minetime_game/mods/default/textures/default_ladder.png new file mode 100644 index 0000000..7abfcc6 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_ladder.png differ diff --git a/games/minetime_game/mods/default/textures/default_lava.png b/games/minetime_game/mods/default/textures/default_lava.png new file mode 100644 index 0000000..b0d429e Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_lava.png differ diff --git a/games/minetime_game/mods/default/textures/default_lava_flowing_animated.png b/games/minetime_game/mods/default/textures/default_lava_flowing_animated.png new file mode 100644 index 0000000..36b081b Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_lava_flowing_animated.png differ diff --git a/games/minetime_game/mods/default/textures/default_lava_source_animated.png b/games/minetime_game/mods/default/textures/default_lava_source_animated.png new file mode 100644 index 0000000..e69369a Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_lava_source_animated.png differ diff --git a/games/minetime_game/mods/default/textures/default_leaves.png b/games/minetime_game/mods/default/textures/default_leaves.png new file mode 100644 index 0000000..9566dab Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_leaves.png differ diff --git a/games/minetime_game/mods/default/textures/default_mese_block.png b/games/minetime_game/mods/default/textures/default_mese_block.png new file mode 100644 index 0000000..4b05214 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_mese_block.png differ diff --git a/games/minetime_game/mods/default/textures/default_mese_crystal.png b/games/minetime_game/mods/default/textures/default_mese_crystal.png new file mode 100644 index 0000000..a177731 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_mese_crystal.png differ diff --git a/games/minetime_game/mods/default/textures/default_mese_crystal_fragment.png b/games/minetime_game/mods/default/textures/default_mese_crystal_fragment.png new file mode 100644 index 0000000..d5416ab Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_mese_crystal_fragment.png differ diff --git a/games/minetime_game/mods/default/textures/default_mineral_coal.png b/games/minetime_game/mods/default/textures/default_mineral_coal.png new file mode 100644 index 0000000..6d1386b Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_mineral_coal.png differ diff --git a/games/minetime_game/mods/default/textures/default_mineral_copper.png b/games/minetime_game/mods/default/textures/default_mineral_copper.png new file mode 100644 index 0000000..c4c518e Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_mineral_copper.png differ diff --git a/games/minetime_game/mods/default/textures/default_mineral_diamond.png b/games/minetime_game/mods/default/textures/default_mineral_diamond.png new file mode 100644 index 0000000..fca966b Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_mineral_diamond.png differ diff --git a/games/minetime_game/mods/default/textures/default_mineral_gold.png b/games/minetime_game/mods/default/textures/default_mineral_gold.png new file mode 100644 index 0000000..2220add Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_mineral_gold.png differ diff --git a/games/minimal/mods/default/textures/default_mineral_iron.png b/games/minetime_game/mods/default/textures/default_mineral_iron.png similarity index 100% rename from games/minimal/mods/default/textures/default_mineral_iron.png rename to games/minetime_game/mods/default/textures/default_mineral_iron.png diff --git a/games/minetime_game/mods/default/textures/default_mineral_mese.png b/games/minetime_game/mods/default/textures/default_mineral_mese.png new file mode 100644 index 0000000..b14488e Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_mineral_mese.png differ diff --git a/games/minetime_game/mods/default/textures/default_mossycobble.png b/games/minetime_game/mods/default/textures/default_mossycobble.png new file mode 100644 index 0000000..7908a1b Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_mossycobble.png differ diff --git a/games/minimal/mods/default/textures/default_nc_back.png b/games/minetime_game/mods/default/textures/default_nc_back.png similarity index 100% rename from games/minimal/mods/default/textures/default_nc_back.png rename to games/minetime_game/mods/default/textures/default_nc_back.png diff --git a/games/minimal/mods/default/textures/default_nc_front.png b/games/minetime_game/mods/default/textures/default_nc_front.png similarity index 100% rename from games/minimal/mods/default/textures/default_nc_front.png rename to games/minetime_game/mods/default/textures/default_nc_front.png diff --git a/games/minimal/mods/default/textures/default_nc_rb.png b/games/minetime_game/mods/default/textures/default_nc_rb.png similarity index 100% rename from games/minimal/mods/default/textures/default_nc_rb.png rename to games/minetime_game/mods/default/textures/default_nc_rb.png diff --git a/games/minetime_game/mods/default/textures/default_nc_side.png b/games/minetime_game/mods/default/textures/default_nc_side.png new file mode 100644 index 0000000..3152c33 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_nc_side.png differ diff --git a/games/minetime_game/mods/default/textures/default_obsidian.png b/games/minetime_game/mods/default/textures/default_obsidian.png new file mode 100644 index 0000000..cb170ea Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_obsidian.png differ diff --git a/games/minetime_game/mods/default/textures/default_obsidian_glass.png b/games/minetime_game/mods/default/textures/default_obsidian_glass.png new file mode 100644 index 0000000..ef5f8b5 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_obsidian_glass.png differ diff --git a/games/minetime_game/mods/default/textures/default_obsidian_shard.png b/games/minetime_game/mods/default/textures/default_obsidian_shard.png new file mode 100644 index 0000000..a988d8c Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_obsidian_shard.png differ diff --git a/games/minetime_game/mods/default/textures/default_paper.png b/games/minetime_game/mods/default/textures/default_paper.png new file mode 100644 index 0000000..db32a23 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_paper.png differ diff --git a/games/minetime_game/mods/default/textures/default_papyrus.png b/games/minetime_game/mods/default/textures/default_papyrus.png new file mode 100644 index 0000000..96b23c4 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_papyrus.png differ diff --git a/games/minetime_game/mods/default/textures/default_rail.png b/games/minetime_game/mods/default/textures/default_rail.png new file mode 100644 index 0000000..061949e Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_rail.png differ diff --git a/games/minetime_game/mods/default/textures/default_rail_crossing.png b/games/minetime_game/mods/default/textures/default_rail_crossing.png new file mode 100644 index 0000000..3774beb Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_rail_crossing.png differ diff --git a/games/minetime_game/mods/default/textures/default_rail_curved.png b/games/minetime_game/mods/default/textures/default_rail_curved.png new file mode 100644 index 0000000..b721289 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_rail_curved.png differ diff --git a/games/minimal/mods/default/textures/default_rail_t_junction.png b/games/minetime_game/mods/default/textures/default_rail_t_junction.png similarity index 53% rename from games/minimal/mods/default/textures/default_rail_t_junction.png rename to games/minetime_game/mods/default/textures/default_rail_t_junction.png index fd25b5b..d692241 100644 Binary files a/games/minimal/mods/default/textures/default_rail_t_junction.png and b/games/minetime_game/mods/default/textures/default_rail_t_junction.png differ diff --git a/games/minetime_game/mods/default/textures/default_sand.png b/games/minetime_game/mods/default/textures/default_sand.png new file mode 100644 index 0000000..ba5eb0e Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_sand.png differ diff --git a/games/minetime_game/mods/default/textures/default_sandstone.png b/games/minetime_game/mods/default/textures/default_sandstone.png new file mode 100644 index 0000000..90f6dc6 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_sandstone.png differ diff --git a/games/minetime_game/mods/default/textures/default_sandstone_brick.png b/games/minetime_game/mods/default/textures/default_sandstone_brick.png new file mode 100644 index 0000000..82a1e6e Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_sandstone_brick.png differ diff --git a/games/minetime_game/mods/default/textures/default_sapling.png b/games/minetime_game/mods/default/textures/default_sapling.png new file mode 100644 index 0000000..b58b51c Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_sapling.png differ diff --git a/games/minetime_game/mods/default/textures/default_sign_wall.png b/games/minetime_game/mods/default/textures/default_sign_wall.png new file mode 100644 index 0000000..e36361e Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_sign_wall.png differ diff --git a/games/minetime_game/mods/default/textures/default_snow.png b/games/minetime_game/mods/default/textures/default_snow.png new file mode 100644 index 0000000..2a2439f Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_snow.png differ diff --git a/games/minetime_game/mods/default/textures/default_snow_side.png b/games/minetime_game/mods/default/textures/default_snow_side.png new file mode 100644 index 0000000..3e98915 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_snow_side.png differ diff --git a/games/minetime_game/mods/default/textures/default_snowball.png b/games/minetime_game/mods/default/textures/default_snowball.png new file mode 100644 index 0000000..2cff65a Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_snowball.png differ diff --git a/games/minetime_game/mods/default/textures/default_steel_block.png b/games/minetime_game/mods/default/textures/default_steel_block.png new file mode 100644 index 0000000..b756e44 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_steel_block.png differ diff --git a/games/minetime_game/mods/default/textures/default_steel_ingot.png b/games/minetime_game/mods/default/textures/default_steel_ingot.png new file mode 100644 index 0000000..4babe96 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_steel_ingot.png differ diff --git a/games/minetime_game/mods/default/textures/default_stick.png b/games/minetime_game/mods/default/textures/default_stick.png new file mode 100644 index 0000000..0ba6720 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_stick.png differ diff --git a/games/minetime_game/mods/default/textures/default_stone.png b/games/minetime_game/mods/default/textures/default_stone.png new file mode 100644 index 0000000..23fba6a Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_stone.png differ diff --git a/games/minetime_game/mods/default/textures/default_stone_brick.png b/games/minetime_game/mods/default/textures/default_stone_brick.png new file mode 100644 index 0000000..12ea953 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_stone_brick.png differ diff --git a/games/minimal/mods/default/textures/default_tnt_bottom.png b/games/minetime_game/mods/default/textures/default_tnt_bottom.png similarity index 100% rename from games/minimal/mods/default/textures/default_tnt_bottom.png rename to games/minetime_game/mods/default/textures/default_tnt_bottom.png diff --git a/games/minetime_game/mods/default/textures/default_tnt_side.png b/games/minetime_game/mods/default/textures/default_tnt_side.png new file mode 100644 index 0000000..947f862 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_tnt_side.png differ diff --git a/games/minimal/mods/default/textures/default_tnt_top.png b/games/minetime_game/mods/default/textures/default_tnt_top.png similarity index 100% rename from games/minimal/mods/default/textures/default_tnt_top.png rename to games/minetime_game/mods/default/textures/default_tnt_top.png diff --git a/games/minetime_game/mods/default/textures/default_tool_bronzeaxe.png b/games/minetime_game/mods/default/textures/default_tool_bronzeaxe.png new file mode 100644 index 0000000..e35a81e Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_tool_bronzeaxe.png differ diff --git a/games/minetime_game/mods/default/textures/default_tool_bronzepick.png b/games/minetime_game/mods/default/textures/default_tool_bronzepick.png new file mode 100644 index 0000000..18b18c9 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_tool_bronzepick.png differ diff --git a/games/minetime_game/mods/default/textures/default_tool_bronzeshovel.png b/games/minetime_game/mods/default/textures/default_tool_bronzeshovel.png new file mode 100644 index 0000000..e21a47e Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_tool_bronzeshovel.png differ diff --git a/games/minetime_game/mods/default/textures/default_tool_bronzesword.png b/games/minetime_game/mods/default/textures/default_tool_bronzesword.png new file mode 100644 index 0000000..597bbe6 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_tool_bronzesword.png differ diff --git a/games/minetime_game/mods/default/textures/default_tool_diamondaxe.png b/games/minetime_game/mods/default/textures/default_tool_diamondaxe.png new file mode 100644 index 0000000..48c1c8b Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_tool_diamondaxe.png differ diff --git a/games/minetime_game/mods/default/textures/default_tool_diamondpick.png b/games/minetime_game/mods/default/textures/default_tool_diamondpick.png new file mode 100644 index 0000000..10cdd90 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_tool_diamondpick.png differ diff --git a/games/minetime_game/mods/default/textures/default_tool_diamondshovel.png b/games/minetime_game/mods/default/textures/default_tool_diamondshovel.png new file mode 100644 index 0000000..3998022 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_tool_diamondshovel.png differ diff --git a/games/minetime_game/mods/default/textures/default_tool_diamondsword.png b/games/minetime_game/mods/default/textures/default_tool_diamondsword.png new file mode 100644 index 0000000..a02acb6 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_tool_diamondsword.png differ diff --git a/games/minetime_game/mods/default/textures/default_tool_meseaxe.png b/games/minetime_game/mods/default/textures/default_tool_meseaxe.png new file mode 100644 index 0000000..de97224 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_tool_meseaxe.png differ diff --git a/games/minetime_game/mods/default/textures/default_tool_mesepick.png b/games/minetime_game/mods/default/textures/default_tool_mesepick.png new file mode 100644 index 0000000..17451cb Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_tool_mesepick.png differ diff --git a/games/minetime_game/mods/default/textures/default_tool_meseshovel.png b/games/minetime_game/mods/default/textures/default_tool_meseshovel.png new file mode 100644 index 0000000..dc58644 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_tool_meseshovel.png differ diff --git a/games/minetime_game/mods/default/textures/default_tool_mesesword.png b/games/minetime_game/mods/default/textures/default_tool_mesesword.png new file mode 100644 index 0000000..0cba3ed Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_tool_mesesword.png differ diff --git a/games/minetime_game/mods/default/textures/default_tool_steelaxe.png b/games/minetime_game/mods/default/textures/default_tool_steelaxe.png new file mode 100644 index 0000000..3964a75 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_tool_steelaxe.png differ diff --git a/games/minetime_game/mods/default/textures/default_tool_steelpick.png b/games/minetime_game/mods/default/textures/default_tool_steelpick.png new file mode 100644 index 0000000..9df944f Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_tool_steelpick.png differ diff --git a/games/minetime_game/mods/default/textures/default_tool_steelshovel.png b/games/minetime_game/mods/default/textures/default_tool_steelshovel.png new file mode 100644 index 0000000..05bc02b Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_tool_steelshovel.png differ diff --git a/games/minetime_game/mods/default/textures/default_tool_steelsword.png b/games/minetime_game/mods/default/textures/default_tool_steelsword.png new file mode 100644 index 0000000..bc1e642 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_tool_steelsword.png differ diff --git a/games/minetime_game/mods/default/textures/default_tool_stoneaxe.png b/games/minetime_game/mods/default/textures/default_tool_stoneaxe.png new file mode 100644 index 0000000..9a18990 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_tool_stoneaxe.png differ diff --git a/games/minetime_game/mods/default/textures/default_tool_stonepick.png b/games/minetime_game/mods/default/textures/default_tool_stonepick.png new file mode 100644 index 0000000..0518ca7 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_tool_stonepick.png differ diff --git a/games/minetime_game/mods/default/textures/default_tool_stoneshovel.png b/games/minetime_game/mods/default/textures/default_tool_stoneshovel.png new file mode 100644 index 0000000..fa29e85 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_tool_stoneshovel.png differ diff --git a/games/minetime_game/mods/default/textures/default_tool_stonesword.png b/games/minetime_game/mods/default/textures/default_tool_stonesword.png new file mode 100644 index 0000000..e8814ab Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_tool_stonesword.png differ diff --git a/games/minetime_game/mods/default/textures/default_tool_woodaxe.png b/games/minetime_game/mods/default/textures/default_tool_woodaxe.png new file mode 100644 index 0000000..0d683ad Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_tool_woodaxe.png differ diff --git a/games/minetime_game/mods/default/textures/default_tool_woodpick.png b/games/minetime_game/mods/default/textures/default_tool_woodpick.png new file mode 100644 index 0000000..127a76c Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_tool_woodpick.png differ diff --git a/games/minetime_game/mods/default/textures/default_tool_woodshovel.png b/games/minetime_game/mods/default/textures/default_tool_woodshovel.png new file mode 100644 index 0000000..5652580 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_tool_woodshovel.png differ diff --git a/games/minetime_game/mods/default/textures/default_tool_woodsword.png b/games/minetime_game/mods/default/textures/default_tool_woodsword.png new file mode 100644 index 0000000..792a046 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_tool_woodsword.png differ diff --git a/games/minetime_game/mods/default/textures/default_torch.png b/games/minetime_game/mods/default/textures/default_torch.png new file mode 100644 index 0000000..e21aac3 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_torch.png differ diff --git a/games/minetime_game/mods/default/textures/default_torch_animated.png b/games/minetime_game/mods/default/textures/default_torch_animated.png new file mode 100644 index 0000000..2629f85 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_torch_animated.png differ diff --git a/games/minetime_game/mods/default/textures/default_torch_on_ceiling.png b/games/minetime_game/mods/default/textures/default_torch_on_ceiling.png new file mode 100644 index 0000000..89f41f5 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_torch_on_ceiling.png differ diff --git a/games/minetime_game/mods/default/textures/default_torch_on_ceiling_animated.png b/games/minetime_game/mods/default/textures/default_torch_on_ceiling_animated.png new file mode 100644 index 0000000..b15836d Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_torch_on_ceiling_animated.png differ diff --git a/games/minetime_game/mods/default/textures/default_torch_on_floor.png b/games/minetime_game/mods/default/textures/default_torch_on_floor.png new file mode 100644 index 0000000..1567f0b Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_torch_on_floor.png differ diff --git a/games/minetime_game/mods/default/textures/default_torch_on_floor_animated.png b/games/minetime_game/mods/default/textures/default_torch_on_floor_animated.png new file mode 100644 index 0000000..97bbe43 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_torch_on_floor_animated.png differ diff --git a/games/minetime_game/mods/default/textures/default_travel_cube.png b/games/minetime_game/mods/default/textures/default_travel_cube.png new file mode 100644 index 0000000..2e38115 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_travel_cube.png differ diff --git a/games/minetime_game/mods/default/textures/default_tree.png b/games/minetime_game/mods/default/textures/default_tree.png new file mode 100644 index 0000000..5fa4b65 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_tree.png differ diff --git a/games/minetime_game/mods/default/textures/default_tree_top.png b/games/minetime_game/mods/default/textures/default_tree_top.png new file mode 100644 index 0000000..e672d13 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_tree_top.png differ diff --git a/games/minetime_game/mods/default/textures/default_water.png b/games/minetime_game/mods/default/textures/default_water.png new file mode 100644 index 0000000..9b6ff35 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_water.png differ diff --git a/games/minetime_game/mods/default/textures/default_water_flowing_animated.png b/games/minetime_game/mods/default/textures/default_water_flowing_animated.png new file mode 100644 index 0000000..9cb138c Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_water_flowing_animated.png differ diff --git a/games/minetime_game/mods/default/textures/default_water_source_animated.png b/games/minetime_game/mods/default/textures/default_water_source_animated.png new file mode 100644 index 0000000..3b9b2d9 Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_water_source_animated.png differ diff --git a/games/minetime_game/mods/default/textures/default_wet_paper.png b/games/minetime_game/mods/default/textures/default_wet_paper.png new file mode 100644 index 0000000..169b9ad Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_wet_paper.png differ diff --git a/games/minetime_game/mods/default/textures/default_wood.png b/games/minetime_game/mods/default/textures/default_wood.png new file mode 100644 index 0000000..4f31b6d Binary files /dev/null and b/games/minetime_game/mods/default/textures/default_wood.png differ diff --git a/games/minetime_game/mods/default/textures/gui_formbg.png b/games/minetime_game/mods/default/textures/gui_formbg.png new file mode 100644 index 0000000..d38040e Binary files /dev/null and b/games/minetime_game/mods/default/textures/gui_formbg.png differ diff --git a/games/minetime_game/mods/default/textures/gui_furnace_arrow_bg.png b/games/minetime_game/mods/default/textures/gui_furnace_arrow_bg.png new file mode 100644 index 0000000..7fbb908 Binary files /dev/null and b/games/minetime_game/mods/default/textures/gui_furnace_arrow_bg.png differ diff --git a/games/minetime_game/mods/default/textures/gui_furnace_arrow_fg.png b/games/minetime_game/mods/default/textures/gui_furnace_arrow_fg.png new file mode 100644 index 0000000..8d3c396 Binary files /dev/null and b/games/minetime_game/mods/default/textures/gui_furnace_arrow_fg.png differ diff --git a/games/minetime_game/mods/default/textures/gui_hb_bg.png b/games/minetime_game/mods/default/textures/gui_hb_bg.png new file mode 100644 index 0000000..99248e1 Binary files /dev/null and b/games/minetime_game/mods/default/textures/gui_hb_bg.png differ diff --git a/games/minetime_game/mods/default/textures/gui_hotbar.png b/games/minetime_game/mods/default/textures/gui_hotbar.png new file mode 100644 index 0000000..a80ab46 Binary files /dev/null and b/games/minetime_game/mods/default/textures/gui_hotbar.png differ diff --git a/games/minetime_game/mods/default/textures/gui_hotbar_selected.png b/games/minetime_game/mods/default/textures/gui_hotbar_selected.png new file mode 100644 index 0000000..09385c0 Binary files /dev/null and b/games/minetime_game/mods/default/textures/gui_hotbar_selected.png differ diff --git a/games/minetime_game/mods/default/textures/heart.png b/games/minetime_game/mods/default/textures/heart.png new file mode 100644 index 0000000..941e973 Binary files /dev/null and b/games/minetime_game/mods/default/textures/heart.png differ diff --git a/games/minetime_game/mods/default/textures/player.png b/games/minetime_game/mods/default/textures/player.png new file mode 100644 index 0000000..6d61c43 Binary files /dev/null and b/games/minetime_game/mods/default/textures/player.png differ diff --git a/games/minetime_game/mods/default/textures/player_back.png b/games/minetime_game/mods/default/textures/player_back.png new file mode 100644 index 0000000..9bba932 Binary files /dev/null and b/games/minetime_game/mods/default/textures/player_back.png differ diff --git a/games/minetime_game/mods/default/textures/replacer_replacer.png b/games/minetime_game/mods/default/textures/replacer_replacer.png new file mode 100644 index 0000000..0c5a4f8 Binary files /dev/null and b/games/minetime_game/mods/default/textures/replacer_replacer.png differ diff --git a/games/minetime_game/mods/default/textures/wieldhand.png b/games/minetime_game/mods/default/textures/wieldhand.png new file mode 100644 index 0000000..2307ba4 Binary files /dev/null and b/games/minetime_game/mods/default/textures/wieldhand.png differ diff --git a/games/minetime_game/mods/default/time_lag.lua b/games/minetime_game/mods/default/time_lag.lua new file mode 100644 index 0000000..83ce619 --- /dev/null +++ b/games/minetime_game/mods/default/time_lag.lua @@ -0,0 +1,112 @@ + + +-------------------------------------------------------------------------------- +-------------------------------------------------------------------------------- +-------Minetest Time--kazea's code tweaked by cg72 with help from crazyR-------- +----------------Zeno` simplified some math and additional tweaks --------------- +-------------------------------------------------------------------------------- + + player_hud = {} + player_hud.time = {} + player_hud.lag = {} + local timer = 0; + local function explode(sep, input) + local t={} + local i=0 + for k in string.gmatch(input,"([^"..sep.."]+)") do + t[i]=k;i=i+1 + end + return t + end + local function floormod ( x, y ) + return (math.floor(x) % y); + end + local function get_lag(raw) + local a = explode(", ",minetest.get_server_status()) + local b = explode("=",a[4]) + local lagnum = tonumber(string.format("%.2f", b[1])) + local clag = 0 + if lagnum > clag then + clag = lagnum + else + clag = clag * .75 + end + if raw ~= nil then + return clag + else + return ("Current Lag: %s sec"):format(clag); + end + end + local function get_time () + local t, m, h, d + t = 24*60*minetest.get_timeofday() + m = floormod(t, 60) + t = t / 60 + h = floormod(t, 60) + + + if h == 12 then + d = "pm" + elseif h >= 13 then + h = h - 12 + d = "pm" + elseif h == 0 then + h = 12 + d = "am" + else + d = "am" + end + return ("Minetest time %02d:%02d %s"):format(h, m, d); + end + local function generatehud(player) + local name = player:get_player_name() + player_hud.time[name] = player:hud_add({ + hud_elem_type = "text", + name = "player_hud:time", + position = {x=0.20, y=0.965}, + text = get_time(), + scale = {x=100,y=100}, + alignment = {x=0,y=0}, + number = 0xFFFFFF, + }) + player_hud.lag[name] = player:hud_add({ + hud_elem_type = "text", + name = "player_hud:lag", + position = {x=0.80, y=0.965}, + text = get_lag(), + scale = {x=100,y=100}, + alignment = {x=0,y=0}, + number = 0xFFFFFF, + }) + end + local function updatehud(player, dtime) + local name = player:get_player_name() + timer = timer + dtime; + if (timer >= 1.0) then + timer = 0; + if player_hud.time[name] then player:hud_change(player_hud.time[name], "text", get_time()) end + if player_hud.lag[name] then player:hud_change(player_hud.lag[name], "text", get_lag()) end + end + end + local function removehud(player) + local name = player:get_player_name() + if player_hud.time[name] then + player:hud_remove(player_hud.time[name]) + end + if player_hud.lag[name] then + player:hud_remove(player_hud.lag[name]) + end + end + minetest.register_globalstep(function ( dtime ) + for _,player in ipairs(minetest.get_connected_players()) do + updatehud(player, dtime) + end + end); + minetest.register_on_joinplayer(function(player) + minetest.after(0,generatehud,player) + end) + minetest.register_on_leaveplayer(function(player) + minetest.after(1,removehud,player) + end) + + diff --git a/games/minetime_game/mods/default/tools.lua b/games/minetime_game/mods/default/tools.lua new file mode 100644 index 0000000..25cf81b --- /dev/null +++ b/games/minetime_game/mods/default/tools.lua @@ -0,0 +1,332 @@ +-- mods/default/tools.lua + +-- The hand +minetest.register_item(":", { + type = "none", + wield_image = "wieldhand.png", + wield_scale = {x=1,y=1,z=2.5}, + tool_capabilities = { + full_punch_interval = 0.9, + max_drop_level = 0, + groupcaps = { + crumbly = {times={[2]=3.00, [3]=0.70}, uses=0, maxlevel=1}, + snappy = {times={[3]=0.40}, uses=0, maxlevel=1}, + oddly_breakable_by_hand = {times={[1]=3.50,[2]=2.00,[3]=0.70}, uses=0} + }, + damage_groups = {fleshy=1}, + } +}) + +-- +-- Picks +-- + +minetest.register_tool("default:pick_wood", { + description = "Wooden Pickaxe", + inventory_image = "default_tool_woodpick.png", + tool_capabilities = { + full_punch_interval = 1.2, + max_drop_level=0, + groupcaps={ + cracky = {times={[3]=1.60}, uses=10, maxlevel=1}, + }, + damage_groups = {fleshy=2}, + }, +}) +minetest.register_tool("default:pick_stone", { + description = "Stone Pickaxe", + inventory_image = "default_tool_stonepick.png", + tool_capabilities = { + full_punch_interval = 1.3, + max_drop_level=0, + groupcaps={ + cracky = {times={[2]=2.0, [3]=1.20}, uses=20, maxlevel=1}, + }, + damage_groups = {fleshy=3}, + }, +}) +minetest.register_tool("default:pick_steel", { + description = "Steel Pickaxe", + inventory_image = "default_tool_steelpick.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + cracky = {times={[1]=4.00, [2]=1.60, [3]=0.80}, uses=20, maxlevel=2}, + }, + damage_groups = {fleshy=4}, + }, +}) +minetest.register_tool("default:pick_bronze", { + description = "Bronze Pickaxe", + inventory_image = "default_tool_bronzepick.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + cracky = {times={[1]=4.00, [2]=1.60, [3]=0.80}, uses=30, maxlevel=2}, + }, + damage_groups = {fleshy=4}, + }, +}) +minetest.register_tool("default:pick_mese", { + description = "Mese Pickaxe", + inventory_image = "default_tool_mesepick.png", + tool_capabilities = { + full_punch_interval = 0.9, + max_drop_level=3, + groupcaps={ + cracky = {times={[1]=2.4, [2]=1.2, [3]=0.60}, uses=20, maxlevel=3}, + }, + damage_groups = {fleshy=5}, + }, +}) +minetest.register_tool("default:pick_diamond", { + description = "Diamond Pickaxe", + inventory_image = "default_tool_diamondpick.png", + tool_capabilities = { + full_punch_interval = 0.9, + max_drop_level=3, + groupcaps={ + cracky = {times={[1]=2.0, [2]=1.0, [3]=0.50}, uses=30, maxlevel=3}, + }, + damage_groups = {fleshy=5}, + }, +}) + +-- +-- Shovels +-- + +minetest.register_tool("default:shovel_wood", { + description = "Wooden Shovel", + inventory_image = "default_tool_woodshovel.png", + wield_image = "default_tool_woodshovel.png^[transformR90", + tool_capabilities = { + full_punch_interval = 1.2, + max_drop_level=0, + groupcaps={ + crumbly = {times={[1]=3.00, [2]=1.60, [3]=0.60}, uses=10, maxlevel=1}, + }, + damage_groups = {fleshy=2}, + }, +}) +minetest.register_tool("default:shovel_stone", { + description = "Stone Shovel", + inventory_image = "default_tool_stoneshovel.png", + wield_image = "default_tool_stoneshovel.png^[transformR90", + tool_capabilities = { + full_punch_interval = 1.4, + max_drop_level=0, + groupcaps={ + crumbly = {times={[1]=1.80, [2]=1.20, [3]=0.50}, uses=20, maxlevel=1}, + }, + damage_groups = {fleshy=2}, + }, +}) +minetest.register_tool("default:shovel_steel", { + description = "Steel Shovel", + inventory_image = "default_tool_steelshovel.png", + wield_image = "default_tool_steelshovel.png^[transformR90", + tool_capabilities = { + full_punch_interval = 1.1, + max_drop_level=1, + groupcaps={ + crumbly = {times={[1]=1.50, [2]=0.90, [3]=0.40}, uses=30, maxlevel=2}, + }, + damage_groups = {fleshy=3}, + }, +}) +minetest.register_tool("default:shovel_bronze", { + description = "Bronze Shovel", + inventory_image = "default_tool_bronzeshovel.png", + wield_image = "default_tool_bronzeshovel.png^[transformR90", + tool_capabilities = { + full_punch_interval = 1.1, + max_drop_level=1, + groupcaps={ + crumbly = {times={[1]=1.50, [2]=0.90, [3]=0.40}, uses=40, maxlevel=2}, + }, + damage_groups = {fleshy=3}, + }, +}) +minetest.register_tool("default:shovel_mese", { + description = "Mese Shovel", + inventory_image = "default_tool_meseshovel.png", + wield_image = "default_tool_meseshovel.png^[transformR90", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=3, + groupcaps={ + crumbly = {times={[1]=1.20, [2]=0.60, [3]=0.30}, uses=20, maxlevel=3}, + }, + damage_groups = {fleshy=4}, + }, +}) +minetest.register_tool("default:shovel_diamond", { + description = "Diamond Shovel", + inventory_image = "default_tool_diamondshovel.png", + wield_image = "default_tool_diamondshovel.png^[transformR90", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + crumbly = {times={[1]=1.10, [2]=0.50, [3]=0.30}, uses=30, maxlevel=3}, + }, + damage_groups = {fleshy=4}, + }, +}) + +-- +-- Axes +-- + +minetest.register_tool("default:axe_wood", { + description = "Wooden Axe", + inventory_image = "default_tool_woodaxe.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=0, + groupcaps={ + choppy = {times={[2]=3.00, [3]=2.00}, uses=10, maxlevel=1}, + }, + damage_groups = {fleshy=2}, + }, +}) +minetest.register_tool("default:axe_stone", { + description = "Stone Axe", + inventory_image = "default_tool_stoneaxe.png", + tool_capabilities = { + full_punch_interval = 1.2, + max_drop_level=0, + groupcaps={ + choppy={times={[1]=3.00, [2]=2.00, [3]=1.50}, uses=20, maxlevel=1}, + }, + damage_groups = {fleshy=3}, + }, +}) +minetest.register_tool("default:axe_steel", { + description = "Steel Axe", + inventory_image = "default_tool_steelaxe.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + choppy={times={[1]=2.50, [2]=1.40, [3]=1.00}, uses=20, maxlevel=2}, + }, + damage_groups = {fleshy=4}, + }, +}) +minetest.register_tool("default:axe_bronze", { + description = "Bronze Axe", + inventory_image = "default_tool_bronzeaxe.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + choppy={times={[1]=2.50, [2]=1.40, [3]=1.00}, uses=30, maxlevel=2}, + }, + damage_groups = {fleshy=4}, + }, +}) +minetest.register_tool("default:axe_mese", { + description = "Mese Axe", + inventory_image = "default_tool_meseaxe.png", + tool_capabilities = { + full_punch_interval = 0.9, + max_drop_level=1, + groupcaps={ + choppy={times={[1]=2.20, [2]=1.00, [3]=0.60}, uses=20, maxlevel=3}, + }, + damage_groups = {fleshy=6}, + }, +}) +minetest.register_tool("default:axe_diamond", { + description = "Diamond Axe", + inventory_image = "default_tool_diamondaxe.png", + tool_capabilities = { + full_punch_interval = 0.9, + max_drop_level=1, + groupcaps={ + choppy={times={[1]=2.10, [2]=0.90, [3]=0.50}, uses=30, maxlevel=2}, + }, + damage_groups = {fleshy=7}, + }, +}) + +-- +-- Swords +-- + +minetest.register_tool("default:sword_wood", { + description = "Wooden Sword", + inventory_image = "default_tool_woodsword.png", + tool_capabilities = { + full_punch_interval = 1, + max_drop_level=0, + groupcaps={ + snappy={times={[2]=1.6, [3]=0.40}, uses=10, maxlevel=1}, + }, + damage_groups = {fleshy=2}, + } +}) +minetest.register_tool("default:sword_stone", { + description = "Stone Sword", + inventory_image = "default_tool_stonesword.png", + tool_capabilities = { + full_punch_interval = 1.2, + max_drop_level=0, + groupcaps={ + snappy={times={[2]=1.4, [3]=0.40}, uses=20, maxlevel=1}, + }, + damage_groups = {fleshy=4}, + } +}) +minetest.register_tool("default:sword_steel", { + description = "Steel Sword", + inventory_image = "default_tool_steelsword.png", + tool_capabilities = { + full_punch_interval = 0.8, + max_drop_level=1, + groupcaps={ + snappy={times={[1]=2.5, [2]=1.20, [3]=0.35}, uses=30, maxlevel=2}, + }, + damage_groups = {fleshy=6}, + } +}) +minetest.register_tool("default:sword_bronze", { + description = "Bronze Sword", + inventory_image = "default_tool_bronzesword.png", + tool_capabilities = { + full_punch_interval = 0.8, + max_drop_level=1, + groupcaps={ + snappy={times={[1]=2.5, [2]=1.20, [3]=0.35}, uses=40, maxlevel=2}, + }, + damage_groups = {fleshy=6}, + } +}) +minetest.register_tool("default:sword_mese", { + description = "Mese Sword", + inventory_image = "default_tool_mesesword.png", + tool_capabilities = { + full_punch_interval = 0.7, + max_drop_level=1, + groupcaps={ + snappy={times={[1]=2.0, [2]=1.00, [3]=0.35}, uses=30, maxlevel=3}, + }, + damage_groups = {fleshy=7}, + } +}) +minetest.register_tool("default:sword_diamond", { + description = "Diamond Sword", + inventory_image = "default_tool_diamondsword.png", + tool_capabilities = { + full_punch_interval = 0.7, + max_drop_level=1, + groupcaps={ + snappy={times={[1]=1.90, [2]=0.90, [3]=0.30}, uses=40, maxlevel=3}, + }, + damage_groups = {fleshy=8}, + } +}) diff --git a/games/minetime_game/mods/default/travel.lua b/games/minetime_game/mods/default/travel.lua new file mode 100644 index 0000000..dc10b4e --- /dev/null +++ b/games/minetime_game/mods/default/travel.lua @@ -0,0 +1,505 @@ + +travelnet = {}; + +travelnet.targets = {}; + + +-- read the configuration +travelnet.MAX_STATIONS_PER_NETWORK = 24; +travelnet.travelnet_sound_enabled = false; +travelnet.travelnet_enabled = true; +travelnet.allow_attach = function( player_name, owner_name, network_name ) + return false; +end +travelnet.allow_dig = function( player_name, owner_name, network_name ) + return false; +end +travelnet.allow_travel = function( player_name, owner_name, network_name, station_name_start, station_name_target ) + return true; +end + + + +-- TODO: save and restore ought to be library functions and not implemented in each individual mod! +-- called whenever a station is added or removed +travelnet.save_data = function() + + local data = minetest.serialize( travelnet.targets ); + local path = minetest.get_worldpath().."/mod_travel.data"; + + local file = io.open( path, "w" ); + if( file ) then + file:write( data ); + file:close(); + else + print("[Mod travel] Error: Savefile '"..tostring( path ).."' could not be written."); + end +end + + +travelnet.restore_data = function() + + local path = minetest.get_worldpath().."/mod_travel.data"; + + local file = io.open( path, "r" ); + if( file ) then + local data = file:read("*all"); + travelnet.targets = minetest.deserialize( data ); + file:close(); + else + print("[Mod travel] Error: Savefile '"..tostring( path ).."' not found."); + end +end + + + + +travelnet.update_formspec = function( pos, puncher_name ) + + local meta = minetest.env:get_meta(pos); + + local this_node = minetest.env:get_node( pos ); + local is_elevator = false; + + if( not( meta )) then + return; + end + + local owner_name = meta:get_string( "owner" ); + local station_name = meta:get_string( "station_name" ); + local station_network = meta:get_string( "station_network" ); + + if( not( owner_name ) + or not( station_name ) or station_network == '' + or not( station_network )) then + + meta:set_string("infotext", "Travel cube (unconfigured)"); + meta:set_string("station_name", ""); + meta:set_string("station_network",""); + meta:set_string("owner", ""); + -- request initinal data + meta:set_string("formspec", + "size[12,10]".. + "field[0.3,7.6;9,0.9;station_name;Name of this station:;"..(station_name or "?").."]".. + "field[0.3,8.6;9,0.9;station_network;Assign to Network:;"..(station_network or "?").."]".. + "field[0.3,9.6;9,0.9;owner;Owned by:;"..(owner_name or "?").."]".. + "button_exit[6.3,8.2;1.7,0.7;station_set;Store]" ); + + minetest.chat_send_player(puncher_name, "Error: Update failed! Resetting this box."); + return; + end + + -- if the station got lost from the network for some reason (savefile corrupted?) then add it again + if( not( travelnet.targets[ owner_name ] ) + or not( travelnet.targets[ owner_name ][ station_network ] ) + or not( travelnet.targets[ owner_name ][ station_network ][ station_name ] )) then + + -- first one by this player? + if( not( travelnet.targets[ owner_name ] )) then + travelnet.targets[ owner_name ] = {}; + end + + -- first station on this network? + if( not( travelnet.targets[ owner_name ][ station_network ] )) then + travelnet.targets[ owner_name ][ station_network ] = {}; + end + + + local zeit = meta:get_int("timestamp"); + if( not( zeit) or zeit<100000 ) then + zeit = os.time(); + end + + -- add this station + travelnet.targets[ owner_name ][ station_network ][ station_name ] = {pos=pos, timestamp=zeit }; + + minetest.chat_send_player(owner_name, "Station '"..station_name.."' has been reattached to the network '"..station_network.."'."); + + end + + + -- add name of station + network + owner + update-button + local formspec = "size[12,10]".. + "label[3.3,0.0;Travel cube:]".."label[6.3,0.0;Punch box to update target list.]".. + "label[0.3,0.4;Name of this station:]".."label[6.3,0.4;"..(station_name or "?").."]".. + "label[0.3,0.8;Assigned to Network:]" .."label[6.3,0.8;"..(station_network or "?").."]".. + "label[0.3,1.2;Owned by:]" .."label[6.3,1.2;"..(owner_name or "?").."]".. + "label[3.3,1.6;Click on target to travel there:]"; +-- "button_exit[5.3,0.3;8,0.8;do_update;Punch box to update destination list. Click on target to travel there.]".. + local x = 0; + local y = 0; + local i = 0; + + + -- collect all station names in a table + local stations = {}; + + for k,v in pairs( travelnet.targets[ owner_name ][ station_network ] ) do + table.insert( stations, k ); + end + -- minetest.chat_send_player(puncher_name, "stations: "..minetest.serialize( stations )); + + local ground_level = 1; + -- sort the table according to the timestamp (=time the station was configured) + table.sort( stations, function(a,b) return travelnet.targets[ owner_name ][ station_network ][ a ].timestamp < + travelnet.targets[ owner_name ][ station_network ][ b ].timestamp end); + + + -- if there are only 8 stations (plus this one), center them in the formspec + if( #stations < 10 ) then + x = 4; + end + + for index,k in ipairs( stations ) do + + if( k ~= station_name ) then + i = i+1; + + -- new column + if( y==8 ) then + x = x+4; + y = 0; + end + + if( open_door_cmd ) then + formspec = formspec .."button_exit["..(x)..","..(y+2.5)..";1,0.5;open_door;<>]".. + "label["..(x+0.9)..","..(y+2.35)..";"..tostring( k ).."]"; + elseif( is_elevator ) then + formspec = formspec .."button_exit["..(x)..","..(y+2.5)..";1,0.5;target;"..tostring( travelnet.targets[ owner_name ][ station_network ][ k ].nr ).."]".. + "label["..(x+0.9)..","..(y+2.35)..";"..tostring( k ).."]"; + else + formspec = formspec .."button_exit["..(x)..","..(y+2.5)..";4,0.5;target;"..k.."]"; + end + + y = y+1; + --x = x+4; + end + end + + meta:set_string( "formspec", formspec ); + + meta:set_string( "infotext", "Station '"..tostring( station_name ).."' on net '"..tostring( station_network ).. + "' (owned by "..tostring( owner_name )..") ready for usage. Right-click to travel, punch to update."); + + minetest.chat_send_player(puncher_name, "The target list of this box on the net has been updated."); +end + + + +-- add a new target; meta is optional +travelnet.add_target = function( station_name, network_name, pos, player_name, meta, owner_name ) + + -- if it is an elevator, determine the network name through x and z coordinates + local this_node = minetest.env:get_node( pos ); + local is_elevator = false; + + if( this_node.name == 'default:elevator' ) then +-- owner_name = '*'; -- the owner name is not relevant here + is_elevator = true; + network_name = tostring( pos.x )..','..tostring( pos.z ); + if( not( station_name ) or station_name == '' ) then + station_name = 'at '..tostring( pos.y )..'m'; + end + end + + if( station_name == "" or not(station_name )) then + minetest.chat_send_player(player_name, "Please provide a name for this station."); + return; + end + + if( network_name == "" or not( network_name )) then + minetest.chat_send_player(player_name, "Please provide the name of the network this station ought to be connected to."); + return; + end + + if( owner_name == nil or owner_name == '' or owner_name == player_name) then + owner_name = player_name; + + elseif( is_elevator ) then -- elevator networks + owner_name = player_name; + + elseif( not( travelnet.targets[ owner_name ] ) + or not( travelnet.targets[ owner_name ][ network_name ] )) then + + minetest.chat_send_player(player_name, "There is no network named "..tostring( network_name ).." owned by "..tostring( owner_name )..". Aborting."); + return; + + elseif( not( minetest.check_player_privs(player_name, {admin=true})) + and not( travelnet.allow_attach( player_name, owner_name, network_name ))) then + + minetest.chat_send_player(player_name, "You do not have the admin priv which is required to attach your box to the network of someone else. Aborting."); + return; + end + + -- first one by this player? + if( not( travelnet.targets[ owner_name ] )) then + travelnet.targets[ owner_name ] = {}; + end + + -- first station on this network? + if( not( travelnet.targets[ owner_name ][ network_name ] )) then + travelnet.targets[ owner_name ][ network_name ] = {}; + end + + -- lua doesn't allow efficient counting here + local anz = 0; + for k,v in pairs( travelnet.targets[ owner_name ][ network_name ] ) do + + if( k == station_name ) then + minetest.chat_send_player(player_name, "Error: A station named '"..station_name.."' already exists on this network. Please choose a diffrent name!"); + return; + end + + anz = anz + 1; + end + + -- we don't want too many stations in the same network because that would get confusing when displaying the targets + if( anz+1 > travelnet.MAX_STATIONS_PER_NETWORK ) then + minetest.chat_send_player(player_name, "Error: Network '"..network_name.."' already contains the maximum number (=" + ..(travelnet.MAX_STATIONS_PER_NETWORK)..") of allowed stations per network. Please choose a diffrent/new network name."); + return; + end + + -- add this station + travelnet.targets[ owner_name ][ network_name ][ station_name ] = {pos=pos, timestamp=os.time() }; + + -- do we have a new node to set up? (and are not just reading from a safefile?) + if( meta ) then + + minetest.chat_send_player(player_name, "Station '"..station_name.."' has been added to the network '" + ..network_name.."', which now consists of "..( anz+1 ).." station(s)."); + + meta:set_string( "station_name", station_name ); + meta:set_string( "station_network", network_name ); + meta:set_string( "owner", owner_name ); + meta:set_int( "timestamp", travelnet.targets[ owner_name ][ network_name ][ station_name ].timestamp); + + meta:set_string("formspec", + "size[12,10]".. + "field[0.3,0.6;6,0.7;station_name;Station:;".. meta:get_string("station_name").."]".. + "field[0.3,3.6;6,0.7;station_network;Network:;"..meta:get_string("station_network").."]" ); + + -- display a list of all stations that can be reached from here + travelnet.update_formspec( pos, player_name ); + + -- save the updated network data in a savefile over server restart + travelnet.save_data(); + end +end + + +travelnet.on_receive_fields = function(pos, formname, fields, player) + local meta = minetest.env:get_meta(pos); + + local name = player:get_player_name(); + + -- if the box has not been configured yet + if( meta:get_string("station_network")=="" ) then + + travelnet.add_target( fields.station_name, fields.station_network, pos, name, meta, fields.owner_name ); + return; + end + + if( not( fields.target )) then + minetest.chat_send_player(name, "Please click on the target you want to travel to."); + return; + end + + + -- if there is something wrong with the data + local owner_name = meta:get_string( "owner" ); + local station_name = meta:get_string( "station_name" ); + local station_network = meta:get_string( "station_network" ); + + if( not( owner_name ) + or not( station_name ) + or not( station_network ) + or not( travelnet.targets[ owner_name ] ) + or not( travelnet.targets[ owner_name ][ station_network ] )) then + + + minetest.chat_send_player(name, "Error: There is something wrong with the configuration of this station. ".. + " DEBUG DATA: owner: "..( owner_name or "?").. + " station_name: "..(station_name or "?").. + " station_network: "..(station_network or "?").."."); + return + end + + local this_node = minetest.env:get_node( pos ); + if( this_node ~= nil and this_node.name == 'default:elevator' ) then + for k,v in pairs( travelnet.targets[ owner_name ][ station_network ] ) do + if( travelnet.targets[ owner_name ][ station_network ][ k ].nr --..' ('..tostring( travelnet.targets[ owner_name ][ station_network ][ k ].pos.y )..'m)' + == fields.target) then + fields.target = k; + end + end + end + + + -- if the target station is gone + if( not( travelnet.targets[ owner_name ][ station_network ][ fields.target ] )) then + + minetest.chat_send_player(name, "Station '"..( fields.target or "?").." does not exist (anymore?) on this network."); + travelnet.update_formspec( pos, name ); + return; + end + + + if( not( travelnet.allow_travel( name, owner_name, station_network, station_name, fields.target ))) then + return; + end + minetest.chat_send_player(name, "Initiating transfer to station '"..( fields.target or "?").."'.'"); + + -- transport the player to the target location + local target_pos = travelnet.targets[ owner_name ][ station_network ][ fields.target ].pos; + local to_pos = { x=target_pos.x, y=target_pos.y+1, z=target_pos.z } + player:moveto( to_pos, false); + + -- check if the box has at the other end has been removed. + local node2 = minetest.env:get_node( target_pos ); + if( node2 ~= nil and node2.name ~= 'ignore' and node2.name ~= 'default:travelcube' and node2.name ~= 'default:elevator') then + + -- provide information necessary to identify the removed box + local oldmetadata = { fields = { owner = owner_name, + station_name = fields.target, + station_network = station_network }}; + + travelnet.remove_box( target_pos, nil, oldmetadata, player ); + + -- do this only on servers where the function exists + else + + -- rotate the player so that he/she can walk straight out of the box + local yaw = 0; + local param2 = node2.param2; + if( param2==0 ) then + yaw = 180; + elseif( param2==1 ) then + yaw = 90; + elseif( param2==2 ) then + yaw = 0; + elseif( param2==3 ) then + yaw = 270; + end + + player:set_look_yaw( math.rad( yaw )); -- this is only supported in recent versions of MT + player:set_look_pitch( math.rad( 0 )); -- this is only supported in recent versions of MT + end +end + + +travelnet.remove_box = function( pos, oldnode, oldmetadata, digger ) + + if( not( oldmetadata ) or oldmetadata=="nil" or not(oldmetadata.fields)) then + minetest.chat_send_player( digger:get_player_name(), "Error: Could not find information about the station that is to be removed."); + return; + end + + local owner_name = oldmetadata.fields[ "owner" ]; + local station_name = oldmetadata.fields[ "station_name" ]; + local station_network = oldmetadata.fields[ "station_network" ]; + + -- station is not known? then just remove it + if( not( owner_name ) + or not( station_name ) + or not( station_network ) + or not( travelnet.targets[ owner_name ] ) + or not( travelnet.targets[ owner_name ][ station_network ] )) then + + minetest.chat_send_player( digger:get_player_name(), "Error: Could not find the station that is to be removed."); + return; + end + + travelnet.targets[ owner_name ][ station_network ][ station_name ] = nil; + + -- inform the owner + minetest.chat_send_player( owner_name, "Station '"..station_name.."' has been REMOVED from the network '"..station_network.."'."); + if( digger ~= nil and owner_name ~= digger:get_player_name() ) then + minetest.chat_send_player( digger:get_player_name(), "Station '"..station_name.."' has been REMOVED from the network '"..station_network.."'."); + end + + -- save the updated network data in a savefile over server restart + travelnet.save_data(); +end + + + +travelnet.can_dig = function( pos, player, description ) + + if( not( player )) then + return false; + end + local name = player:get_player_name(); + + -- players with that priv can dig regardless of owner + if( minetest.check_player_privs(name, {admin=true}) + or travelnet.allow_dig( player_name, owner_name, network_name )) then + return true; + end + + local meta = minetest.env:get_meta( pos ); + local owner = meta:get_string('owner'); + + if( not( meta ) or not( owner) or owner=='') then + minetest.chat_send_player(name, "This "..description.." has not been configured yet. Please set it up first to claim it. Afterwards you can remove it because you are then the owner."); + return false; + + elseif( owner ~= name ) then + minetest.chat_send_player(name, "This "..description.." belongs to "..tostring( meta:get_string('owner'))..". You can't remove it."); + return false; + end + return true; +end + +minetest.register_node("default:travelcube", { + description = "Travel Cube", + drawtype = "glasslike", + sunlight_propagates = true, + paramtype = 'light', + paramtype2 = "facedir", + tiles = {"default_travel_cube.png"}, + light_source = 5, + groups = {cracky=3, oddly_breakable_by_hand=3}, + after_place_node = function(pos, placer, itemstack) + local meta = minetest.env:get_meta(pos); + meta:set_string("infotext", "Travel cube (unconfigured)"); + meta:set_string("station_name", ""); + meta:set_string("station_network",""); + meta:set_string("owner", placer:get_player_name() ); + -- request initinal data + meta:set_string("formspec", + "size[12,10]".. + "field[0.3,5.6;6,0.7;station_name;Name of this station:;]".. + "field[0.3,6.6;6,0.7;station_network;Assign to Network:;]".. + "field[0.3,7.6;6,0.7;owner_name;(optional) owned by:;]".. + "button_exit[6.3,6.2;1.7,0.7;station_set;Store]" ); + end, + + on_receive_fields = travelnet.on_receive_fields, + on_punch = function(pos, node, puncher) + travelnet.update_formspec(pos, puncher:get_player_name()) + end, + + can_dig = function( pos, player ) + return travelnet.can_dig( pos, player, 'travel cube' ) + end, + + after_dig_node = function(pos, oldnode, oldmetadata, digger) + travelnet.remove_box( pos, oldnode, oldmetadata, digger ) + end, + +}) + +--[ +minetest.register_craft({ + output = "default:travelcube", + recipe = { + {"default:glass", "default:steel_ingot", "default:glass", }, + {"default:glass", "default:mese", "default:glass", }, + {"default:glass", "default:steel_ingot", "default:glass", }, + } +}) + + +-- upon server start, read the savefile +travelnet.restore_data(); diff --git a/games/minetime_game/mods/default/trees.lua b/games/minetime_game/mods/default/trees.lua new file mode 100644 index 0000000..6b3ee10 --- /dev/null +++ b/games/minetime_game/mods/default/trees.lua @@ -0,0 +1,78 @@ +local c_air = minetest.get_content_id("air") +local c_ignore = minetest.get_content_id("ignore") +local c_tree = minetest.get_content_id("default:tree") +local c_leaves = minetest.get_content_id("default:leaves") +local c_apple = minetest.get_content_id("default:apple") + +function default.grow_tree(data, a, pos, is_apple_tree, seed) + --[[ + NOTE: Tree-placing code is currently duplicated in the engine + and in games that have saplings; both are deprecated but not + replaced yet + ]]-- + local hight = math.random(8, 14) + if is_apple_tree == true then hight = 5 end + for x_area = -3, 3 do + for y_area = -2, 3 do + for z_area = -3, 3 do + if math.random(1,30) < 23 and math.abs(x_area) + math.abs(z_area) < 5 and math.abs(x_area) + math.abs(y_area) < 5 and math.abs(z_area) + math.abs(y_area) < 5 then --randomize leaves + local area_l = a:index(pos.x+x_area, pos.y+hight+y_area-1, pos.z+z_area) --sets area for leaves + if data[area_l] == c_air or data[area_l] == c_ignore then --sets if air or ignore + if is_apple_tree and math.random(1, 50) <= 10 then --randomize apples + data[area_l] = c_apple --add apples now + else + data[area_l] = c_leaves --add leaves now + end + end + end + end + end + end + for tree_h = 0, hight-1 do -- add the trunk + local area_t = a:index(pos.x, pos.y+tree_h, pos.z) --set area for tree + if data[area_t] == c_air or data[area_t] == c_leaves or data[area_t] == c_apple then --sets if air + data[area_t] = c_tree --add tree now + end + end +end + +local c_jungletree = minetest.get_content_id("default:jungletree") +local c_jungleleaves = minetest.get_content_id("default:jungleleaves") + +function default.grow_jungletree(data, a, pos, seed) + --[[ + NOTE: Tree-placing code is currently duplicated in the engine + and in games that have saplings; both are deprecated but not + replaced yet + ]]-- + local hight = math.random(11, 23) + for x_area = -5, 5 do + for y_area = -3, 4 do + for z_area = -5, 5 do + if math.random(1,30) < 23 and math.abs(x_area) + math.abs(z_area) < 8 and math.abs(x_area) + math.abs(y_area) < 8 and math.abs(z_area) + math.abs(y_area) < 8 then --randomize leaves + local area_l = a:index(pos.x+x_area, pos.y+hight+y_area-1, pos.z+z_area) --sets area for leaves + if data[area_l] == c_air or data[area_l] == c_ignore then --sets if air or ignore + data[area_l] = c_jungleleaves --add leaves now + end + end + end + end + end + for tree_h = 0, hight-1 do -- add the trunk + local area_t = a:index(pos.x, pos.y+tree_h, pos.z) --set area for tree + if data[area_t] == c_air or data[area_t] == c_jungleleaves then --sets if air + data[area_t] = c_jungletree --add tree now + end + end + for roots_x = -1, 1 do + for roots_z = -1, 1 do + if math.random(1, 3) >= 2 then --randomize roots + if a:contains(pos.x+roots_x, pos.y-1, pos.z+roots_z) and data[a:index(pos.x+roots_x, pos.y-1, pos.z+roots_z)] == c_air then + data[a:index(pos.x+roots_x, pos.y-1, pos.z+roots_z)] = c_jungletree + elseif a:contains(pos.x+roots_x, pos.y, pos.z+roots_z) and data[a:index(pos.x+roots_x, pos.y, pos.z+roots_z)] == c_air then + data[a:index(pos.x+roots_x, pos.y, pos.z+roots_z)] = c_jungletree + end + end + end + end +end diff --git a/games/minetime_game/mods/doors/README.txt b/games/minetime_game/mods/doors/README.txt new file mode 100644 index 0000000..146af8e --- /dev/null +++ b/games/minetime_game/mods/doors/README.txt @@ -0,0 +1,46 @@ +Minetest 0.4 mod: doors +======================= +version: 1.3 + +License of source code: +----------------------- +Copyright (C) 2012 PilzAdam +modified by BlockMen (added sounds, glassdoors[glass, obsidian glass], trapdoor) + +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 textures +-------------------------------------- +following Textures created by Fernando Zapata (CC BY-SA 3.0): + door_wood.png + door_wood_a.png + door_wood_a_r.png + door_wood_b.png + door_wood_b_r.png + +following Textures created by BlockMen (WTFPL): + door_trapdoor.png + door_obsidian_glass_side.png + +following textures created by celeron55 (CC BY-SA 3.0): + door_trapdoor_side.png + door_glass_a.png + door_glass_b.png + +following Textures created by PenguinDad (CC BY-SA 4.0): + door_glass.png + door_obsidian_glass.png + +All other textures (created by PilzAdam): WTFPL + + +License of sounds +-------------------------------------- +Opening-Sound created by CGEffex (CC BY 3.0), modified by BlockMen + door_open.ogg +Closing-Sound created by bennstir (CC BY 3.0) + door_close.ogg diff --git a/games/minimal/mods/legacy/depends.txt b/games/minetime_game/mods/doors/depends.txt similarity index 88% rename from games/minimal/mods/legacy/depends.txt rename to games/minetime_game/mods/doors/depends.txt index 3a7daa1..4ad96d5 100644 --- a/games/minimal/mods/legacy/depends.txt +++ b/games/minetime_game/mods/doors/depends.txt @@ -1,2 +1 @@ default - diff --git a/games/minetime_game/mods/doors/init.lua b/games/minetime_game/mods/doors/init.lua new file mode 100644 index 0000000..808f5f7 --- /dev/null +++ b/games/minetime_game/mods/doors/init.lua @@ -0,0 +1,454 @@ +doors = {} + +-- Registers a door +-- name: The name of the door +-- def: a table with the folowing fields: +-- description +-- inventory_image +-- groups +-- tiles_bottom: the tiles of the bottom part of the door {front, side} +-- tiles_top: the tiles of the bottom part of the door {front, side} +-- If the following fields are not defined the default values are used +-- node_box_bottom +-- node_box_top +-- selection_box_bottom +-- selection_box_top +-- only_placer_can_open: if true only the player who placed the door can +-- open it + + +function doors.register_door(name, def) + def.groups.not_in_creative_inventory = 1 + + local box = {{-0.5, -0.5, -0.5, 0.5, 0.5, -0.5+1.5/16}} + + if not def.node_box_bottom then + def.node_box_bottom = box + end + if not def.node_box_top then + def.node_box_top = box + end + if not def.selection_box_bottom then + def.selection_box_bottom= box + end + if not def.selection_box_top then + def.selection_box_top = box + end + + if not def.sound_close_door then + def.sound_close_door = "door_close" + end + if not def.sound_open_door then + def.sound_open_door = "door_open" + end + + + minetest.register_craftitem(name, { + description = def.description, + inventory_image = def.inventory_image, + + on_place = function(itemstack, placer, pointed_thing) + if not pointed_thing.type == "node" then + return itemstack + end + + local ptu = pointed_thing.under + local nu = minetest.get_node(ptu) + if minetest.registered_nodes[nu.name].on_rightclick then + return minetest.registered_nodes[nu.name].on_rightclick(ptu, nu, placer, itemstack) + end + + local pt = pointed_thing.above + local pt2 = {x=pt.x, y=pt.y, z=pt.z} + pt2.y = pt2.y+1 + if + not minetest.registered_nodes[minetest.get_node(pt).name].buildable_to or + not minetest.registered_nodes[minetest.get_node(pt2).name].buildable_to or + not placer or + not placer:is_player() + then + return itemstack + end + + if minetest.is_protected(pt, placer:get_player_name()) or + minetest.is_protected(pt2, placer:get_player_name()) then + minetest.record_protection_violation(pt, placer:get_player_name()) + return itemstack + end + + local p2 = minetest.dir_to_facedir(placer:get_look_dir()) + local pt3 = {x=pt.x, y=pt.y, z=pt.z} + if p2 == 0 then + pt3.x = pt3.x-1 + elseif p2 == 1 then + pt3.z = pt3.z+1 + elseif p2 == 2 then + pt3.x = pt3.x+1 + elseif p2 == 3 then + pt3.z = pt3.z-1 + end + if minetest.get_item_group(minetest.get_node(pt3).name, "door") == 0 then + minetest.set_node(pt, {name=name.."_b_1", param2=p2}) + minetest.set_node(pt2, {name=name.."_t_1", param2=p2}) + else + minetest.set_node(pt, {name=name.."_b_2", param2=p2}) + minetest.set_node(pt2, {name=name.."_t_2", param2=p2}) + minetest.get_meta(pt):set_int("right", 1) + minetest.get_meta(pt2):set_int("right", 1) + end + + if def.only_placer_can_open then + local pn = placer:get_player_name() + local meta = minetest.get_meta(pt) + meta:set_string("doors_owner", pn) + meta:set_string("infotext", "Owned by "..pn) + meta = minetest.get_meta(pt2) + meta:set_string("doors_owner", pn) + meta:set_string("infotext", "Owned by "..pn) + end + + if not minetest.setting_getbool("creative_mode") then + itemstack:take_item() + end + return itemstack + end, + }) + + local tt = def.tiles_top + local tb = def.tiles_bottom + + local function after_dig_node(pos, name, digger) + local node = minetest.get_node(pos) + if node.name == name then + minetest.node_dig(pos, node, digger) + end + end + + local function on_rightclick(pos, dir, check_name, replace, replace_dir, params) + pos.y = pos.y+dir + if not minetest.get_node(pos).name == check_name then + return + end + local p2 = minetest.get_node(pos).param2 + p2 = params[p2+1] + + minetest.swap_node(pos, {name=replace_dir, param2=p2}) + + pos.y = pos.y-dir + minetest.swap_node(pos, {name=replace, param2=p2}) + + local snd_1 = def.sound_close_door + local snd_2 = def.sound_open_door + if params[1] == 3 then + snd_1 = def.sound_open_door + snd_2 = def.sound_close_door + end + + if minetest.get_meta(pos):get_int("right") ~= 0 then + minetest.sound_play(snd_1, {pos = pos, gain = 0.3, max_hear_distance = 10}) + else + minetest.sound_play(snd_2, {pos = pos, gain = 0.3, max_hear_distance = 10}) + end + end + + local function check_player_priv(pos, player) + if not def.only_placer_can_open then + return true + end + local meta = minetest.get_meta(pos) + local pn = player:get_player_name() + return meta:get_string("doors_owner") == pn + end + + minetest.register_node(name.."_b_1", { + tiles = {tb[2], tb[2], tb[2], tb[2], tb[1], tb[1].."^[transformfx"}, + paramtype = "light", + paramtype2 = "facedir", + drop = name, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = def.node_box_bottom + }, + selection_box = { + type = "fixed", + fixed = def.selection_box_bottom + }, + groups = def.groups, + + after_dig_node = function(pos, oldnode, oldmetadata, digger) + pos.y = pos.y+1 + after_dig_node(pos, name.."_t_1", digger) + end, + + on_rightclick = function(pos, node, clicker) + if check_player_priv(pos, clicker) then + on_rightclick(pos, 1, name.."_t_1", name.."_b_2", name.."_t_2", {1,2,3,0}) + end + end, + + can_dig = check_player_priv, + sounds = def.sounds, + sunlight_propagates = def.sunlight + }) + + minetest.register_node(name.."_t_1", { + tiles = {tt[2], tt[2], tt[2], tt[2], tt[1], tt[1].."^[transformfx"}, + paramtype = "light", + paramtype2 = "facedir", + drop = "", + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = def.node_box_top + }, + selection_box = { + type = "fixed", + fixed = def.selection_box_top + }, + groups = def.groups, + + after_dig_node = function(pos, oldnode, oldmetadata, digger) + pos.y = pos.y-1 + after_dig_node(pos, name.."_b_1", digger) + end, + + on_rightclick = function(pos, node, clicker) + if check_player_priv(pos, clicker) then + on_rightclick(pos, -1, name.."_b_1", name.."_t_2", name.."_b_2", {1,2,3,0}) + end + end, + + can_dig = check_player_priv, + sounds = def.sounds, + sunlight_propagates = def.sunlight, + }) + + minetest.register_node(name.."_b_2", { + tiles = {tb[2], tb[2], tb[2], tb[2], tb[1].."^[transformfx", tb[1]}, + paramtype = "light", + paramtype2 = "facedir", + drop = name, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = def.node_box_bottom + }, + selection_box = { + type = "fixed", + fixed = def.selection_box_bottom + }, + groups = def.groups, + + after_dig_node = function(pos, oldnode, oldmetadata, digger) + pos.y = pos.y+1 + after_dig_node(pos, name.."_t_2", digger) + end, + + on_rightclick = function(pos, node, clicker) + if check_player_priv(pos, clicker) then + on_rightclick(pos, 1, name.."_t_2", name.."_b_1", name.."_t_1", {3,0,1,2}) + end + end, + + can_dig = check_player_priv, + sounds = def.sounds, + sunlight_propagates = def.sunlight + }) + + minetest.register_node(name.."_t_2", { + tiles = {tt[2], tt[2], tt[2], tt[2], tt[1].."^[transformfx", tt[1]}, + paramtype = "light", + paramtype2 = "facedir", + drop = "", + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = def.node_box_top + }, + selection_box = { + type = "fixed", + fixed = def.selection_box_top + }, + groups = def.groups, + + after_dig_node = function(pos, oldnode, oldmetadata, digger) + pos.y = pos.y-1 + after_dig_node(pos, name.."_b_2", digger) + end, + + on_rightclick = function(pos, node, clicker) + if check_player_priv(pos, clicker) then + on_rightclick(pos, -1, name.."_b_2", name.."_t_1", name.."_b_1", {3,0,1,2}) + end + end, + + can_dig = check_player_priv, + sounds = def.sounds, + sunlight_propagates = def.sunlight + }) + +end + +doors.register_door("doors:door_wood", { + description = "Wooden Door", + inventory_image = "door_wood.png", + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=2,door=1}, + tiles_bottom = {"door_wood_b.png", "door_brown.png"}, + tiles_top = {"door_wood_a.png", "door_brown.png"}, + sounds = default.node_sound_wood_defaults(), + sunlight = false, +}) + +minetest.register_craft({ + output = "doors:door_wood", + recipe = { + {"group:wood", "group:wood"}, + {"group:wood", "group:wood"}, + {"group:wood", "group:wood"} + } +}) + +doors.register_door("doors:door_steel", { + description = "Steel Door", + inventory_image = "door_steel.png", + groups = {snappy=1,bendy=2,cracky=1,melty=2,level=2,door=1}, + tiles_bottom = {"door_steel_b.png", "door_grey.png"}, + tiles_top = {"door_steel_a.png", "door_grey.png"}, + only_placer_can_open = true, + sounds = default.node_sound_wood_defaults(), + sunlight = false, +}) + +minetest.register_craft({ + output = "doors:door_steel", + recipe = { + {"default:steel_ingot", "default:steel_ingot"}, + {"default:steel_ingot", "default:steel_ingot"}, + {"default:steel_ingot", "default:steel_ingot"} + } +}) + +doors.register_door("doors:door_glass", { + description = "Glass Door", + inventory_image = "door_glass.png", + groups = {snappy=1,cracky=1,oddly_breakable_by_hand=3,door=1}, + tiles_bottom = {"door_glass_b.png", "door_glass_side.png"}, + tiles_top = {"door_glass_a.png", "door_glass_side.png"}, + sounds = default.node_sound_glass_defaults(), + sunlight = true, +}) + +minetest.register_craft({ + output = "doors:door_glass", + recipe = { + {"default:glass", "default:glass"}, + {"default:glass", "default:glass"}, + {"default:glass", "default:glass"} + } +}) + +doors.register_door("doors:door_obsidian_glass", { + description = "Obsidian Glass Door", + inventory_image = "door_obsidian_glass.png", + groups = {snappy=1,cracky=1,oddly_breakable_by_hand=3,door=1}, + tiles_bottom = {"door_obsidian_glass_b.png", "door_obsidian_glass_side.png"}, + tiles_top = {"door_obsidian_glass_b.png", "door_obsidian_glass_side.png"}, + sounds = default.node_sound_glass_defaults(), + sunlight = true, +}) + +minetest.register_craft({ + output = "doors:door_obsidian_glass", + recipe = { + {"default:obsidian_glass", "default:obsidian_glass"}, + {"default:obsidian_glass", "default:obsidian_glass"}, + {"default:obsidian_glass", "default:obsidian_glass"} + } +}) + + +----trapdoor---- + +local function update_door(pos, node) + minetest.set_node(pos, node) +end + +local function punch(pos) + local meta = minetest.get_meta(pos) + local state = meta:get_int("state") + local me = minetest.get_node(pos) + local tmp_node + local tmp_node2 + oben = {x=pos.x, y=pos.y+1, z=pos.z} + if state == 1 then + state = 0 + minetest.sound_play("door_close", {pos = pos, gain = 0.3, max_hear_distance = 10}) + tmp_node = {name="doors:trapdoor", param1=me.param1, param2=me.param2} + else + state = 1 + minetest.sound_play("door_open", {pos = pos, gain = 0.3, max_hear_distance = 10}) + tmp_node = {name="doors:trapdoor_open", param1=me.param1, param2=me.param2} + end + update_door(pos, tmp_node) + meta:set_int("state", state) +end + +minetest.register_node("doors:trapdoor", { + description = "Trapdoor", + inventory_image = "door_trapdoor.png", + drawtype = "nodebox", + tiles = {"door_trapdoor.png", "door_trapdoor.png", "door_trapdoor_side.png", "door_trapdoor_side.png", "door_trapdoor_side.png", "door_trapdoor_side.png"}, + paramtype = "light", + paramtype2 = "facedir", + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=2,door=1}, + sounds = default.node_sound_wood_defaults(), + drop = "doors:trapdoor", + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -0.4, 0.5} + }, + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -0.4, 0.5} + }, + on_creation = function(pos) + state = 0 + end, + on_rightclick = function(pos, node, clicker) + punch(pos) + end, +}) + +minetest.register_node("doors:trapdoor_open", { + drawtype = "nodebox", + tiles = {"door_trapdoor_side.png", "door_trapdoor_side.png", "door_trapdoor_side.png", "door_trapdoor_side.png", "door_trapdoor.png", "door_trapdoor.png"}, + paramtype = "light", + paramtype2 = "facedir", + pointable = true, + stack_max = 0, + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=2,door=1}, + climbable = true, + sounds = default.node_sound_wood_defaults(), + drop = "doors:trapdoor", + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, 0.4, 0.5, 0.5, 0.5} + }, + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, 0.4, 0.5, 0.5, 0.5} + }, + on_rightclick = function(pos, node, clicker) + punch(pos) + end, +}) + +minetest.register_craft({ + output = 'doors:trapdoor 2', + recipe = { + {'group:wood', 'group:wood', 'group:wood'}, + {'group:wood', 'group:wood', 'group:wood'}, + {'', '', ''}, + } +}) diff --git a/games/minetime_game/mods/doors/sounds/door_close.ogg b/games/minetime_game/mods/doors/sounds/door_close.ogg new file mode 100644 index 0000000..a39452b Binary files /dev/null and b/games/minetime_game/mods/doors/sounds/door_close.ogg differ diff --git a/games/minetime_game/mods/doors/sounds/door_open.ogg b/games/minetime_game/mods/doors/sounds/door_open.ogg new file mode 100644 index 0000000..7ec7f48 Binary files /dev/null and b/games/minetime_game/mods/doors/sounds/door_open.ogg differ diff --git a/games/minetime_game/mods/doors/textures/door_brown.png b/games/minetime_game/mods/doors/textures/door_brown.png new file mode 100644 index 0000000..74785ec Binary files /dev/null and b/games/minetime_game/mods/doors/textures/door_brown.png differ diff --git a/games/minetime_game/mods/doors/textures/door_glass.png b/games/minetime_game/mods/doors/textures/door_glass.png new file mode 100644 index 0000000..49ec245 Binary files /dev/null and b/games/minetime_game/mods/doors/textures/door_glass.png differ diff --git a/games/minetime_game/mods/doors/textures/door_glass_a.png b/games/minetime_game/mods/doors/textures/door_glass_a.png new file mode 100644 index 0000000..b4c7fb5 Binary files /dev/null and b/games/minetime_game/mods/doors/textures/door_glass_a.png differ diff --git a/games/minetime_game/mods/doors/textures/door_glass_b.png b/games/minetime_game/mods/doors/textures/door_glass_b.png new file mode 100644 index 0000000..b4c7fb5 Binary files /dev/null and b/games/minetime_game/mods/doors/textures/door_glass_b.png differ diff --git a/games/minetime_game/mods/doors/textures/door_glass_side.png b/games/minetime_game/mods/doors/textures/door_glass_side.png new file mode 100644 index 0000000..755672b Binary files /dev/null and b/games/minetime_game/mods/doors/textures/door_glass_side.png differ diff --git a/games/minetime_game/mods/doors/textures/door_grey.png b/games/minetime_game/mods/doors/textures/door_grey.png new file mode 100644 index 0000000..ca16af0 Binary files /dev/null and b/games/minetime_game/mods/doors/textures/door_grey.png differ diff --git a/games/minetime_game/mods/doors/textures/door_obsidian_glass.png b/games/minetime_game/mods/doors/textures/door_obsidian_glass.png new file mode 100644 index 0000000..c327720 Binary files /dev/null and b/games/minetime_game/mods/doors/textures/door_obsidian_glass.png differ diff --git a/games/minetime_game/mods/doors/textures/door_obsidian_glass_a.png b/games/minetime_game/mods/doors/textures/door_obsidian_glass_a.png new file mode 100644 index 0000000..ef5f8b5 Binary files /dev/null and b/games/minetime_game/mods/doors/textures/door_obsidian_glass_a.png differ diff --git a/games/minetime_game/mods/doors/textures/door_obsidian_glass_b.png b/games/minetime_game/mods/doors/textures/door_obsidian_glass_b.png new file mode 100644 index 0000000..ef5f8b5 Binary files /dev/null and b/games/minetime_game/mods/doors/textures/door_obsidian_glass_b.png differ diff --git a/games/minetime_game/mods/doors/textures/door_obsidian_glass_side.png b/games/minetime_game/mods/doors/textures/door_obsidian_glass_side.png new file mode 100644 index 0000000..0df598b Binary files /dev/null and b/games/minetime_game/mods/doors/textures/door_obsidian_glass_side.png differ diff --git a/games/minetime_game/mods/doors/textures/door_steel.png b/games/minetime_game/mods/doors/textures/door_steel.png new file mode 100644 index 0000000..042a1bc Binary files /dev/null and b/games/minetime_game/mods/doors/textures/door_steel.png differ diff --git a/games/minetime_game/mods/doors/textures/door_steel_a.png b/games/minetime_game/mods/doors/textures/door_steel_a.png new file mode 100644 index 0000000..59603c1 Binary files /dev/null and b/games/minetime_game/mods/doors/textures/door_steel_a.png differ diff --git a/games/minetime_game/mods/doors/textures/door_steel_b.png b/games/minetime_game/mods/doors/textures/door_steel_b.png new file mode 100644 index 0000000..bafacd8 Binary files /dev/null and b/games/minetime_game/mods/doors/textures/door_steel_b.png differ diff --git a/games/minetime_game/mods/doors/textures/door_trapdoor.png b/games/minetime_game/mods/doors/textures/door_trapdoor.png new file mode 100644 index 0000000..3039dd8 Binary files /dev/null and b/games/minetime_game/mods/doors/textures/door_trapdoor.png differ diff --git a/games/minetime_game/mods/doors/textures/door_trapdoor_side.png b/games/minetime_game/mods/doors/textures/door_trapdoor_side.png new file mode 100644 index 0000000..c860523 Binary files /dev/null and b/games/minetime_game/mods/doors/textures/door_trapdoor_side.png differ diff --git a/games/minetime_game/mods/doors/textures/door_wood.png b/games/minetime_game/mods/doors/textures/door_wood.png new file mode 100644 index 0000000..d3a62ab Binary files /dev/null and b/games/minetime_game/mods/doors/textures/door_wood.png differ diff --git a/games/minetime_game/mods/doors/textures/door_wood_a.png b/games/minetime_game/mods/doors/textures/door_wood_a.png new file mode 100644 index 0000000..a878e51 Binary files /dev/null and b/games/minetime_game/mods/doors/textures/door_wood_a.png differ diff --git a/games/minetime_game/mods/doors/textures/door_wood_b.png b/games/minetime_game/mods/doors/textures/door_wood_b.png new file mode 100644 index 0000000..6842057 Binary files /dev/null and b/games/minetime_game/mods/doors/textures/door_wood_b.png differ diff --git a/games/minetime_game/mods/dye/README.txt b/games/minetime_game/mods/dye/README.txt new file mode 100644 index 0000000..d414c2c --- /dev/null +++ b/games/minetime_game/mods/dye/README.txt @@ -0,0 +1,15 @@ +Minetest 0.4 mod: dye +====================== + +See init.lua for documentation. + +License of source code and media files: +--------------------------------------- +Copyright (C) 2012 Perttu Ahola (celeron55) + +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. + diff --git a/games/minetime_game/mods/dye/depends.txt b/games/minetime_game/mods/dye/depends.txt new file mode 100644 index 0000000..e69de29 diff --git a/games/minetime_game/mods/dye/init.lua b/games/minetime_game/mods/dye/init.lua new file mode 100644 index 0000000..ebdc938 --- /dev/null +++ b/games/minetime_game/mods/dye/init.lua @@ -0,0 +1,139 @@ +-- minetest/dye/init.lua + +-- To make recipes that will work with any dye ever made by anybody, define +-- them based on groups. +-- You can select any group of groups, based on your need for amount of colors. +-- basecolor: 9, excolor: 17, unicolor: 89 +-- +-- Example of one shapeless recipe using a color group: +-- Note: As this uses basecolor_*, you'd need 9 of these. +-- minetest.register_craft({ +-- type = "shapeless", +-- output = ':item_yellow', +-- recipe = {':item_no_color', 'group:basecolor_yellow'}, +-- }) + +-- Other mods can use these for looping through available colors +local dye = {} +dye.basecolors = {"white", "grey", "black", "red", "yellow", "green", "cyan", "blue", "magenta"} +dye.excolors = {"white", "lightgrey", "grey", "darkgrey", "black", "red", "orange", "yellow", "lime", "green", "aqua", "cyan", "sky_blue", "blue", "violet", "magenta", "red_violet"} + +-- Base color groups: +-- - basecolor_white +-- - basecolor_grey +-- - basecolor_black +-- - basecolor_red +-- - basecolor_yellow +-- - basecolor_green +-- - basecolor_cyan +-- - basecolor_blue +-- - basecolor_magenta + +-- Extended color groups (* = equal to a base color): +-- * excolor_white +-- - excolor_lightgrey +-- * excolor_grey +-- - excolor_darkgrey +-- * excolor_black +-- * excolor_red +-- - excolor_orange +-- * excolor_yellow +-- - excolor_lime +-- * excolor_green +-- - excolor_aqua +-- * excolor_cyan +-- - excolor_sky_blue +-- * excolor_blue +-- - excolor_violet +-- * excolor_magenta +-- - excolor_red_violet + +-- The whole unifieddyes palette as groups: +-- - unicolor_ +-- For the following, no white/grey/black is allowed: +-- - unicolor_medium_ +-- - unicolor_dark_ +-- - unicolor_light_ +-- - unicolor__s50 +-- - unicolor_medium__s50 +-- - unicolor_dark__s50 + +-- Local stuff +local dyelocal = {} + +-- This collection of colors is partly a historic thing, partly something else. +dyelocal.dyes = { + {"white", "White dye", {dye=1, basecolor_white=1, excolor_white=1, unicolor_white=1}}, + {"grey", "Grey dye", {dye=1, basecolor_grey=1, excolor_grey=1, unicolor_grey=1}}, + {"dark_grey", "Dark grey dye", {dye=1, basecolor_grey=1, excolor_darkgrey=1, unicolor_darkgrey=1}}, + {"black", "Black dye", {dye=1, basecolor_black=1, excolor_black=1, unicolor_black=1}}, + {"violet", "Violet dye", {dye=1, basecolor_magenta=1, excolor_violet=1, unicolor_violet=1}}, + {"blue", "Blue dye", {dye=1, basecolor_blue=1, excolor_blue=1, unicolor_blue=1}}, + {"cyan", "Cyan dye", {dye=1, basecolor_cyan=1, excolor_cyan=1, unicolor_cyan=1}}, + {"dark_green", "Dark green dye",{dye=1, basecolor_green=1, excolor_green=1, unicolor_dark_green=1}}, + {"green", "Green dye", {dye=1, basecolor_green=1, excolor_green=1, unicolor_green=1}}, + {"yellow", "Yellow dye", {dye=1, basecolor_yellow=1, excolor_yellow=1, unicolor_yellow=1}}, + {"brown", "Brown dye", {dye=1, basecolor_yellow=1, excolor_orange=1, unicolor_dark_orange=1}}, + {"orange", "Orange dye", {dye=1, basecolor_orange=1, excolor_orange=1, unicolor_orange=1}}, + {"red", "Red dye", {dye=1, basecolor_red=1, excolor_red=1, unicolor_red=1}}, + {"magenta", "Magenta dye", {dye=1, basecolor_magenta=1, excolor_red_violet=1,unicolor_red_violet=1}}, + {"pink", "Pink dye", {dye=1, basecolor_red=1, excolor_red=1, unicolor_light_red=1}}, +} + +-- Define items +for _, row in ipairs(dyelocal.dyes) do + local name = row[1] + local description = row[2] + local groups = row[3] + local item_name = "dye:"..name + local item_image = "dye_"..name..".png" + minetest.register_craftitem(item_name, { + inventory_image = item_image, + description = description, + groups = groups + }) + minetest.register_craft({ + type = "shapeless", + output = item_name.." 4", + recipe = {"group:flower,color_"..name}, + }) +end + +-- Mix recipes +-- Just mix everything to everything somehow sanely + +dyelocal.mixbases = {"magenta", "red", "orange", "brown", "yellow", "green", "dark_green", "cyan", "blue", "violet", "black", "dark_grey", "grey", "white"} + +dyelocal.mixes = { + -- magenta, red, orange, brown, yellow, green, dark_green, cyan, blue, violet, black, dark_grey, grey, white + white = {"pink", "pink", "orange", "orange", "yellow", "green", "green", "grey", "cyan", "violet", "grey", "grey", "white", "white"}, + grey = {"pink", "pink", "orange", "orange", "yellow", "green", "green", "grey", "cyan", "pink", "dark_grey","grey", "grey"}, + dark_grey={"brown","brown", "brown", "brown", "brown","dark_green","dark_green","blue","blue","violet","black", "black"}, + black = {"black", "black", "black", "black", "black", "black", "black", "black", "black", "black", "black"}, + violet= {"magenta","magenta","red", "brown", "red", "cyan", "brown", "blue", "violet","violet"}, + blue = {"violet", "magenta","brown","brown","dark_green","cyan","cyan", "cyan", "blue"}, + cyan = {"blue","brown","dark_green","dark_grey","green","cyan","dark_green","cyan"}, + dark_green={"brown","brown","brown", "brown", "green", "green", "dark_green"}, + green = {"brown", "yellow","yellow","dark_green","green","green"}, + yellow= {"red", "orange", "yellow","orange", "yellow"}, + brown = {"brown", "brown","orange", "brown"}, + orange= {"red", "orange","orange"}, + red = {"magenta","red"}, + magenta={"magenta"}, +} + +for one,results in pairs(dyelocal.mixes) do + for i,result in ipairs(results) do + local another = dyelocal.mixbases[i] + minetest.register_craft({ + type = "shapeless", + output = 'dye:'..result..' 2', + recipe = {'dye:'..one, 'dye:'..another}, + }) + end +end + +-- Hide dyelocal +dyelocal = nil + +-- EOF diff --git a/games/minetime_game/mods/dye/textures/dye_black.png b/games/minetime_game/mods/dye/textures/dye_black.png new file mode 100644 index 0000000..1055b6c Binary files /dev/null and b/games/minetime_game/mods/dye/textures/dye_black.png differ diff --git a/games/minetime_game/mods/dye/textures/dye_blue.png b/games/minetime_game/mods/dye/textures/dye_blue.png new file mode 100644 index 0000000..d1377c6 Binary files /dev/null and b/games/minetime_game/mods/dye/textures/dye_blue.png differ diff --git a/games/minetime_game/mods/dye/textures/dye_brown.png b/games/minetime_game/mods/dye/textures/dye_brown.png new file mode 100644 index 0000000..77d475c Binary files /dev/null and b/games/minetime_game/mods/dye/textures/dye_brown.png differ diff --git a/games/minetime_game/mods/dye/textures/dye_cyan.png b/games/minetime_game/mods/dye/textures/dye_cyan.png new file mode 100644 index 0000000..239d66c Binary files /dev/null and b/games/minetime_game/mods/dye/textures/dye_cyan.png differ diff --git a/games/minetime_game/mods/dye/textures/dye_dark_green.png b/games/minetime_game/mods/dye/textures/dye_dark_green.png new file mode 100644 index 0000000..9606ccf Binary files /dev/null and b/games/minetime_game/mods/dye/textures/dye_dark_green.png differ diff --git a/games/minetime_game/mods/dye/textures/dye_dark_grey.png b/games/minetime_game/mods/dye/textures/dye_dark_grey.png new file mode 100644 index 0000000..060737b Binary files /dev/null and b/games/minetime_game/mods/dye/textures/dye_dark_grey.png differ diff --git a/games/minetime_game/mods/dye/textures/dye_green.png b/games/minetime_game/mods/dye/textures/dye_green.png new file mode 100644 index 0000000..0d99ee1 Binary files /dev/null and b/games/minetime_game/mods/dye/textures/dye_green.png differ diff --git a/games/minetime_game/mods/dye/textures/dye_grey.png b/games/minetime_game/mods/dye/textures/dye_grey.png new file mode 100644 index 0000000..5efb028 Binary files /dev/null and b/games/minetime_game/mods/dye/textures/dye_grey.png differ diff --git a/games/minetime_game/mods/dye/textures/dye_magenta.png b/games/minetime_game/mods/dye/textures/dye_magenta.png new file mode 100644 index 0000000..c84df62 Binary files /dev/null and b/games/minetime_game/mods/dye/textures/dye_magenta.png differ diff --git a/games/minetime_game/mods/dye/textures/dye_orange.png b/games/minetime_game/mods/dye/textures/dye_orange.png new file mode 100644 index 0000000..0844907 Binary files /dev/null and b/games/minetime_game/mods/dye/textures/dye_orange.png differ diff --git a/games/minetime_game/mods/dye/textures/dye_pink.png b/games/minetime_game/mods/dye/textures/dye_pink.png new file mode 100644 index 0000000..c3dec22 Binary files /dev/null and b/games/minetime_game/mods/dye/textures/dye_pink.png differ diff --git a/games/minetime_game/mods/dye/textures/dye_red.png b/games/minetime_game/mods/dye/textures/dye_red.png new file mode 100644 index 0000000..14eafbf Binary files /dev/null and b/games/minetime_game/mods/dye/textures/dye_red.png differ diff --git a/games/minetime_game/mods/dye/textures/dye_violet.png b/games/minetime_game/mods/dye/textures/dye_violet.png new file mode 100644 index 0000000..600cbb4 Binary files /dev/null and b/games/minetime_game/mods/dye/textures/dye_violet.png differ diff --git a/games/minetime_game/mods/dye/textures/dye_white.png b/games/minetime_game/mods/dye/textures/dye_white.png new file mode 100644 index 0000000..2a840a4 Binary files /dev/null and b/games/minetime_game/mods/dye/textures/dye_white.png differ diff --git a/games/minetime_game/mods/dye/textures/dye_yellow.png b/games/minetime_game/mods/dye/textures/dye_yellow.png new file mode 100644 index 0000000..fe75775 Binary files /dev/null and b/games/minetime_game/mods/dye/textures/dye_yellow.png differ diff --git a/games/minetime_game/mods/farming/API.txt b/games/minetime_game/mods/farming/API.txt new file mode 100644 index 0000000..a2f3d9d --- /dev/null +++ b/games/minetime_game/mods/farming/API.txt @@ -0,0 +1,27 @@ +farming.register_hoe(name, hoe definition) + -> Register a new hoe, see [hoe definition] + +farming.register_plant(name, Plant definition) + -> Register a new growing plant, see [Plant definition] + +Hoe Definition +{ + description = "", -- Description for tooltip + inventory_image = "unknown_item.png", -- Image to be used as wield- and inventory image + max_uses = 30, -- Uses until destroyed + recipe = { -- Craft recipe + {"air", "air", "air"}, + {"", "group:stick"}, + {"", "group:stick"}, + } +} + +Plant definition +{ + description = "", -- Description of seed item + inventory_image = "unknown_item.png", -- Image to be used as seed's wield- and inventory image + steps = 8, -- How many steps the plant has to grow, until it can be harvested + ^ Always provide a plant texture for ech step, format: modname_plantname_i.png (i = stepnumber) + minlight = 13, -- Minimum light to grow + maxlight = LIGHT_MAX -- Maximum light to grow +} \ No newline at end of file diff --git a/games/minetime_game/mods/farming/README.txt b/games/minetime_game/mods/farming/README.txt new file mode 100644 index 0000000..4663181 --- /dev/null +++ b/games/minetime_game/mods/farming/README.txt @@ -0,0 +1,59 @@ +Minetest 0.4 mod: farming +========================= + +License of source code: +----------------------- +Copyright (C) 2014 webdesigner97 + + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + Version 2, December 2004 + + Copyright (C) 2004 Sam Hocevar + + 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. + +License of media (textures): +---------------------------- +Created by PilzAdam (License: WTFPL): + farming_bread.png + farming_soil.png + farming_soil_wet.png + farming_soil_wet_side.png + farming_string.png + +Created by BlockMen (License: CC BY 3.0): + farming_tool_diamondhoe.png + farming_tool_mesehoe.png + farming_tool_bronzehoe.png + farming_tool_steelhoe.png + farming_tool_stonehoe.png + farming_tool_woodhoe.png + +Created by VanessaE (License: WTFPL): + farming_cotton_seed.png + farming_wheat_seed.png + farming_flour.png + farming_wheat.png + farming_wheat_1.png + farming_wheat_2.png + farming_wheat_3.png + farming_wheat_4.png + farming_wheat_5.png + farming_wheat_5.png + farming_wheat_7.png + farming_wheat_8.png + farming_cotton_1.png + farming_cotton_2.png + farming_cotton_3.png + farming_cotton_4.png + farming_cotton_5.png + farming_cotton_6.png + farming_cotton_7.png + farming_cotton_8.png diff --git a/games/minetime_game/mods/farming/api.lua b/games/minetime_game/mods/farming/api.lua new file mode 100644 index 0000000..e6d57f8 --- /dev/null +++ b/games/minetime_game/mods/farming/api.lua @@ -0,0 +1,281 @@ +-- Wear out hoes, place soil +-- TODO Ignore group:flower +farming.hoe_on_use = function(itemstack, user, pointed_thing, uses) + local pt = pointed_thing + -- check if pointing at a node + if not pt then + return + end + if pt.type ~= "node" then + return + end + + local under = minetest.get_node(pt.under) + local p = {x=pt.under.x, y=pt.under.y+1, z=pt.under.z} + local above = minetest.get_node(p) + + -- return if any of the nodes is not registered + if not minetest.registered_nodes[under.name] then + return + end + if not minetest.registered_nodes[above.name] then + return + end + + -- check if the node above the pointed thing is air + if above.name ~= "air" then + return + end + + -- check if pointing at soil + if minetest.get_item_group(under.name, "soil") ~= 1 then + return + end + + -- check if (wet) soil defined + local regN = minetest.registered_nodes + if regN[under.name].soil == nil or regN[under.name].soil.wet == nil or regN[under.name].soil.dry == nil then + return + end + + -- turn the node into soil, wear out item and play sound + minetest.set_node(pt.under, {name = regN[under.name].soil.dry}) + minetest.sound_play("default_dig_crumbly", { + pos = pt.under, + gain = 0.5, + }) + + if not minetest.setting_getbool("creative_mode") then + itemstack:add_wear(65535/(uses-1)) + end + return itemstack +end + +-- Register new hoes +farming.register_hoe = function(name, def) + -- Check for : prefix (register new hoes in your mod's namespace) + if name:sub(1,1) ~= ":" then + name = ":" .. name + end + -- Check def table + if def.description == nil then + def.description = "Hoe" + end + if def.inventory_image == nil then + def.inventory_image = "unknown_item.png" + end + if def.recipe == nil then + def.recipe = { + {"air","air",""}, + {"","group:stick",""}, + {"","group:stick",""} + } + end + if def.max_uses == nil then + def.max_uses = 30 + end + -- Register the tool + minetest.register_tool(name, { + description = def.description, + inventory_image = def.inventory_image, + on_use = function(itemstack, user, pointed_thing) + return farming.hoe_on_use(itemstack, user, pointed_thing, def.max_uses) + end + }) + -- Register its recipe + minetest.register_craft({ + output = name:gsub(":", "", 1), + recipe = def.recipe + }) +end + +-- Seed placement +farming.place_seed = function(itemstack, placer, pointed_thing, plantname) + local pt = pointed_thing + -- check if pointing at a node + if not pt then + return + end + if pt.type ~= "node" then + return + end + + local under = minetest.get_node(pt.under) + local above = minetest.get_node(pt.above) + + -- return if any of the nodes is not registered + if not minetest.registered_nodes[under.name] then + return + end + if not minetest.registered_nodes[above.name] then + return + end + + -- check if pointing at the top of the node + if pt.above.y ~= pt.under.y+1 then + return + end + + -- check if you can replace the node above the pointed node + if not minetest.registered_nodes[above.name].buildable_to then + return + end + + -- check if pointing at soil + if minetest.get_item_group(under.name, "soil") < 2 then + return + end + + -- add the node and remove 1 item from the itemstack + minetest.add_node(pt.above, {name = plantname, param2 = 1}) + if not minetest.setting_getbool("creative_mode") then + itemstack:take_item() + end + return itemstack +end + +-- Register plants +farming.register_plant = function(name, def) + local mname = name:split(":")[1] + local pname = name:split(":")[2] + + -- Check def table + if not def.description then + def.description = "Seed" + end + if not def.inventory_image then + def.inventory_image = "unknown_item.png" + end + if not def.steps then + return nil + end + if not def.minlight then + def.minlight = 1 + end + if not def.maxlight then + def.maxlight = 14 + end + if not def.fertility then + def.fertility = {} + end + + -- Register seed + local g = {seed = 1, snappy = 3, attached_node = 1} + for k, v in pairs(def.fertility) do + g[v] = 1 + end + minetest.register_node(":" .. mname .. ":seed_" .. pname, { + description = def.description, + tiles = {def.inventory_image}, + inventory_image = def.inventory_image, + wield_image = def.inventory_image, + drawtype = "signlike", + groups = g, + paramtype = "light", + paramtype2 = "wallmounted", + walkable = false, + sunlight_propagates = true, + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}, + }, + fertility = def.fertility, + on_place = function(itemstack, placer, pointed_thing) + return farming.place_seed(itemstack, placer, pointed_thing, mname .. ":seed_" .. pname) + end + }) + + -- Register harvest + minetest.register_craftitem(":" .. mname .. ":" .. pname, { + description = pname:gsub("^%l", string.upper), + inventory_image = mname .. "_" .. pname .. ".png", + }) + + -- Register growing steps + for i=1,def.steps do + local drop = { + items = { + {items = {mname .. ":" .. pname}, rarity = 9 - i}, + {items = {mname .. ":" .. pname}, rarity= 18 - i * 2}, + {items = {mname .. ":seed_" .. pname}, rarity = 9 - i}, + {items = {mname .. ":seed_" .. pname}, rarity = 18 - i * 2}, + } + } + local nodegroups = {snappy = 3, flammable = 2, plant = 1, not_in_creative_inventory = 1, attached_node = 1} + nodegroups[pname] = i + minetest.register_node(mname .. ":" .. pname .. "_" .. i, { + drawtype = "plantlike", + waving = 1, + tiles = {mname .. "_" .. pname .. "_" .. i .. ".png"}, + paramtype = "light", + walkable = false, + buildable_to = true, + is_ground_content = true, + drop = drop, + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}, + }, + groups = nodegroups, + sounds = default.node_sound_leaves_defaults(), + }) + end + + -- Growing ABM + minetest.register_abm({ + nodenames = {"group:" .. pname, "group:seed"}, + neighbors = {"group:soil"}, + interval = 90, + chance = 2, + action = function(pos, node) + local plant_height = minetest.get_item_group(node.name, pname) + + -- return if already full grown + if plant_height == def.steps then + return + end + + local node_def = minetest.registered_items[node.name] or nil + + -- grow seed + if minetest.get_item_group(node.name, "seed") and node_def.fertility then + local can_grow = false + local soil_node = minetest.get_node_or_nil({x = pos.x, y = pos.y - 1, z = pos.z}) + for _, v in pairs(node_def.fertility) do + if minetest.get_item_group(soil_node.name, v) ~= 0 then + can_grow = true + end + end + if can_grow then + minetest.set_node(pos, {name = node.name:gsub("seed_", "") .. "_1"}) + end + return + end + + -- check if on wet soil + pos.y = pos.y - 1 + local n = minetest.get_node(pos) + if minetest.get_item_group(n.name, "soil") < 3 then + return + end + pos.y = pos.y + 1 + + -- check light + local ll = minetest.get_node_light(pos) + + if not ll or ll < def.minlight or ll > def.maxlight then + return + end + + -- grow + minetest.set_node(pos, {name = mname .. ":" .. pname .. "_" .. plant_height + 1}) + end + }) + + -- Return + local r = { + seed = mname .. ":seed_" .. pname, + harvest = mname .. ":" .. pname + } + return r +end diff --git a/games/minetime_game/mods/farming/depends.txt b/games/minetime_game/mods/farming/depends.txt new file mode 100644 index 0000000..470ec30 --- /dev/null +++ b/games/minetime_game/mods/farming/depends.txt @@ -0,0 +1,2 @@ +default +wool diff --git a/games/minetime_game/mods/farming/hoes.lua b/games/minetime_game/mods/farming/hoes.lua new file mode 100644 index 0000000..084d586 --- /dev/null +++ b/games/minetime_game/mods/farming/hoes.lua @@ -0,0 +1,65 @@ +farming.register_hoe(":farming:hoe_wood", { + description = "Wooden Hoe", + inventory_image = "farming_tool_woodhoe.png", + max_uses = 30, + recipe = { + {"group:wood", "group:wood"}, + {"", "group:stick"}, + {"", "group:stick"}, + } +}) + +farming.register_hoe(":farming:hoe_stone", { + description = "Stone Hoe", + inventory_image = "farming_tool_stonehoe.png", + max_uses = 90, + recipe = { + {"group:stone", "group:stone"}, + {"", "group:stick"}, + {"", "group:stick"}, + } +}) + +farming.register_hoe(":farming:hoe_steel", { + description = "Steel Hoe", + inventory_image = "farming_tool_steelhoe.png", + max_uses = 200, + recipe = { + {"default:steel_ingot", "default:steel_ingot"}, + {"", "group:stick"}, + {"", "group:stick"}, + } +}) + +farming.register_hoe(":farming:hoe_bronze", { + description = "Bronze Hoe", + inventory_image = "farming_tool_bronzehoe.png", + max_uses = 220, + recipe = { + {"default:bronze_ingot", "default:bronze_ingot"}, + {"", "group:stick"}, + {"", "group:stick"}, + } +}) + +farming.register_hoe(":farming:hoe_mese", { + description = "Mese Hoe", + inventory_image = "farming_tool_mesehoe.png", + max_uses = 350, + recipe = { + {"default:mese_crystal", "default:mese_crystal"}, + {"", "group:stick"}, + {"", "group:stick"}, + } +}) + +farming.register_hoe(":farming:hoe_diamond", { + description = "Diamond Hoe", + inventory_image = "farming_tool_diamondhoe.png", + max_uses = 500, + recipe = { + {"default:diamond", "default:diamond"}, + {"", "group:stick"}, + {"", "group:stick"}, + } +}) diff --git a/games/minetime_game/mods/farming/init.lua b/games/minetime_game/mods/farming/init.lua new file mode 100644 index 0000000..9245470 --- /dev/null +++ b/games/minetime_game/mods/farming/init.lua @@ -0,0 +1,61 @@ +-- Global farming namespace +farming = {} +farming.path = minetest.get_modpath("farming") + +-- Load files +dofile(farming.path .. "/api.lua") +dofile(farming.path .. "/nodes.lua") +dofile(farming.path .. "/hoes.lua") + +-- WHEAT +farming.register_plant("farming:wheat", { + description = "Wheat seed", + inventory_image = "farming_wheat_seed.png", + steps = 8, + minlight = 13, + maxlight = LIGHT_MAX, + fertility = {"grassland"} +}) +minetest.register_craftitem("farming:flour", { + description = "Flour", + inventory_image = "farming_flour.png", +}) + +minetest.register_craftitem("farming:bread", { + description = "Bread", + inventory_image = "farming_bread.png", + on_use = minetest.item_eat(4), +}) + +minetest.register_craft({ + type = "shapeless", + output = "farming:flour", + recipe = {"farming:wheat", "farming:wheat", "farming:wheat", "farming:wheat"} +}) + +minetest.register_craft({ + type = "cooking", + cooktime = 15, + output = "farming:bread", + recipe = "farming:flour" +}) + +-- Cotton +farming.register_plant("farming:cotton", { + description = "Cotton seed", + inventory_image = "farming_cotton_seed.png", + steps = 8, + minlight = 13, + maxlight = LIGHT_MAX, + fertility = {"grassland", "desert"} +}) + +minetest.register_alias("farming:string", "farming:cotton") + +minetest.register_craft({ + output = "wool:white", + recipe = { + {"farming:cotton", "farming:cotton"}, + {"farming:cotton", "farming:cotton"}, + } +}) diff --git a/games/minetime_game/mods/farming/nodes.lua b/games/minetime_game/mods/farming/nodes.lua new file mode 100644 index 0000000..ba7aed4 --- /dev/null +++ b/games/minetime_game/mods/farming/nodes.lua @@ -0,0 +1,148 @@ +minetest.override_item("default:dirt", { + groups = {crumbly=3,soil=1}, + soil = { + base = "default:dirt", + dry = "farming:soil", + wet = "farming:soil_wet" + } +}) + +minetest.override_item("default:dirt_with_grass", { + groups = {crumbly=3,soil=1}, + soil = { + base = "default:dirt_with_grass", + dry = "farming:soil", + wet = "farming:soil_wet" + } +}) + +minetest.register_node("farming:soil", { + description = "Soil", + tiles = {"farming_soil.png", "default_dirt.png"}, + drop = "default:dirt", + is_ground_content = true, + groups = {crumbly=3, not_in_creative_inventory=1, soil=2, grassland = 1, field = 1}, + sounds = default.node_sound_dirt_defaults(), + soil = { + base = "default:dirt", + dry = "farming:soil", + wet = "farming:soil_wet" + } +}) + +minetest.register_node("farming:soil_wet", { + description = "Wet Soil", + tiles = {"farming_soil_wet.png", "farming_soil_wet_side.png"}, + drop = "default:dirt", + is_ground_content = true, + groups = {crumbly=3, not_in_creative_inventory=1, soil=3, wet = 1, grassland = 1, field = 1}, + sounds = default.node_sound_dirt_defaults(), + soil = { + base = "default:dirt", + dry = "farming:soil", + wet = "farming:soil_wet" + } +}) + +minetest.override_item("default:desert_sand", { + groups = {crumbly=3, falling_node=1, sand=1, soil = 1}, + soil = { + base = "default:desert_sand", + dry = "farming:desert_sand_soil", + wet = "farming:desert_sand_soil_wet" + } +}) +minetest.register_node("farming:desert_sand_soil", { + description = "Desert Sand Soil", + drop = "default:desert_sand", + tiles = {"farming_desert_sand_soil.png", "default_desert_sand.png"}, + is_ground_content = true, + groups = {crumbly=3, not_in_creative_inventory = 1, falling_node=1, sand=1, soil = 2, desert = 1, field = 1}, + sounds = default.node_sound_sand_defaults(), + soil = { + base = "default:desert_sand", + dry = "farming:desert_sand_soil", + wet = "farming:desert_sand_soil_wet" + } +}) + +minetest.register_node("farming:desert_sand_soil_wet", { + description = "Wet Desert Sand Soil", + drop = "default:desert_sand", + tiles = {"farming_desert_sand_soil_wet.png", "farming_desert_sand_soil_wet_side.png"}, + is_ground_content = true, + groups = {crumbly=3, falling_node=1, sand=1, not_in_creative_inventory=1, soil=3, wet = 1, desert = 1, field = 1}, + sounds = default.node_sound_sand_defaults(), + soil = { + base = "default:desert_sand", + dry = "farming:desert_sand_soil", + wet = "farming:desert_sand_soil_wet" + } +}) + +minetest.register_abm({ + nodenames = {"group:field"}, + interval = 15, + chance = 4, + action = function(pos, node) + local n_def = minetest.registered_nodes[node.name] or nil + local wet = n_def.soil.wet or nil + local base = n_def.soil.base or nil + local dry = n_def.soil.dry or nil + if not n_def or not n_def.soil or not wet or not base or not dry then + return + end + + pos.y = pos.y + 1 + local nn = minetest.get_node_or_nil(pos) + if not nn or not nn.name then + return + end + local nn_def = minetest.registered_nodes[nn.name] or nil + pos.y = pos.y - 1 + + if nn_def and nn_def.walkable and minetest.get_item_group(nn.name, "plant") == 0 then + minetest.set_node(pos, {name = base}) + return + end + -- check if there is water nearby + if minetest.find_node_near(pos, 3, {"group:water"}) then + local wet_lvl = minetest.get_item_group(node.name, "wet") + -- if it is dry soil and not base node, turn it into wet soil + if wet_lvl == 0 then + minetest.set_node(pos, {name = wet}) + end + else + -- turn it back into base if it is already dry + if wet_lvl == 0 then + -- only turn it back if there is no plant/seed on top of it + if minetest.get_item_group(nn.name, "plant") == 0 and minetest.get_item_group(nn.name, "seed") == 0 then + minetest.set_node(pos, {name = base}) + end + + -- if its wet turn it back into dry soil + elseif wet_lvl == 1 then + minetest.set_node(pos, {name = dry}) + end + end + end, +}) + + +for i = 1, 5 do + minetest.override_item("default:grass_"..i, {drop = { + max_items = 1, + items = { + {items = {'farming:seed_wheat'},rarity = 5}, + {items = {'default:grass_1'}}, + } + }}) +end + +minetest.override_item("default:junglegrass", {drop = { + max_items = 1, + items = { + {items = {'farming:seed_cotton'},rarity = 8}, + {items = {'default:junglegrass'}}, + } +}}) diff --git a/games/minetime_game/mods/farming/textures/farming_bread.png b/games/minetime_game/mods/farming/textures/farming_bread.png new file mode 100644 index 0000000..00e5371 Binary files /dev/null and b/games/minetime_game/mods/farming/textures/farming_bread.png differ diff --git a/games/minetime_game/mods/farming/textures/farming_cotton.png b/games/minetime_game/mods/farming/textures/farming_cotton.png new file mode 100644 index 0000000..e2bbfd7 Binary files /dev/null and b/games/minetime_game/mods/farming/textures/farming_cotton.png differ diff --git a/games/minetime_game/mods/farming/textures/farming_cotton_1.png b/games/minetime_game/mods/farming/textures/farming_cotton_1.png new file mode 100644 index 0000000..2581db5 Binary files /dev/null and b/games/minetime_game/mods/farming/textures/farming_cotton_1.png differ diff --git a/games/minetime_game/mods/farming/textures/farming_cotton_2.png b/games/minetime_game/mods/farming/textures/farming_cotton_2.png new file mode 100644 index 0000000..af9ed34 Binary files /dev/null and b/games/minetime_game/mods/farming/textures/farming_cotton_2.png differ diff --git a/games/minetime_game/mods/farming/textures/farming_cotton_3.png b/games/minetime_game/mods/farming/textures/farming_cotton_3.png new file mode 100644 index 0000000..ba46f3d Binary files /dev/null and b/games/minetime_game/mods/farming/textures/farming_cotton_3.png differ diff --git a/games/minetime_game/mods/farming/textures/farming_cotton_4.png b/games/minetime_game/mods/farming/textures/farming_cotton_4.png new file mode 100644 index 0000000..e6708b5 Binary files /dev/null and b/games/minetime_game/mods/farming/textures/farming_cotton_4.png differ diff --git a/games/minetime_game/mods/farming/textures/farming_cotton_5.png b/games/minetime_game/mods/farming/textures/farming_cotton_5.png new file mode 100644 index 0000000..0ad6a8f Binary files /dev/null and b/games/minetime_game/mods/farming/textures/farming_cotton_5.png differ diff --git a/games/minetime_game/mods/farming/textures/farming_cotton_6.png b/games/minetime_game/mods/farming/textures/farming_cotton_6.png new file mode 100644 index 0000000..838fa93 Binary files /dev/null and b/games/minetime_game/mods/farming/textures/farming_cotton_6.png differ diff --git a/games/minetime_game/mods/farming/textures/farming_cotton_7.png b/games/minetime_game/mods/farming/textures/farming_cotton_7.png new file mode 100644 index 0000000..f2623c2 Binary files /dev/null and b/games/minetime_game/mods/farming/textures/farming_cotton_7.png differ diff --git a/games/minetime_game/mods/farming/textures/farming_cotton_8.png b/games/minetime_game/mods/farming/textures/farming_cotton_8.png new file mode 100644 index 0000000..d4bf6bd Binary files /dev/null and b/games/minetime_game/mods/farming/textures/farming_cotton_8.png differ diff --git a/games/minetime_game/mods/farming/textures/farming_cotton_seed.png b/games/minetime_game/mods/farming/textures/farming_cotton_seed.png new file mode 100644 index 0000000..cff769b Binary files /dev/null and b/games/minetime_game/mods/farming/textures/farming_cotton_seed.png differ diff --git a/games/minetime_game/mods/farming/textures/farming_desert_sand_soil.png b/games/minetime_game/mods/farming/textures/farming_desert_sand_soil.png new file mode 100644 index 0000000..1450e01 Binary files /dev/null and b/games/minetime_game/mods/farming/textures/farming_desert_sand_soil.png differ diff --git a/games/minetime_game/mods/farming/textures/farming_desert_sand_soil_wet.png b/games/minetime_game/mods/farming/textures/farming_desert_sand_soil_wet.png new file mode 100644 index 0000000..cffa955 Binary files /dev/null and b/games/minetime_game/mods/farming/textures/farming_desert_sand_soil_wet.png differ diff --git a/games/minetime_game/mods/farming/textures/farming_desert_sand_soil_wet_side.png b/games/minetime_game/mods/farming/textures/farming_desert_sand_soil_wet_side.png new file mode 100644 index 0000000..fbb2815 Binary files /dev/null and b/games/minetime_game/mods/farming/textures/farming_desert_sand_soil_wet_side.png differ diff --git a/games/minetime_game/mods/farming/textures/farming_flour.png b/games/minetime_game/mods/farming/textures/farming_flour.png new file mode 100644 index 0000000..bd33f93 Binary files /dev/null and b/games/minetime_game/mods/farming/textures/farming_flour.png differ diff --git a/games/minetime_game/mods/farming/textures/farming_soil.png b/games/minetime_game/mods/farming/textures/farming_soil.png new file mode 100644 index 0000000..0be94e3 Binary files /dev/null and b/games/minetime_game/mods/farming/textures/farming_soil.png differ diff --git a/games/minetime_game/mods/farming/textures/farming_soil_wet.png b/games/minetime_game/mods/farming/textures/farming_soil_wet.png new file mode 100644 index 0000000..d5e335e Binary files /dev/null and b/games/minetime_game/mods/farming/textures/farming_soil_wet.png differ diff --git a/games/minetime_game/mods/farming/textures/farming_soil_wet_side.png b/games/minetime_game/mods/farming/textures/farming_soil_wet_side.png new file mode 100644 index 0000000..6bd3a56 Binary files /dev/null and b/games/minetime_game/mods/farming/textures/farming_soil_wet_side.png differ diff --git a/games/minetime_game/mods/farming/textures/farming_tool_bronzehoe.png b/games/minetime_game/mods/farming/textures/farming_tool_bronzehoe.png new file mode 100644 index 0000000..ef07a80 Binary files /dev/null and b/games/minetime_game/mods/farming/textures/farming_tool_bronzehoe.png differ diff --git a/games/minetime_game/mods/farming/textures/farming_tool_diamondhoe.png b/games/minetime_game/mods/farming/textures/farming_tool_diamondhoe.png new file mode 100644 index 0000000..093acb8 Binary files /dev/null and b/games/minetime_game/mods/farming/textures/farming_tool_diamondhoe.png differ diff --git a/games/minetime_game/mods/farming/textures/farming_tool_mesehoe.png b/games/minetime_game/mods/farming/textures/farming_tool_mesehoe.png new file mode 100644 index 0000000..ffd597a Binary files /dev/null and b/games/minetime_game/mods/farming/textures/farming_tool_mesehoe.png differ diff --git a/games/minetime_game/mods/farming/textures/farming_tool_steelhoe.png b/games/minetime_game/mods/farming/textures/farming_tool_steelhoe.png new file mode 100644 index 0000000..893a695 Binary files /dev/null and b/games/minetime_game/mods/farming/textures/farming_tool_steelhoe.png differ diff --git a/games/minetime_game/mods/farming/textures/farming_tool_stonehoe.png b/games/minetime_game/mods/farming/textures/farming_tool_stonehoe.png new file mode 100644 index 0000000..4f8dade Binary files /dev/null and b/games/minetime_game/mods/farming/textures/farming_tool_stonehoe.png differ diff --git a/games/minetime_game/mods/farming/textures/farming_tool_woodhoe.png b/games/minetime_game/mods/farming/textures/farming_tool_woodhoe.png new file mode 100644 index 0000000..8b20d2d Binary files /dev/null and b/games/minetime_game/mods/farming/textures/farming_tool_woodhoe.png differ diff --git a/games/minetime_game/mods/farming/textures/farming_wheat.png b/games/minetime_game/mods/farming/textures/farming_wheat.png new file mode 100644 index 0000000..cba5137 Binary files /dev/null and b/games/minetime_game/mods/farming/textures/farming_wheat.png differ diff --git a/games/minetime_game/mods/farming/textures/farming_wheat_1.png b/games/minetime_game/mods/farming/textures/farming_wheat_1.png new file mode 100644 index 0000000..2ca23ee Binary files /dev/null and b/games/minetime_game/mods/farming/textures/farming_wheat_1.png differ diff --git a/games/minetime_game/mods/farming/textures/farming_wheat_2.png b/games/minetime_game/mods/farming/textures/farming_wheat_2.png new file mode 100644 index 0000000..6ae90d6 Binary files /dev/null and b/games/minetime_game/mods/farming/textures/farming_wheat_2.png differ diff --git a/games/minetime_game/mods/farming/textures/farming_wheat_3.png b/games/minetime_game/mods/farming/textures/farming_wheat_3.png new file mode 100644 index 0000000..29950fe Binary files /dev/null and b/games/minetime_game/mods/farming/textures/farming_wheat_3.png differ diff --git a/games/minetime_game/mods/farming/textures/farming_wheat_4.png b/games/minetime_game/mods/farming/textures/farming_wheat_4.png new file mode 100644 index 0000000..cdc2003 Binary files /dev/null and b/games/minetime_game/mods/farming/textures/farming_wheat_4.png differ diff --git a/games/minetime_game/mods/farming/textures/farming_wheat_5.png b/games/minetime_game/mods/farming/textures/farming_wheat_5.png new file mode 100644 index 0000000..2ddff03 Binary files /dev/null and b/games/minetime_game/mods/farming/textures/farming_wheat_5.png differ diff --git a/games/minetime_game/mods/farming/textures/farming_wheat_6.png b/games/minetime_game/mods/farming/textures/farming_wheat_6.png new file mode 100644 index 0000000..f7d8145 Binary files /dev/null and b/games/minetime_game/mods/farming/textures/farming_wheat_6.png differ diff --git a/games/minetime_game/mods/farming/textures/farming_wheat_7.png b/games/minetime_game/mods/farming/textures/farming_wheat_7.png new file mode 100644 index 0000000..89a9591 Binary files /dev/null and b/games/minetime_game/mods/farming/textures/farming_wheat_7.png differ diff --git a/games/minetime_game/mods/farming/textures/farming_wheat_8.png b/games/minetime_game/mods/farming/textures/farming_wheat_8.png new file mode 100644 index 0000000..78181ff Binary files /dev/null and b/games/minetime_game/mods/farming/textures/farming_wheat_8.png differ diff --git a/games/minetime_game/mods/farming/textures/farming_wheat_seed.png b/games/minetime_game/mods/farming/textures/farming_wheat_seed.png new file mode 100644 index 0000000..81fc3b2 Binary files /dev/null and b/games/minetime_game/mods/farming/textures/farming_wheat_seed.png differ diff --git a/games/minetime_game/mods/fire/README.txt b/games/minetime_game/mods/fire/README.txt new file mode 100644 index 0000000..fdbce15 --- /dev/null +++ b/games/minetime_game/mods/fire/README.txt @@ -0,0 +1,32 @@ +Minetest 0.4 mod: fire +====================== + +License of source code: +----------------------- +Copyright (C) 2012 Perttu Ahola (celeron55) + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +http://www.gnu.org/licenses/lgpl-2.1.html + +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) 2012 Perttu Ahola (celeron55) + +fire_small.ogg sampled from: + http://www.freesound.org/people/dobroide/sounds/4211/ + +fire_large.ogg sampled from: + http://www.freesound.org/people/Dynamicell/sounds/17548/ + +fire_basic_flame_animated.png: + Muadtralk diff --git a/games/minetime_game/mods/fire/init.lua b/games/minetime_game/mods/fire/init.lua new file mode 100644 index 0000000..9acda87 --- /dev/null +++ b/games/minetime_game/mods/fire/init.lua @@ -0,0 +1,192 @@ +-- minetest/fire/init.lua + +minetest.register_node("fire:basic_flame", { + description = "Fire", + drawtype = "plantlike", + tiles = {{ + name="fire_basic_flame_animated.png", + animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=1}, + }}, + inventory_image = "fire_basic_flame.png", + light_source = 14, + groups = {igniter=2,dig_immediate=3,hot=3}, + drop = '', + walkable = false, + buildable_to = true, + damage_per_second = 4, + + after_place_node = function(pos, placer) + fire.on_flame_add_at(pos) + end, + + after_dig_node = function(pos, oldnode, oldmetadata, digger) + fire.on_flame_remove_at(pos) + end, +}) + +fire = {} +fire.D = 6 +-- key: position hash of low corner of area +-- value: {handle=sound handle, name=sound name} +fire.sounds = {} + +function fire.get_area_p0p1(pos) + local p0 = { + x=math.floor(pos.x/fire.D)*fire.D, + y=math.floor(pos.y/fire.D)*fire.D, + z=math.floor(pos.z/fire.D)*fire.D, + } + local p1 = { + x=p0.x+fire.D-1, + y=p0.y+fire.D-1, + z=p0.z+fire.D-1 + } + return p0, p1 +end + +function fire.update_sounds_around(pos) + local p0, p1 = fire.get_area_p0p1(pos) + local cp = {x=(p0.x+p1.x)/2, y=(p0.y+p1.y)/2, z=(p0.z+p1.z)/2} + local flames_p = minetest.find_nodes_in_area(p0, p1, {"fire:basic_flame"}) + --print("number of flames at "..minetest.pos_to_string(p0).."/" + -- ..minetest.pos_to_string(p1)..": "..#flames_p) + local should_have_sound = (#flames_p > 0) + local wanted_sound = nil + if #flames_p >= 9 then + wanted_sound = {name="fire_large", gain=1.5} + elseif #flames_p > 0 then + wanted_sound = {name="fire_small", gain=1.5} + end + local p0_hash = minetest.hash_node_position(p0) + local sound = fire.sounds[p0_hash] + if not sound then + if should_have_sound then + fire.sounds[p0_hash] = { + handle = minetest.sound_play(wanted_sound, {pos=cp, loop=true}), + name = wanted_sound.name, + } + end + else + if not wanted_sound then + minetest.sound_stop(sound.handle) + fire.sounds[p0_hash] = nil + elseif sound.name ~= wanted_sound.name then + minetest.sound_stop(sound.handle) + fire.sounds[p0_hash] = { + handle = minetest.sound_play(wanted_sound, {pos=cp, loop=true}), + name = wanted_sound.name, + } + end + end +end + +function fire.on_flame_add_at(pos) + --print("flame added at "..minetest.pos_to_string(pos)) + fire.update_sounds_around(pos) +end + +function fire.on_flame_remove_at(pos) + --print("flame removed at "..minetest.pos_to_string(pos)) + fire.update_sounds_around(pos) +end + +function fire.find_pos_for_flame_around(pos) + return minetest.find_node_near(pos, 1, {"air"}) +end + +function fire.flame_should_extinguish(pos) + if minetest.setting_getbool("disable_fire") then return true end + --return minetest.find_node_near(pos, 1, {"group:puts_out_fire"}) + local p0 = {x=pos.x-2, y=pos.y, z=pos.z-2} + local p1 = {x=pos.x+2, y=pos.y, z=pos.z+2} + local ps = minetest.find_nodes_in_area(p0, p1, {"group:puts_out_fire"}) + return (#ps ~= 0) +end + +-- Ignite neighboring nodes +minetest.register_abm({ + nodenames = {"group:flammable"}, + neighbors = {"group:igniter"}, + interval = 1, + chance = 2, + action = function(p0, node, _, _) + -- If there is water or stuff like that around flame, don't ignite + if fire.flame_should_extinguish(p0) then + return + end + local p = fire.find_pos_for_flame_around(p0) + if p then + minetest.set_node(p, {name="fire:basic_flame"}) + fire.on_flame_add_at(p) + end + end, +}) + +-- Rarely ignite things from far +minetest.register_abm({ + nodenames = {"group:igniter"}, + neighbors = {"air"}, + interval = 2, + chance = 10, + action = function(p0, node, _, _) + local reg = minetest.registered_nodes[node.name] + if not reg or not reg.groups.igniter or reg.groups.igniter < 2 then + return + end + local d = reg.groups.igniter + local p = minetest.find_node_near(p0, d, {"group:flammable"}) + if p then + -- If there is water or stuff like that around flame, don't ignite + if fire.flame_should_extinguish(p) then + return + end + local p2 = fire.find_pos_for_flame_around(p) + if p2 then + minetest.set_node(p2, {name="fire:basic_flame"}) + fire.on_flame_add_at(p2) + end + end + end, +}) + +-- Remove flammable nodes and flame +minetest.register_abm({ + nodenames = {"fire:basic_flame"}, + interval = 1, + chance = 2, + action = function(p0, node, _, _) + -- If there is water or stuff like that around flame, remove flame + if fire.flame_should_extinguish(p0) then + minetest.remove_node(p0) + fire.on_flame_remove_at(p0) + return + end + -- Make the following things rarer + if math.random(1,3) == 1 then + return + end + -- If there are no flammable nodes around flame, remove flame + if not minetest.find_node_near(p0, 1, {"group:flammable"}) then + minetest.remove_node(p0) + fire.on_flame_remove_at(p0) + return + end + if math.random(1,4) == 1 then + -- remove a flammable node around flame + local p = minetest.find_node_near(p0, 1, {"group:flammable"}) + if p then + -- If there is water or stuff like that around flame, don't remove + if fire.flame_should_extinguish(p0) then + return + end + minetest.remove_node(p) + nodeupdate(p) + end + else + -- remove flame + minetest.remove_node(p0) + fire.on_flame_remove_at(p0) + end + end, +}) + diff --git a/games/minetime_game/mods/fire/sounds/fire_large.ogg b/games/minetime_game/mods/fire/sounds/fire_large.ogg new file mode 100644 index 0000000..fe78e62 Binary files /dev/null and b/games/minetime_game/mods/fire/sounds/fire_large.ogg differ diff --git a/games/minetime_game/mods/fire/sounds/fire_small.ogg b/games/minetime_game/mods/fire/sounds/fire_small.ogg new file mode 100644 index 0000000..5aac595 Binary files /dev/null and b/games/minetime_game/mods/fire/sounds/fire_small.ogg differ diff --git a/games/minetime_game/mods/fire/textures/fire_basic_flame.png b/games/minetime_game/mods/fire/textures/fire_basic_flame.png new file mode 100644 index 0000000..7a126e3 Binary files /dev/null and b/games/minetime_game/mods/fire/textures/fire_basic_flame.png differ diff --git a/games/minetime_game/mods/fire/textures/fire_basic_flame_animated.png b/games/minetime_game/mods/fire/textures/fire_basic_flame_animated.png new file mode 100644 index 0000000..3b312e5 Binary files /dev/null and b/games/minetime_game/mods/fire/textures/fire_basic_flame_animated.png differ diff --git a/games/minetime_game/mods/flowers/README.txt b/games/minetime_game/mods/flowers/README.txt new file mode 100644 index 0000000..04f96d9 --- /dev/null +++ b/games/minetime_game/mods/flowers/README.txt @@ -0,0 +1,16 @@ +Minetest 0.4 mod: flowers +========================= + +License of source code: +----------------------- +Copyright (C) 2012-2013 Ironzorg, VanessaE + +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) +-------------------------------------- +WTFPL diff --git a/games/minetime_game/mods/flowers/depends.txt b/games/minetime_game/mods/flowers/depends.txt new file mode 100644 index 0000000..4ad96d5 --- /dev/null +++ b/games/minetime_game/mods/flowers/depends.txt @@ -0,0 +1 @@ +default diff --git a/games/minetime_game/mods/flowers/init.lua b/games/minetime_game/mods/flowers/init.lua new file mode 100644 index 0000000..b409647 --- /dev/null +++ b/games/minetime_game/mods/flowers/init.lua @@ -0,0 +1,167 @@ +-- Minetest 0.4 mod: default +-- See README.txt for licensing and other information. + +-- Map Generation +dofile(minetest.get_modpath("flowers").."/mapgen.lua") + +-- Aliases for original flowers mod +minetest.register_alias("flowers:flower_dandelion_white", "flowers:dandelion_white") +minetest.register_alias("flowers:flower_dandelion_yellow", "flowers:dandelion_yellow") +minetest.register_alias("flowers:flower_geranium", "flowers:geranium") +minetest.register_alias("flowers:flower_rose", "flowers:rose") +minetest.register_alias("flowers:flower_tulip", "flowers:tulip") +minetest.register_alias("flowers:flower_viola", "flowers:viola") + +minetest.register_node("flowers:dandelion_white", { + description = "White Dandelion", + drawtype = "plantlike", + tiles = { "flowers_dandelion_white.png" }, + inventory_image = "flowers_dandelion_white.png", + wield_image = "flowers_dandelion_white.png", + sunlight_propagates = true, + paramtype = "light", + walkable = false, + buildable_to = true, + groups = {snappy=3,flammable=2,flower=1,flora=1,attached_node=1,color_white=1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = { -0.15, -0.5, -0.15, 0.15, 0.2, 0.15 }, + }, +}) + +minetest.register_node("flowers:dandelion_yellow", { + description = "Yellow Dandelion", + drawtype = "plantlike", + tiles = { "flowers_dandelion_yellow.png" }, + inventory_image = "flowers_dandelion_yellow.png", + wield_image = "flowers_dandelion_yellow.png", + sunlight_propagates = true, + paramtype = "light", + walkable = false, + buildable_to = true, + groups = {snappy=3,flammable=2,flower=1,flora=1,attached_node=1,color_yellow=1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = { -0.15, -0.5, -0.15, 0.15, 0.2, 0.15 }, + }, +}) + +minetest.register_node("flowers:geranium", { + description = "Blue Geranium", + drawtype = "plantlike", + tiles = { "flowers_geranium.png" }, + inventory_image = "flowers_geranium.png", + wield_image = "flowers_geranium.png", + sunlight_propagates = true, + paramtype = "light", + walkable = false, + buildable_to = true, + groups = {snappy=3,flammable=2,flower=1,flora=1,attached_node=1,color_blue=1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = { -0.15, -0.5, -0.15, 0.15, 0.2, 0.15 }, + }, +}) + +minetest.register_node("flowers:rose", { + description = "Rose", + drawtype = "plantlike", + tiles = { "flowers_rose.png" }, + inventory_image = "flowers_rose.png", + wield_image = "flowers_rose.png", + sunlight_propagates = true, + paramtype = "light", + walkable = false, + buildable_to = true, + groups = {snappy=3,flammable=2,flower=1,flora=1,attached_node=1,color_red=1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = { -0.15, -0.5, -0.15, 0.15, 0.2, 0.15 }, + }, +}) + +minetest.register_node("flowers:tulip", { + description = "Tulip", + drawtype = "plantlike", + tiles = { "flowers_tulip.png" }, + inventory_image = "flowers_tulip.png", + wield_image = "flowers_tulip.png", + sunlight_propagates = true, + paramtype = "light", + walkable = false, + buildable_to = true, + groups = {snappy=3,flammable=2,flower=1,flora=1,attached_node=1,color_orange=1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = { -0.15, -0.5, -0.15, 0.15, 0.2, 0.15 }, + }, +}) + +minetest.register_node("flowers:viola", { + description = "Viola", + drawtype = "plantlike", + tiles = { "flowers_viola.png" }, + inventory_image = "flowers_viola.png", + wield_image = "flowers_viola.png", + sunlight_propagates = true, + paramtype = "light", + walkable = false, + buildable_to = true, + groups = {snappy=3,flammable=2,flower=1,flora=1,attached_node=1,color_violet=1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = { -0.15, -0.5, -0.15, 0.15, 0.2, 0.15 }, + }, +}) + +minetest.register_abm({ + nodenames = {"group:flora"}, + neighbors = {"default:dirt_with_grass", "default:desert_sand"}, + interval = 50, + chance = 25, + action = function(pos, node) + pos.y = pos.y - 1 + local under = minetest.get_node(pos) + pos.y = pos.y + 1 + if under.name == "default:desert_sand" then + minetest.set_node(pos, {name="default:dry_shrub"}) + elseif under.name ~= "default:dirt_with_grass" then + return + end + + local light = minetest.get_node_light(pos) + if not light or light < 13 then + return + end + + local pos0 = {x=pos.x-4,y=pos.y-4,z=pos.z-4} + local pos1 = {x=pos.x+4,y=pos.y+4,z=pos.z+4} + if #minetest.find_nodes_in_area(pos0, pos1, "group:flora_block") > 0 then + return + end + + local flowers = minetest.find_nodes_in_area(pos0, pos1, "group:flora") + if #flowers > 3 then + return + end + + local seedling = minetest.find_nodes_in_area(pos0, pos1, "default:dirt_with_grass") + if #seedling > 0 then + seedling = seedling[math.random(#seedling)] + seedling.y = seedling.y + 1 + light = minetest.get_node_light(seedling) + if not light or light < 13 then + return + end + if minetest.get_node(seedling).name == "air" then + minetest.set_node(seedling, {name=node.name}) + end + end + end, +}) diff --git a/games/minetime_game/mods/flowers/mapgen.lua b/games/minetime_game/mods/flowers/mapgen.lua new file mode 100644 index 0000000..7148f6e --- /dev/null +++ b/games/minetime_game/mods/flowers/mapgen.lua @@ -0,0 +1,62 @@ +minetest.register_on_generated(function(minp, maxp, seed) + if maxp.y >= 2 and minp.y <= 0 then + -- Generate flowers + local perlin1 = minetest.get_perlin(436, 3, 0.6, 100) + -- Assume X and Z lengths are equal + local divlen = 16 + local divs = (maxp.x-minp.x)/divlen+1; + for divx=0,divs-1 do + for divz=0,divs-1 do + local x0 = minp.x + math.floor((divx+0)*divlen) + local z0 = minp.z + math.floor((divz+0)*divlen) + local x1 = minp.x + math.floor((divx+1)*divlen) + local z1 = minp.z + math.floor((divz+1)*divlen) + -- Determine flowers amount from perlin noise + local grass_amount = math.floor(perlin1:get2d({x=x0, y=z0}) ^ 3 * 9) + -- Find random positions for flowers based on this random + local pr = PseudoRandom(seed+456) + for i=0,grass_amount do + local x = pr:next(x0, x1) + local z = pr:next(z0, z1) + -- Find ground level (0...15) + local ground_y = nil + for y=30,0,-1 do + if minetest.get_node({x=x,y=y,z=z}).name ~= "air" then + ground_y = y + break + end + end + + if ground_y then + local p = {x=x,y=ground_y+1,z=z} + local nn = minetest.get_node(p).name + -- Check if the node can be replaced + if minetest.registered_nodes[nn] and + minetest.registered_nodes[nn].buildable_to then + nn = minetest.get_node({x=x,y=ground_y,z=z}).name + if nn == "default:dirt_with_grass" then + local flower_choice = pr:next(1, 6) + local flower + if flower_choice == 1 then + flower = "flowers:tulip" + elseif flower_choice == 2 then + flower = "flowers:rose" + elseif flower_choice == 3 then + flower = "flowers:dandelion_yellow" + elseif flower_choice == 4 then + flower = "flowers:dandelion_white" + elseif flower_choice == 5 then + flower = "flowers:geranium" + elseif flower_choice == 6 then + flower = "flowers:viola" + end + minetest.set_node(p, {name=flower}) + end + end + end + + end + end + end + end +end) diff --git a/games/minetime_game/mods/flowers/textures/flowers_dandelion_white.png b/games/minetime_game/mods/flowers/textures/flowers_dandelion_white.png new file mode 100644 index 0000000..dee0fc5 Binary files /dev/null and b/games/minetime_game/mods/flowers/textures/flowers_dandelion_white.png differ diff --git a/games/minetime_game/mods/flowers/textures/flowers_dandelion_yellow.png b/games/minetime_game/mods/flowers/textures/flowers_dandelion_yellow.png new file mode 100644 index 0000000..99becb5 Binary files /dev/null and b/games/minetime_game/mods/flowers/textures/flowers_dandelion_yellow.png differ diff --git a/games/minetime_game/mods/flowers/textures/flowers_geranium.png b/games/minetime_game/mods/flowers/textures/flowers_geranium.png new file mode 100644 index 0000000..22b7da1 Binary files /dev/null and b/games/minetime_game/mods/flowers/textures/flowers_geranium.png differ diff --git a/games/minetime_game/mods/flowers/textures/flowers_rose.png b/games/minetime_game/mods/flowers/textures/flowers_rose.png new file mode 100644 index 0000000..cc3803a Binary files /dev/null and b/games/minetime_game/mods/flowers/textures/flowers_rose.png differ diff --git a/games/minetime_game/mods/flowers/textures/flowers_tulip.png b/games/minetime_game/mods/flowers/textures/flowers_tulip.png new file mode 100644 index 0000000..f03e3aa Binary files /dev/null and b/games/minetime_game/mods/flowers/textures/flowers_tulip.png differ diff --git a/games/minetime_game/mods/flowers/textures/flowers_viola.png b/games/minetime_game/mods/flowers/textures/flowers_viola.png new file mode 100644 index 0000000..93a525d Binary files /dev/null and b/games/minetime_game/mods/flowers/textures/flowers_viola.png differ diff --git a/games/minimal/mods/experimental/depends.txt b/games/minetime_game/mods/give_initial_stuff/depends.txt similarity index 100% rename from games/minimal/mods/experimental/depends.txt rename to games/minetime_game/mods/give_initial_stuff/depends.txt diff --git a/games/minetime_game/mods/give_initial_stuff/init.lua b/games/minetime_game/mods/give_initial_stuff/init.lua new file mode 100644 index 0000000..c65ddea --- /dev/null +++ b/games/minetime_game/mods/give_initial_stuff/init.lua @@ -0,0 +1,12 @@ +minetest.register_on_newplayer(function(player) + --print("on_newplayer") + if minetest.setting_getbool("give_initial_stuff") then + minetest.log("action", "Giving initial stuff to player "..player:get_player_name()) + player:get_inventory():add_item('main', 'default:pick_steel') + player:get_inventory():add_item('main', 'default:torch 99') + player:get_inventory():add_item('main', 'default:axe_steel') + player:get_inventory():add_item('main', 'default:shovel_steel') + player:get_inventory():add_item('main', 'default:cobble 99') + end +end) + diff --git a/games/minetime_game/mods/memorandum/.gitattributes b/games/minetime_game/mods/memorandum/.gitattributes new file mode 100644 index 0000000..412eeda --- /dev/null +++ b/games/minetime_game/mods/memorandum/.gitattributes @@ -0,0 +1,22 @@ +# Auto detect text files and perform LF normalization +* text=auto + +# Custom for Visual Studio +*.cs diff=csharp +*.sln merge=union +*.csproj merge=union +*.vbproj merge=union +*.fsproj merge=union +*.dbproj merge=union + +# Standard to msysgit +*.doc diff=astextplain +*.DOC diff=astextplain +*.docx diff=astextplain +*.DOCX diff=astextplain +*.dot diff=astextplain +*.DOT diff=astextplain +*.pdf diff=astextplain +*.PDF diff=astextplain +*.rtf diff=astextplain +*.RTF diff=astextplain diff --git a/games/minetime_game/mods/memorandum/.gitignore b/games/minetime_game/mods/memorandum/.gitignore new file mode 100644 index 0000000..b9d6bd9 --- /dev/null +++ b/games/minetime_game/mods/memorandum/.gitignore @@ -0,0 +1,215 @@ +################# +## Eclipse +################# + +*.pydevproject +.project +.metadata +bin/ +tmp/ +*.tmp +*.bak +*.swp +*~.nib +local.properties +.classpath +.settings/ +.loadpath + +# External tool builders +.externalToolBuilders/ + +# Locally stored "Eclipse launch configurations" +*.launch + +# CDT-specific +.cproject + +# PDT-specific +.buildpath + + +################# +## Visual Studio +################# + +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.sln.docstates + +# Build results + +[Dd]ebug/ +[Rr]elease/ +x64/ +build/ +[Bb]in/ +[Oo]bj/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +*_i.c +*_p.c +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.log +*.scc + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf +*.cachefile + +# Visual Studio profiler +*.psess +*.vsp +*.vspx + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# NCrunch +*.ncrunch* +.*crunch*.local.xml + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.Publish.xml +*.pubxml + +# NuGet Packages Directory +## TODO: If you have NuGet Package Restore enabled, uncomment the next line +#packages/ + +# Windows Azure Build Output +csx +*.build.csdef + +# Windows Store app package directory +AppPackages/ + +# Others +sql/ +*.Cache +ClientBin/ +[Ss]tyle[Cc]op.* +~$* +*~ +*.dbmdl +*.[Pp]ublish.xml +*.pfx +*.publishsettings + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file to a newer +# Visual Studio version. Backup files are not needed, because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +App_Data/*.mdf +App_Data/*.ldf + +############# +## Windows detritus +############# + +# Windows image file caches +Thumbs.db +ehthumbs.db + +# Folder config file +Desktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Mac crap +.DS_Store + + +############# +## Python +############# + +*.py[co] + +# Packages +*.egg +*.egg-info +dist/ +build/ +eggs/ +parts/ +var/ +sdist/ +develop-eggs/ +.installed.cfg + +# Installer logs +pip-log.txt + +# Unit test / coverage reports +.coverage +.tox + +#Translations +*.mo + +#Mr Developer +.mr.developer.cfg diff --git a/games/minetime_game/mods/memorandum/memorandum/depends.txt b/games/minetime_game/mods/memorandum/memorandum/depends.txt new file mode 100644 index 0000000..331d858 --- /dev/null +++ b/games/minetime_game/mods/memorandum/memorandum/depends.txt @@ -0,0 +1 @@ +default \ No newline at end of file diff --git a/games/minetime_game/mods/memorandum/memorandum/init.lua b/games/minetime_game/mods/memorandum/memorandum/init.lua new file mode 100644 index 0000000..c4f24dc --- /dev/null +++ b/games/minetime_game/mods/memorandum/memorandum/init.lua @@ -0,0 +1,365 @@ +----------------------------------------------------------------------------------------------- +local title = "Memorandum" +local version = "0.1.1" +local mname = "memorandum" +----------------------------------------------------------------------------------------------- +-- { left , bottom , front , right , top , back } +local sheet = { -1/2 , -1/2 , -1/2 , 1/2 , -7/16 , 1/2 } +local info = 'On this piece of paper is written: "' +local sign = '" Signed by ' +-- { s, w, n, e } +local wdir = { 8, 17, 6, 15 } -- wall direction + +-- For compatibility with older stuff +minetest.register_alias("memorandum:letter_empty_2" ,"memorandum:letter_empty" ) +minetest.register_alias("memorandum:letter_written_2","memorandum:letter_written") + +minetest.register_craftitem(":default:paper", { + description = "Paper", + inventory_image = "default_paper.png", + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + local above = pt.above + local under = pt.under + local fdir = minetest.dir_to_facedir(placer:get_look_dir()) + if minetest.get_node(above).name == "air" then + if (above.x ~= under.x) or (above.z ~= under.z) then + minetest.add_node(above, {name="memorandum:letter_empty", param2=wdir[fdir+1]}) + else + minetest.add_node(above, {name="memorandum:letter_empty", param2=fdir}) + end + if not minetest.setting_getbool("creative_mode") then + itemstack:take_item() + end + return itemstack + end + end, +}) + +minetest.register_node("memorandum:letter_empty", { + drawtype = "nodebox", + tiles = { + "memorandum_letter_empty.png", + "memorandum_letter_empty.png^[transformFY" -- mirror + }, + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + walkable = false, + node_box = {type = "fixed", fixed = sheet}, + groups = {snappy=3,dig_immediate=3,not_in_creative_inventory=1}, + sounds = default.node_sound_leaves_defaults(), + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string( + "formspec", + "size[10,7]".. + "field[1,1;8.5,1;text; Write a Letter;${text}]".. + "field[1,3;4.25,1;signed; Sign Letter (optional);${signed}]".. + "button_exit[0.75,5;4.25,1;text,signed;Done]" + ) + meta:set_string("infotext", info..'"') + end, + on_receive_fields = function(pos, formname, fields, sender) + local meta = minetest.get_meta(pos) + fields.text = fields.text + fields.signed = fields.signed + --[[print((sender:get_player_name() or "").." wrote \""..fields.text.. + "\" to paper at "..minetest.pos_to_string(pos))]] + local fdir = minetest.get_node(pos).param2 + if fields.text ~= "" then + minetest.add_node(pos, {name="memorandum:letter_written", param2=fdir}) + end + meta:set_string("text", fields.text) + meta:set_string("signed", "") + meta:set_string("infotext", info..fields.text..'" Unsigned') + if fields.signed ~= "" then + meta:set_string("signed", fields.signed) + meta:set_string("infotext", info..fields.text..sign..fields.signed) + end + end, + on_dig = function(pos, node, digger) + if digger:is_player() and digger:get_inventory() then + digger:get_inventory():add_item("main", {name="default:paper", count=1, wear=0, metadata=""}) + end + minetest.remove_node(pos) + end, +}) + +minetest.register_craftitem("memorandum:letter", { + description = "Letter", + inventory_image = "default_paper.png^memorandum_letters.png", + stack_max = 1, + groups = {not_in_creative_inventory=1}, + on_use = function(itemstack, user, pointed_thing) + local player = user:get_player_name() + local text = itemstack:get_metadata() + local scnt = string.sub (text, -2, -1) + if scnt == "00" then + mssg = string.sub (text, 1, -3) + sgnd = "" + elseif tonumber(scnt) == nil then -- to support previous versions + mssg = string.sub (text, 37, -1) + sgnd = "" + else + mssg = string.sub (text, 1, -scnt -3) + sgnd = string.sub (text, -scnt-2, -3) + end + if scnt == "00" or tonumber(scnt) == nil then + minetest.chat_send_player(player, info..mssg..'" Unsigned', false) + else + minetest.chat_send_player(player, info..mssg..sign..sgnd, false) + end + end, + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + local above = pt.above + local under = pt.under + local fdir = minetest.dir_to_facedir(placer:get_look_dir()) + local meta = minetest.get_meta(above) + local text = itemstack:get_metadata() + local scnt = string.sub (text, -2, -1) + if scnt == "00" then + mssg = string.sub (text, 1, -3) + sgnd = "" + elseif tonumber(scnt) == nil then -- to support previous versions + mssg = string.sub (text, 37, -1) + sgnd = "" + else + mssg = string.sub (text, 1, -scnt -3) + sgnd = string.sub (text, -scnt-2, -3) + end + if minetest.get_node(above).name == "air" then + if (above.x ~= under.x) or (above.z ~= under.z) then + minetest.add_node(above, {name="memorandum:letter_written", param2=wdir[fdir+1]}) + else + minetest.add_node(above, {name="memorandum:letter_written", param2=fdir}) + end + if scnt == "00" or tonumber(scnt) == nil then + meta:set_string("infotext", info..mssg..'" Unsigned') + else + meta:set_string("infotext", info..mssg..sign..sgnd) + end + meta:set_string("text", mssg) + meta:set_string("signed", sgnd) + itemstack:take_item() + return itemstack + end + end, +}) + +minetest.register_node("memorandum:letter_written", { + drawtype = "nodebox", + tiles = { + "memorandum_letter_empty.png^memorandum_letter_text.png", + "memorandum_letter_empty.png^[transformFY" -- mirror + }, + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + walkable = false, + node_box = {type = "fixed", fixed = sheet}, + groups = {snappy=3,dig_immediate=3,not_in_creative_inventory=1}, + sounds = default.node_sound_leaves_defaults(), + on_receive_fields = function(pos, formname, fields, sender) + local item = sender:get_wielded_item() + if item:get_name() == "memorandum:eraser" then + local meta = minetest.get_meta(pos) + fields.text = fields.text + fields.signed = fields.signed + --[[print((sender:get_player_name() or "").." wrote \""..fields.text.. + "\" to paper at "..minetest.pos_to_string(pos))]] + local fdir = minetest.get_node(pos).param2 + if fields.text == "" then + minetest.add_node(pos, {name="memorandum:letter_empty", param2=fdir}) + end + meta:set_string("text", fields.text) + meta:set_string("signed", "") + meta:set_string("infotext", info..fields.text..'" Unsigned') + if fields.signed ~= "" then + meta:set_string("signed", fields.signed) + meta:set_string("infotext", info..fields.text..sign..fields.signed) + end + end + end, + on_dig = function(pos, node, digger) + if digger:is_player() and digger:get_inventory() then + local meta = minetest.get_meta(pos) + local text = meta:get_string("text") + local signed = meta:get_string("signed") + local signcount = string.len(signed) + local item = digger:get_wielded_item() + local inv = digger:get_inventory() + if string.len(signed) < 10 then + signcount = "0"..string.len(signed) + end + if signed == '" Unsigned' then + signcount = "00" + end + if item:get_name() == "vessels:glass_bottle" then + inv:remove_item("main", "vessels:glass_bottle") + inv:add_item("main", {name="memorandum:message", count=1, wear=0, metadata=text..signed..signcount}) + else + inv:add_item("main", {name="memorandum:letter", count=1, wear=0, metadata=text..signed..signcount}) + end + end + minetest.remove_node(pos) + end, +}) + +local function eraser_wear(itemstack, user, pointed_thing, uses) + itemstack:add_wear(65535/(uses-1)) + return itemstack +end + +minetest.register_tool("memorandum:eraser", { + description = "Eraser", + inventory_image = "memorandum_eraser.png", + wield_image = "memorandum_eraser.png^[transformR90",--^[transformFX", + wield_scale = {x = 0.5, y = 0.5, z = 1}, + on_use = function(itemstack, user, pointed_thing) + local pt = pointed_thing + if pt and pt.under then + local node = minetest.get_node(pt.under) + local meta = minetest.get_meta(pt.under) + local player = user:get_player_name() + local signer = meta:get_string("signed") + if string.find(node.name, "memorandum:letter_written") then + if signer == player or signer == "" then + meta:set_string( + "formspec", + "size[10,7]".. + "field[1,1;8.5,1;text; Edit Text;${text}]".. + "field[1,3;4.25,1;signed; Edit Signature;${signed}]".. + "button_exit[0.75,5;4.25,1;text,signed;Done]" + ) + if not minetest.setting_getbool("creative_mode") then + return eraser_wear(itemstack, user, pointed_thing, 30) + else + return {name="memorandum:eraser", count=1, wear=0, metadata=""} + end + end + end + end + end, +}) + +minetest.register_node("memorandum:message", { + description = "Message in a Bottle", + drawtype = "plantlike", + tiles = {"vessels_glass_bottle.png^memorandum_message.png"}, + inventory_image = "vessels_glass_bottle_inv.png^memorandum_message.png", + wield_image = "vessels_glass_bottle.png^memorandum_message.png", + paramtype = "light", + selection_box = { + type = "fixed", + fixed = {-1/4, -1/2, -1/4, 1/4, 4/10, 1/4} + }, + stack_max = 1, + groups = {vessel=1,dig_immediate=3,attached_node=1,not_in_creative_inventory=1}, + --sounds = default.node_sound_glass_defaults(), + on_use = function(itemstack, user, pointed_thing) + local pt = pointed_thing + if pt.under then + local meta = minetest.get_meta(pt.above) + local text = itemstack:get_metadata() + local scnt = string.sub (text, -2, -1) + if scnt == "00" then + mssg = string.sub (text, 1, -3) + sgnd = "" + elseif tonumber(scnt) == nil then -- to support previous versions + mssg = string.sub (text, 37, -1) + sgnd = "" + else + mssg = string.sub (text, 1, -scnt -3) + sgnd = string.sub (text, -scnt-2, -3) + end + if minetest.get_node(pt.above).name == "air" then + minetest.add_node(pt.above, {name="memorandum:letter_written", param2=math.random(0,3)}) + if scnt == "00" or tonumber(scnt) == nil then + meta:set_string("infotext", info..mssg..'" Unsigned') + else + meta:set_string("infotext", info..mssg..sign..sgnd) + end + meta:set_string("text", mssg) + meta:set_string("signed", sgnd) + itemstack:take_item() + user:get_inventory():add_item("main", {name="vessels:glass_bottle", count=1, wear=0, metadata=""}) + return itemstack + end + end + end, + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + local meta = minetest.get_meta(pt.above) + local text = itemstack:get_metadata() + local scnt = string.sub (text, -2, -1) + if scnt == "00" then + mssg = string.sub (text, 1, -3) + sgnd = "" + elseif tonumber(scnt) == nil then -- to support previous versions + mssg = string.sub (text, 37, -1) + sgnd = "" + else + mssg = string.sub (text, 1, -scnt -3) + sgnd = string.sub (text, -scnt-2, -3) + end + if minetest.get_node(pt.above).name == "air" then + minetest.add_node(pt.above, {name="memorandum:message"}) + meta:set_string("text", mssg) + meta:set_string("signed", sgnd) + itemstack:take_item() + return itemstack + end + end, + on_dig = function(pos, node, digger) + if digger:is_player() and digger:get_inventory() then + local meta = minetest.get_meta(pos) + local text = meta:get_string("text") + local signed = meta:get_string("signed") + local signcount = string.len(signed) + local item = digger:get_wielded_item() + if string.len(signed) < 10 then + signcount = "0"..string.len(signed) + end + if signed == '" Unsigned' then + signcount = "00" + end + digger:get_inventory():add_item("main", {name="memorandum:message", count=1, wear=0, metadata=text..signed..signcount}) + end + minetest.remove_node(pos) + end, +}) + +if minetest.get_modpath("farming") ~= nil then +minetest.register_craft({ + type = "shapeless", + output = "memorandum:eraser", + recipe = {"farming:bread"}, +}) +end +if minetest.get_modpath("candles") ~= nil then +minetest.register_craft({ + type = "shapeless", + output = "memorandum:eraser", + recipe = {"candles:wax"}, +}) +end +if minetest.get_modpath("bees") ~= nil then +minetest.register_craft({ + type = "shapeless", + output = "memorandum:eraser", + recipe = {"bees:honey_comb"}, +}) +end +if minetest.get_modpath("technic") ~= nil then +minetest.register_craft({ + type = "shapeless", + output = "memorandum:eraser", + recipe = {"technic:raw_latex"}, +}) +end + +----------------------------------------------------------------------------------------------- +print("[Mod] "..title.." ["..version.."] ["..mname.."] Loaded...") +----------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/games/minetime_game/mods/memorandum/memorandum/textures/alternates/memorandum_eraser.png b/games/minetime_game/mods/memorandum/memorandum/textures/alternates/memorandum_eraser.png new file mode 100644 index 0000000..4ec390e Binary files /dev/null and b/games/minetime_game/mods/memorandum/memorandum/textures/alternates/memorandum_eraser.png differ diff --git a/games/minetime_game/mods/memorandum/memorandum/textures/memorandum_eraser.png b/games/minetime_game/mods/memorandum/memorandum/textures/memorandum_eraser.png new file mode 100644 index 0000000..1b25084 Binary files /dev/null and b/games/minetime_game/mods/memorandum/memorandum/textures/memorandum_eraser.png differ diff --git a/games/minetime_game/mods/memorandum/memorandum/textures/memorandum_letter_empty.png b/games/minetime_game/mods/memorandum/memorandum/textures/memorandum_letter_empty.png new file mode 100644 index 0000000..1c9f6ba Binary files /dev/null and b/games/minetime_game/mods/memorandum/memorandum/textures/memorandum_letter_empty.png differ diff --git a/games/minetime_game/mods/memorandum/memorandum/textures/memorandum_letter_text.png b/games/minetime_game/mods/memorandum/memorandum/textures/memorandum_letter_text.png new file mode 100644 index 0000000..81f27af Binary files /dev/null and b/games/minetime_game/mods/memorandum/memorandum/textures/memorandum_letter_text.png differ diff --git a/games/minetime_game/mods/memorandum/memorandum/textures/memorandum_letters.png b/games/minetime_game/mods/memorandum/memorandum/textures/memorandum_letters.png new file mode 100644 index 0000000..fb25500 Binary files /dev/null and b/games/minetime_game/mods/memorandum/memorandum/textures/memorandum_letters.png differ diff --git a/games/minetime_game/mods/memorandum/memorandum/textures/memorandum_message.png b/games/minetime_game/mods/memorandum/memorandum/textures/memorandum_message.png new file mode 100644 index 0000000..8a82157 Binary files /dev/null and b/games/minetime_game/mods/memorandum/memorandum/textures/memorandum_message.png differ diff --git a/games/minetime_game/mods/memorandum/memorandum/textures/not in use/memorandum_seal.png b/games/minetime_game/mods/memorandum/memorandum/textures/not in use/memorandum_seal.png new file mode 100644 index 0000000..6c5208a Binary files /dev/null and b/games/minetime_game/mods/memorandum/memorandum/textures/not in use/memorandum_seal.png differ diff --git a/games/minetime_game/mods/memorandum/modpack.txt b/games/minetime_game/mods/memorandum/modpack.txt new file mode 100644 index 0000000..fee68b7 --- /dev/null +++ b/games/minetime_game/mods/memorandum/modpack.txt @@ -0,0 +1,5 @@ +The presence of this file indicates that the current folder is a modpack. + + +You don't have to rename this folder. +But you can rename it as long as none of the subfolders (or any other mods you use) have the chosen name and you don't use illegal characters. \ No newline at end of file diff --git a/games/minetime_game/mods/screwdriver/init.lua b/games/minetime_game/mods/screwdriver/init.lua new file mode 100644 index 0000000..6e56038 --- /dev/null +++ b/games/minetime_game/mods/screwdriver/init.lua @@ -0,0 +1,159 @@ + +local mode_text = { + {"Change rotation, Don't change axisdir."}, + {"Keep choosen face in front then rotate it."}, + {"Change axis dir, Reset rotation."}, + {"Bring top in front then rotate it."}, +} + +local opposite_faces = { + [0] = 5, + [1] = 2, + [2] = 1, + [3] = 4, + [4] = 3, + [5] = 0, +} + +local function screwdriver_setmode(user,itemstack) + local player_name = user:get_player_name() + local item = itemstack:to_table() + local mode = tonumber(itemstack:get_metadata()) + if not mode then + minetest.chat_send_player(player_name, "Use while sneaking to change screwdriwer modes.") + mode = 0 + end + mode = mode + 1 + if mode == 5 then + mode = 1 + end + minetest.chat_send_player(player_name, "Screwdriver mode : "..mode.." - "..mode_text[mode][1] ) + itemstack:set_name("screwdriver:screwdriver"..mode) + itemstack:set_metadata(mode) + return itemstack +end + +local function get_node_face(pointed_thing) + local ax, ay, az = pointed_thing.above.x, pointed_thing.above.y, pointed_thing.above.z + local ux, uy, uz = pointed_thing.under.x, pointed_thing.under.y, pointed_thing.under.z + if ay > uy then return 0 -- Top + elseif az > uz then return 1 -- Z+ side + elseif az < uz then return 2 -- Z- side + elseif ax > ux then return 3 -- X+ side + elseif ax < ux then return 4 -- X- side + elseif ay < uy then return 5 -- Bottom + else + error("pointed_thing.above and under are the same!") + end +end + +local function nextrange(x, max) + x = x + 1 + if x > max then + x = 0 + end + return x +end + +local function screwdriver_handler(itemstack, user, pointed_thing) + if pointed_thing.type ~= "node" then + return + end + local pos = pointed_thing.under + local keys = user:get_player_control() + local player_name = user:get_player_name() + local mode = tonumber(itemstack:get_metadata()) + if not mode or keys["sneak"] == true then + return screwdriver_setmode(user, itemstack) + end + if minetest.is_protected(pos, user:get_player_name()) then + minetest.record_protection_violation(pos, user:get_player_name()) + return + end + local node = minetest.get_node(pos) + local ndef = minetest.registered_nodes[node.name] + if not ndef or not ndef.paramtype2 == "facedir" or + (ndef.drawtype == "nodebox" and + not ndef.node_box.type == "fixed") or + node.param2 == nil then + return + end + -- Get ready to set the param2 + local n = node.param2 + local axisdir = math.floor(n / 4) + local rotation = n - axisdir * 4 + if mode == 1 then + n = axisdir * 4 + nextrange(rotation, 3) + elseif mode == 2 then + -- If you are pointing at the axisdir face or the + -- opposite one then you can just rotate the node. + -- Otherwise change the axisdir, avoiding the facing + -- and opposite axes. + local face = get_node_face(pointed_thing) + if axisdir == face or axisdir == opposite_faces[face] then + n = axisdir * 4 + nextrange(rotation, 3) + else + axisdir = nextrange(axisdir, 5) + -- This is repeated because switching from the face + -- can move to to the opposite and vice-versa + if axisdir == face or axisdir == opposite_faces[face] then + axisdir = nextrange(axisdir, 5) + end + if axisdir == face or axisdir == opposite_faces[face] then + axisdir = nextrange(axisdir, 5) + end + n = axisdir * 4 + end + elseif mode == 3 then + n = nextrange(axisdir, 5) * 4 + elseif mode == 4 then + local face = get_node_face(pointed_thing) + if axisdir == face then + n = axisdir * 4 + nextrange(rotation, 3) + else + n = face * 4 + end + end + --print (dump(axisdir..", "..rotation)) + node.param2 = n + minetest.swap_node(pos, node) + local item_wear = tonumber(itemstack:get_wear()) + item_wear = item_wear + 327 + if item_wear > 65535 then + itemstack:clear() + return itemstack + end + itemstack:set_wear(item_wear) + return itemstack +end + +minetest.register_craft({ + output = "screwdriver:screwdriver", + recipe = { + {"default:steel_ingot"}, + {"group:stick"} + } +}) + +minetest.register_tool("screwdriver:screwdriver", { + description = "Screwdriver", + inventory_image = "screwdriver.png", + on_use = function(itemstack, user, pointed_thing) + screwdriver_handler(itemstack, user, pointed_thing) + return itemstack + end, +}) + +for i = 1, 4 do + minetest.register_tool("screwdriver:screwdriver"..i, { + description = "Screwdriver in Mode "..i, + inventory_image = "screwdriver.png^tool_mode"..i..".png", + wield_image = "screwdriver.png", + groups = {not_in_creative_inventory=1}, + on_use = function(itemstack, user, pointed_thing) + screwdriver_handler(itemstack, user, pointed_thing) + return itemstack + end, + }) +end + diff --git a/games/minetime_game/mods/screwdriver/readme.txt b/games/minetime_game/mods/screwdriver/readme.txt new file mode 100644 index 0000000..d0b10e0 --- /dev/null +++ b/games/minetime_game/mods/screwdriver/readme.txt @@ -0,0 +1,18 @@ +Minetest mod: screwdriver +========================= + +License of source code: +----------------------- +Copyright (C) 2013 RealBadAngel, Maciej Kasatkin + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +http://www.gnu.org/licenses/lgpl-2.1.html + +License of media (textures and sounds) +-------------------------------------- +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/games/minetime_game/mods/screwdriver/textures/screwdriver.png b/games/minetime_game/mods/screwdriver/textures/screwdriver.png new file mode 100644 index 0000000..672692a Binary files /dev/null and b/games/minetime_game/mods/screwdriver/textures/screwdriver.png differ diff --git a/games/minetime_game/mods/screwdriver/textures/tool_mode1.png b/games/minetime_game/mods/screwdriver/textures/tool_mode1.png new file mode 100644 index 0000000..41e12ab Binary files /dev/null and b/games/minetime_game/mods/screwdriver/textures/tool_mode1.png differ diff --git a/games/minetime_game/mods/screwdriver/textures/tool_mode2.png b/games/minetime_game/mods/screwdriver/textures/tool_mode2.png new file mode 100644 index 0000000..2043d8f Binary files /dev/null and b/games/minetime_game/mods/screwdriver/textures/tool_mode2.png differ diff --git a/games/minetime_game/mods/screwdriver/textures/tool_mode3.png b/games/minetime_game/mods/screwdriver/textures/tool_mode3.png new file mode 100644 index 0000000..fbc729f Binary files /dev/null and b/games/minetime_game/mods/screwdriver/textures/tool_mode3.png differ diff --git a/games/minetime_game/mods/screwdriver/textures/tool_mode4.png b/games/minetime_game/mods/screwdriver/textures/tool_mode4.png new file mode 100644 index 0000000..c925314 Binary files /dev/null and b/games/minetime_game/mods/screwdriver/textures/tool_mode4.png differ diff --git a/games/minetime_game/mods/sethome/init.lua b/games/minetime_game/mods/sethome/init.lua new file mode 100644 index 0000000..20f77c0 --- /dev/null +++ b/games/minetime_game/mods/sethome/init.lua @@ -0,0 +1,65 @@ +local homes_file = minetest.get_worldpath() .. "/homes" +local homepos = {} + +local function loadhomes() + local input = io.open(homes_file, "r") + if input then + repeat + local x = input:read("*n") + if x == nil then + break + end + local y = input:read("*n") + local z = input:read("*n") + local name = input:read("*l") + homepos[name:sub(2)] = {x = x, y = y, z = z} + until input:read(0) == nil + io.close(input) + else + homepos = {} + end +end + +loadhomes() + +minetest.register_privilege("home", "Can use /sethome and /home") + +local changed = false + +minetest.register_chatcommand("home", { + description = "Teleport you to your home point", + privs = {home=true}, + func = function(name) + local player = minetest.env:get_player_by_name(name) + if player == nil then + -- just a check to prevent the server crashing + return false + end + if homepos[player:get_player_name()] then + player:setpos(homepos[player:get_player_name()]) + minetest.chat_send_player(name, "Teleported to home!") + else + minetest.chat_send_player(name, "Set a home using /sethome") + end + end, +}) + +minetest.register_chatcommand("sethome", { + description = "Set your home point", + privs = {home=true}, + func = function(name) + local player = minetest.env:get_player_by_name(name) + local pos = player:getpos() + homepos[player:get_player_name()] = pos + minetest.chat_send_player(name, "Home set!") + changed = true + if changed then + local output = io.open(homes_file, "w") + for i, v in pairs(homepos) do + output:write(v.x.." "..v.y.." "..v.z.." "..i.."\n") + end + io.close(output) + changed = false + end + end, +}) diff --git a/games/minetime_game/mods/stairs/README.txt b/games/minetime_game/mods/stairs/README.txt new file mode 100644 index 0000000..716a677 --- /dev/null +++ b/games/minetime_game/mods/stairs/README.txt @@ -0,0 +1,26 @@ +Minetest 0.4 mod: stairs +========================= + +License of source code: +----------------------- +Copyright (C) 2011-2012 Kahrl +Copyright (C) 2011-2012 celeron55, Perttu Ahola + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +http://www.gnu.org/licenses/lgpl-2.1.html + +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) 2010-2012 celeron55, Perttu Ahola + + diff --git a/games/minetime_game/mods/stairs/depends.txt b/games/minetime_game/mods/stairs/depends.txt new file mode 100644 index 0000000..4ad96d5 --- /dev/null +++ b/games/minetime_game/mods/stairs/depends.txt @@ -0,0 +1 @@ +default diff --git a/games/minetime_game/mods/stairs/init.lua b/games/minetime_game/mods/stairs/init.lua new file mode 100644 index 0000000..afd89bd --- /dev/null +++ b/games/minetime_game/mods/stairs/init.lua @@ -0,0 +1,290 @@ +-- Minetest 0.4 mod: stairs +-- See README.txt for licensing and other information. + +stairs = {} + +-- Node will be called stairs:stair_ +function stairs.register_stair(subname, recipeitem, groups, images, description, sounds) + minetest.register_node(":stairs:stair_" .. subname, { + description = description, + drawtype = "nodebox", + tiles = images, + paramtype = "light", + paramtype2 = "facedir", + is_ground_content = true, + groups = groups, + sounds = sounds, + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, + {-0.5, 0, 0, 0.5, 0.5, 0.5}, + }, + }, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type ~= "node" then + return itemstack + end + + local p0 = pointed_thing.under + local p1 = pointed_thing.above + local param2 = 0 + + local placer_pos = placer:getpos() + if placer_pos then + local dir = { + x = p1.x - placer_pos.x, + y = p1.y - placer_pos.y, + z = p1.z - placer_pos.z + } + param2 = minetest.dir_to_facedir(dir) + end + + if p0.y-1 == p1.y then + param2 = param2 + 20 + if param2 == 21 then + param2 = 23 + elseif param2 == 23 then + param2 = 21 + end + end + + return minetest.item_place(itemstack, placer, pointed_thing, param2) + end, + }) + + -- for replace ABM + minetest.register_node(":stairs:stair_" .. subname.."upside_down", { + replace_name = "stairs:stair_" .. subname, + groups = {slabs_replace=1}, + }) + + minetest.register_craft({ + output = 'stairs:stair_' .. subname .. ' 6', + recipe = { + {recipeitem, "", ""}, + {recipeitem, recipeitem, ""}, + {recipeitem, recipeitem, recipeitem}, + }, + }) + + -- Flipped recipe for the silly minecrafters + minetest.register_craft({ + output = 'stairs:stair_' .. subname .. ' 6', + recipe = { + {"", "", recipeitem}, + {"", recipeitem, recipeitem}, + {recipeitem, recipeitem, recipeitem}, + }, + }) +end + +-- Node will be called stairs:slab_ +function stairs.register_slab(subname, recipeitem, groups, images, description, sounds) + minetest.register_node(":stairs:slab_" .. subname, { + description = description, + drawtype = "nodebox", + tiles = images, + paramtype = "light", + paramtype2 = "facedir", + is_ground_content = true, + groups = groups, + sounds = sounds, + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, + }, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type ~= "node" then + return itemstack + end + + -- If it's being placed on an another similar one, replace it with + -- a full block + local slabpos = nil + local slabnode = nil + local p0 = pointed_thing.under + local p1 = pointed_thing.above + local n0 = minetest.get_node(p0) + local n1 = minetest.get_node(p1) + local param2 = 0 + + local n0_is_upside_down = (n0.name == "stairs:slab_" .. subname and + n0.param2 >= 20) + + if n0.name == "stairs:slab_" .. subname and not n0_is_upside_down and p0.y+1 == p1.y then + slabpos = p0 + slabnode = n0 + elseif n1.name == "stairs:slab_" .. subname then + slabpos = p1 + slabnode = n1 + end + if slabpos then + -- Remove the slab at slabpos + minetest.remove_node(slabpos) + -- Make a fake stack of a single item and try to place it + local fakestack = ItemStack(recipeitem) + fakestack:set_count(itemstack:get_count()) + + pointed_thing.above = slabpos + local success + fakestack, success = minetest.item_place(fakestack, placer, pointed_thing) + -- If the item was taken from the fake stack, decrement original + if success then + itemstack:set_count(fakestack:get_count()) + -- Else put old node back + else + minetest.set_node(slabpos, slabnode) + end + return itemstack + end + + -- Upside down slabs + if p0.y-1 == p1.y then + -- Turn into full block if pointing at a existing slab + if n0_is_upside_down then + -- Remove the slab at the position of the slab + minetest.remove_node(p0) + -- Make a fake stack of a single item and try to place it + local fakestack = ItemStack(recipeitem) + fakestack:set_count(itemstack:get_count()) + + pointed_thing.above = p0 + local success + fakestack, success = minetest.item_place(fakestack, placer, pointed_thing) + -- If the item was taken from the fake stack, decrement original + if success then + itemstack:set_count(fakestack:get_count()) + -- Else put old node back + else + minetest.set_node(p0, n0) + end + return itemstack + end + + -- Place upside down slab + param2 = 20 + end + + -- If pointing at the side of a upside down slab + if n0_is_upside_down and p0.y+1 ~= p1.y then + param2 = 20 + end + + return minetest.item_place(itemstack, placer, pointed_thing, param2) + end, + }) + + -- for replace ABM + minetest.register_node(":stairs:slab_" .. subname.."upside_down", { + replace_name = "stairs:slab_"..subname, + groups = {slabs_replace=1}, + }) + + minetest.register_craft({ + output = 'stairs:slab_' .. subname .. ' 6', + recipe = { + {recipeitem, recipeitem, recipeitem}, + }, + }) +end + +-- Replace old "upside_down" nodes with new param2 versions +minetest.register_abm({ + nodenames = {"group:slabs_replace"}, + interval = 1, + chance = 1, + action = function(pos, node) + node.name = minetest.registered_nodes[node.name].replace_name + node.param2 = node.param2 + 20 + if node.param2 == 21 then + node.param2 = 23 + elseif node.param2 == 23 then + node.param2 = 21 + end + minetest.set_node(pos, node) + end, +}) + +-- Nodes will be called stairs:{stair,slab}_ +function stairs.register_stair_and_slab(subname, recipeitem, groups, images, desc_stair, desc_slab, sounds) + stairs.register_stair(subname, recipeitem, groups, images, desc_stair, sounds) + stairs.register_slab(subname, recipeitem, groups, images, desc_slab, sounds) +end + +stairs.register_stair_and_slab("wood", "default:wood", + {snappy=2,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + {"default_wood.png"}, + "Wooden Stair", + "Wooden Slab", + default.node_sound_wood_defaults()) + +stairs.register_stair_and_slab("stone", "default:stone", + {cracky=3}, + {"default_stone.png"}, + "Stone Stair", + "Stone Slab", + default.node_sound_stone_defaults()) + +stairs.register_stair_and_slab("cobble", "default:cobble", + {cracky=3}, + {"default_cobble.png"}, + "Cobblestone Stair", + "Cobblestone Slab", + default.node_sound_stone_defaults()) + +stairs.register_stair_and_slab("desert_stone", "default:desert_stone", + {cracky=3}, + {"default_desert_stone.png"}, + "Desertstone Stair", + "Desertstone Slab", + default.node_sound_stone_defaults()) + +stairs.register_stair_and_slab("desert_cobble", "default:desert_cobble", + {cracky=3}, + {"default_desert_cobble.png"}, + "Desert Cobblestone Stair", + "Desert Cobblestone Slab", + default.node_sound_stone_defaults()) + +stairs.register_stair_and_slab("desert_stonebrick", "default:desert_stonebrick", + {cracky=3}, + {"default_desert_stone_brick.png"}, + "Desert Stone Brick Stair", + "Desert Stone Brick Slab", + default.node_sound_stone_defaults()) + +stairs.register_stair_and_slab("brick", "default:brick", + {cracky=3}, + {"default_brick.png"}, + "Brick Stair", + "Brick Slab", + default.node_sound_stone_defaults()) + +stairs.register_stair_and_slab("sandstone", "default:sandstone", + {crumbly=2,cracky=2}, + {"default_sandstone.png"}, + "Sandstone Stair", + "Sandstone Slab", + default.node_sound_stone_defaults()) + +stairs.register_stair_and_slab("sandstonebrick", "default:sandstonebrick", + {crumbly=2,cracky=2}, + {"default_sandstone_brick.png"}, + "Sandstone Brick Stair", + "Sandstone Brick Slab", + default.node_sound_stone_defaults()) + +stairs.register_stair_and_slab("junglewood", "default:junglewood", + {snappy=2,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + {"default_junglewood.png"}, + "Junglewood Stair", + "Junglewood Slab", + default.node_sound_wood_defaults()) + +stairs.register_stair_and_slab("stonebrick", "default:stonebrick", + {cracky=3}, + {"default_stone_brick.png"}, + "Stone Brick Stair", + "Stone Brick Slab", + default.node_sound_stone_defaults()) diff --git a/games/minetime_game/mods/vessels/README.txt b/games/minetime_game/mods/vessels/README.txt new file mode 100644 index 0000000..150b501 --- /dev/null +++ b/games/minetime_game/mods/vessels/README.txt @@ -0,0 +1,45 @@ +Minetest 0.4 mod: vessels +========================== + +Crafts +------- +Glass bottle (yields 10) + + G - G + G - G + - G - + +Drinking Glass (yields 14) + + G - G + G - G + G G G + +Heavy Steel Bottle (yields 5) + + S - S + S - S + - S - + +License of source code: +----------------------- +Copyright (C) 2012 Vanessa Ezekowitz +Version 2012-09-02 +Modifications by Perttu Ahola + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +http://www.gnu.org/licenses/lgpl-2.1.html + +License of media (textures and sounds) +-------------------------------------- +WTFPL + +Authors of media files +----------------------- +Unless specifically noted, +Copyright (C) 2012 Vanessa Ezekowitz + diff --git a/games/minetime_game/mods/vessels/depends.txt b/games/minetime_game/mods/vessels/depends.txt new file mode 100644 index 0000000..4ad96d5 --- /dev/null +++ b/games/minetime_game/mods/vessels/depends.txt @@ -0,0 +1 @@ +default diff --git a/games/minetime_game/mods/vessels/init.lua b/games/minetime_game/mods/vessels/init.lua new file mode 100644 index 0000000..6ca8771 --- /dev/null +++ b/games/minetime_game/mods/vessels/init.lua @@ -0,0 +1,116 @@ +-- Minetest 0.4 mod: vessels +-- See README.txt for licensing and other information. + +minetest.register_node("vessels:glass_bottle", { + description = "Glass Bottle (empty)", + drawtype = "plantlike", + tiles = {"vessels_glass_bottle.png"}, + inventory_image = "vessels_glass_bottle_inv.png", + wield_image = "vessels_glass_bottle.png", + paramtype = "light", + walkable = false, + selection_box = { + type = "fixed", + fixed = {-0.25, -0.5, -0.25, 0.25, 0.4, 0.25} + }, + groups = {vessel=1,dig_immediate=3,attached_node=1}, + sounds = default.node_sound_glass_defaults(), +}) + +minetest.register_craft( { + output = "vessels:glass_bottle 10", + recipe = { + { "default:glass", "", "default:glass" }, + { "default:glass", "", "default:glass" }, + { "", "default:glass", "" } + } +}) + +minetest.register_node("vessels:drinking_glass", { + description = "Drinking Glass (empty)", + drawtype = "plantlike", + tiles = {"vessels_drinking_glass.png"}, + inventory_image = "vessels_drinking_glass_inv.png", + wield_image = "vessels_drinking_glass.png", + paramtype = "light", + walkable = false, + selection_box = { + type = "fixed", + fixed = {-0.25, -0.5, -0.25, 0.25, 0.4, 0.25} + }, + groups = {vessel=1,dig_immediate=3,attached_node=1}, + sounds = default.node_sound_glass_defaults(), +}) + +minetest.register_craft( { + output = "vessels:drinking_glass 14", + recipe = { + { "default:glass", "", "default:glass" }, + { "default:glass", "", "default:glass" }, + { "default:glass", "default:glass", "default:glass" } + } +}) + +minetest.register_node("vessels:steel_bottle", { + description = "Heavy Steel Bottle (empty)", + drawtype = "plantlike", + tiles = {"vessels_steel_bottle.png"}, + inventory_image = "vessels_steel_bottle_inv.png", + wield_image = "vessels_steel_bottle.png", + paramtype = "light", + walkable = false, + selection_box = { + type = "fixed", + fixed = {-0.25, -0.5, -0.25, 0.25, 0.4, 0.25} + }, + groups = {vessel=1,dig_immediate=3,attached_node=1}, + sounds = default.node_sound_defaults(), +}) + +minetest.register_craft( { + output = "vessels:steel_bottle 5", + recipe = { + { "default:steel_ingot", "", "default:steel_ingot" }, + { "default:steel_ingot", "", "default:steel_ingot" }, + { "", "default:steel_ingot", "" } + } +}) + + +-- Make sure we can recycle them + +minetest.register_craftitem("vessels:glass_fragments", { + description = "Pile of Glass Fragments", + inventory_image = "vessels_glass_fragments.png", +}) + +minetest.register_craft( { + type = "shapeless", + output = "vessels:glass_fragments", + recipe = { + "vessels:glass_bottle", + "vessels:glass_bottle", + }, +}) + +minetest.register_craft( { + type = "shapeless", + output = "vessels:glass_fragments", + recipe = { + "vessels:drinking_glass", + "vessels:drinking_glass", + }, +}) + +minetest.register_craft({ + type = "cooking", + output = "default:glass", + recipe = "vessels:glass_fragments", +}) + +minetest.register_craft( { + type = "cooking", + output = "default:steel_ingot", + recipe = "vessels:steel_bottle", +}) + diff --git a/games/minetime_game/mods/vessels/textures/alternates/vessels_drinking_glass.png b/games/minetime_game/mods/vessels/textures/alternates/vessels_drinking_glass.png new file mode 100644 index 0000000..1ddbfd3 Binary files /dev/null and b/games/minetime_game/mods/vessels/textures/alternates/vessels_drinking_glass.png differ diff --git a/games/minetime_game/mods/vessels/textures/alternates/vessels_glass_bottle.png b/games/minetime_game/mods/vessels/textures/alternates/vessels_glass_bottle.png new file mode 100644 index 0000000..336d8b7 Binary files /dev/null and b/games/minetime_game/mods/vessels/textures/alternates/vessels_glass_bottle.png differ diff --git a/games/minetime_game/mods/vessels/textures/alternates/vessels_steel_bottle.png b/games/minetime_game/mods/vessels/textures/alternates/vessels_steel_bottle.png new file mode 100644 index 0000000..f0246c8 Binary files /dev/null and b/games/minetime_game/mods/vessels/textures/alternates/vessels_steel_bottle.png differ diff --git a/games/minetime_game/mods/vessels/textures/vessels_drinking_glass.png b/games/minetime_game/mods/vessels/textures/vessels_drinking_glass.png new file mode 100644 index 0000000..68c12d3 Binary files /dev/null and b/games/minetime_game/mods/vessels/textures/vessels_drinking_glass.png differ diff --git a/games/minetime_game/mods/vessels/textures/vessels_drinking_glass_inv.png b/games/minetime_game/mods/vessels/textures/vessels_drinking_glass_inv.png new file mode 100644 index 0000000..2aeafc7 Binary files /dev/null and b/games/minetime_game/mods/vessels/textures/vessels_drinking_glass_inv.png differ diff --git a/games/minetime_game/mods/vessels/textures/vessels_glass_bottle.png b/games/minetime_game/mods/vessels/textures/vessels_glass_bottle.png new file mode 100644 index 0000000..336d8b7 Binary files /dev/null and b/games/minetime_game/mods/vessels/textures/vessels_glass_bottle.png differ diff --git a/games/minetime_game/mods/vessels/textures/vessels_glass_bottle_inv.png b/games/minetime_game/mods/vessels/textures/vessels_glass_bottle_inv.png new file mode 100644 index 0000000..c10036f Binary files /dev/null and b/games/minetime_game/mods/vessels/textures/vessels_glass_bottle_inv.png differ diff --git a/games/minetime_game/mods/vessels/textures/vessels_glass_fragments.png b/games/minetime_game/mods/vessels/textures/vessels_glass_fragments.png new file mode 100644 index 0000000..0bdec23 Binary files /dev/null and b/games/minetime_game/mods/vessels/textures/vessels_glass_fragments.png differ diff --git a/games/minetime_game/mods/vessels/textures/vessels_steel_bottle.png b/games/minetime_game/mods/vessels/textures/vessels_steel_bottle.png new file mode 100644 index 0000000..3bad963 Binary files /dev/null and b/games/minetime_game/mods/vessels/textures/vessels_steel_bottle.png differ diff --git a/games/minetime_game/mods/vessels/textures/vessels_steel_bottle_inv.png b/games/minetime_game/mods/vessels/textures/vessels_steel_bottle_inv.png new file mode 100644 index 0000000..8a317b5 Binary files /dev/null and b/games/minetime_game/mods/vessels/textures/vessels_steel_bottle_inv.png differ diff --git a/games/minetime_game/mods/wool/README.txt b/games/minetime_game/mods/wool/README.txt new file mode 100644 index 0000000..9db1332 --- /dev/null +++ b/games/minetime_game/mods/wool/README.txt @@ -0,0 +1,28 @@ +Minetest 0.4 mod: wool +====================== + +Mostly backward-compatible with jordach's 16-color wool mod. + +License of source code: +----------------------- +Copyright (C) 2012 Perttu Ahola (celeron55) + +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 +----------------------- +Cisoun: +- wool_black.png wool_brown.png wool_dark_green.png wool_green.png +- wool_magenta.png wool_pink.png wool_violet.png wool_yellow.png wool_blue.png +- wool_cyan.png wool_dark_grey.png wool_grey.png wool_orange.png wool_red.png +- wool_white.png + diff --git a/games/minetime_game/mods/wool/depends.txt b/games/minetime_game/mods/wool/depends.txt new file mode 100644 index 0000000..4ad96d5 --- /dev/null +++ b/games/minetime_game/mods/wool/depends.txt @@ -0,0 +1 @@ +default diff --git a/games/minetime_game/mods/wool/init.lua b/games/minetime_game/mods/wool/init.lua new file mode 100644 index 0000000..14cffa5 --- /dev/null +++ b/games/minetime_game/mods/wool/init.lua @@ -0,0 +1,49 @@ +-- minetest/wool/init.lua + +-- Backwards compatibility with jordach's 16-color wool mod +minetest.register_alias("wool:dark_blue", "wool:blue") +minetest.register_alias("wool:gold", "wool:yellow") + +local wool = {} +-- This uses a trick: you can first define the recipes using all of the base +-- colors, and then some recipes using more specific colors for a few non-base +-- colors available. When crafting, the last recipes will be checked first. +wool.dyes = { + {"white", "White", nil}, + {"grey", "Grey", "basecolor_grey"}, + {"black", "Black", "basecolor_black"}, + {"red", "Red", "basecolor_red"}, + {"yellow", "Yellow", "basecolor_yellow"}, + {"green", "Green", "basecolor_green"}, + {"cyan", "Cyan", "basecolor_cyan"}, + {"blue", "Blue", "basecolor_blue"}, + {"magenta", "Magenta", "basecolor_magenta"}, + {"orange", "Orange", "excolor_orange"}, + {"violet", "Violet", "excolor_violet"}, + {"brown", "Brown", "unicolor_dark_orange"}, + {"pink", "Pink", "unicolor_light_red"}, + {"dark_grey", "Dark Grey", "unicolor_darkgrey"}, + {"dark_green", "Dark Green", "unicolor_dark_green"}, +} + +for _, row in ipairs(wool.dyes) do + local name = row[1] + local desc = row[2] + local craft_color_group = row[3] + -- Node Definition + minetest.register_node("wool:"..name, { + description = desc.." Wool", + tiles = {"wool_"..name..".png"}, + groups = {snappy=2,choppy=2,oddly_breakable_by_hand=3,flammable=3,wool=1}, + sounds = default.node_sound_defaults(), + }) + if craft_color_group then + -- Crafting from dye and white wool + minetest.register_craft({ + type = "shapeless", + output = 'wool:'..name, + recipe = {'group:dye,'..craft_color_group, 'group:wool'}, + }) + end +end + diff --git a/games/minetime_game/mods/wool/textures/wool_black.png b/games/minetime_game/mods/wool/textures/wool_black.png new file mode 100644 index 0000000..e24e52b Binary files /dev/null and b/games/minetime_game/mods/wool/textures/wool_black.png differ diff --git a/games/minetime_game/mods/wool/textures/wool_blue.png b/games/minetime_game/mods/wool/textures/wool_blue.png new file mode 100644 index 0000000..710a9a2 Binary files /dev/null and b/games/minetime_game/mods/wool/textures/wool_blue.png differ diff --git a/games/minetime_game/mods/wool/textures/wool_brown.png b/games/minetime_game/mods/wool/textures/wool_brown.png new file mode 100644 index 0000000..dfc0c7f Binary files /dev/null and b/games/minetime_game/mods/wool/textures/wool_brown.png differ diff --git a/games/minetime_game/mods/wool/textures/wool_cyan.png b/games/minetime_game/mods/wool/textures/wool_cyan.png new file mode 100644 index 0000000..46f8728 Binary files /dev/null and b/games/minetime_game/mods/wool/textures/wool_cyan.png differ diff --git a/games/minetime_game/mods/wool/textures/wool_dark_green.png b/games/minetime_game/mods/wool/textures/wool_dark_green.png new file mode 100644 index 0000000..d2a0297 Binary files /dev/null and b/games/minetime_game/mods/wool/textures/wool_dark_green.png differ diff --git a/games/minetime_game/mods/wool/textures/wool_dark_grey.png b/games/minetime_game/mods/wool/textures/wool_dark_grey.png new file mode 100644 index 0000000..98f1488 Binary files /dev/null and b/games/minetime_game/mods/wool/textures/wool_dark_grey.png differ diff --git a/games/minetime_game/mods/wool/textures/wool_green.png b/games/minetime_game/mods/wool/textures/wool_green.png new file mode 100644 index 0000000..c211ef5 Binary files /dev/null and b/games/minetime_game/mods/wool/textures/wool_green.png differ diff --git a/games/minetime_game/mods/wool/textures/wool_grey.png b/games/minetime_game/mods/wool/textures/wool_grey.png new file mode 100644 index 0000000..b1b28fa Binary files /dev/null and b/games/minetime_game/mods/wool/textures/wool_grey.png differ diff --git a/games/minetime_game/mods/wool/textures/wool_magenta.png b/games/minetime_game/mods/wool/textures/wool_magenta.png new file mode 100644 index 0000000..79afdb8 Binary files /dev/null and b/games/minetime_game/mods/wool/textures/wool_magenta.png differ diff --git a/games/minetime_game/mods/wool/textures/wool_orange.png b/games/minetime_game/mods/wool/textures/wool_orange.png new file mode 100644 index 0000000..ca14698 Binary files /dev/null and b/games/minetime_game/mods/wool/textures/wool_orange.png differ diff --git a/games/minetime_game/mods/wool/textures/wool_pink.png b/games/minetime_game/mods/wool/textures/wool_pink.png new file mode 100644 index 0000000..c282740 Binary files /dev/null and b/games/minetime_game/mods/wool/textures/wool_pink.png differ diff --git a/games/minetime_game/mods/wool/textures/wool_red.png b/games/minetime_game/mods/wool/textures/wool_red.png new file mode 100644 index 0000000..4a5d43a Binary files /dev/null and b/games/minetime_game/mods/wool/textures/wool_red.png differ diff --git a/games/minetime_game/mods/wool/textures/wool_violet.png b/games/minetime_game/mods/wool/textures/wool_violet.png new file mode 100644 index 0000000..59720bd Binary files /dev/null and b/games/minetime_game/mods/wool/textures/wool_violet.png differ diff --git a/games/minetime_game/mods/wool/textures/wool_white.png b/games/minetime_game/mods/wool/textures/wool_white.png new file mode 100644 index 0000000..a49f08e Binary files /dev/null and b/games/minetime_game/mods/wool/textures/wool_white.png differ diff --git a/games/minetime_game/mods/wool/textures/wool_yellow.png b/games/minetime_game/mods/wool/textures/wool_yellow.png new file mode 100644 index 0000000..9bf9f16 Binary files /dev/null and b/games/minetime_game/mods/wool/textures/wool_yellow.png differ diff --git a/games/minetime_game/mods/xpanes/README.txt b/games/minetime_game/mods/xpanes/README.txt new file mode 100644 index 0000000..021f8f8 --- /dev/null +++ b/games/minetime_game/mods/xpanes/README.txt @@ -0,0 +1,13 @@ +Minetest 0.4.x mod: xpanes +========================== + +License: +-------- +Copyright (C) xyz +modified by BlockMen (iron bars) + +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. diff --git a/games/minetime_game/mods/xpanes/depends.txt b/games/minetime_game/mods/xpanes/depends.txt new file mode 100644 index 0000000..331d858 --- /dev/null +++ b/games/minetime_game/mods/xpanes/depends.txt @@ -0,0 +1 @@ +default \ No newline at end of file diff --git a/games/minetime_game/mods/xpanes/init.lua b/games/minetime_game/mods/xpanes/init.lua new file mode 100644 index 0000000..506b83c --- /dev/null +++ b/games/minetime_game/mods/xpanes/init.lua @@ -0,0 +1,186 @@ +xpanes = {} + +local function rshift(x, by) + return math.floor(x / 2 ^ by) +end + +local directions = { + {x = 1, y = 0, z = 0}, + {x = 0, y = 0, z = 1}, + {x = -1, y = 0, z = 0}, + {x = 0, y = 0, z = -1}, +} + +local function update_pane(pos, name) + if not minetest.get_node(pos).name:find("^xpanes:"..name) then + return + end + local sum = 0 + for i, dir in pairs(directions) do + local node = minetest.get_node({ + x = pos.x + dir.x, + y = pos.y + dir.y, + z = pos.z + dir.z + }) + local def = minetest.registered_nodes[node.name] + local pane_num = def and def.groups.pane or 0 + if pane_num > 0 or not def or (def.walkable ~= false and + def.drawtype ~= "nodebox") then + sum = sum + 2 ^ (i - 1) + end + end + if sum == 0 then + sum = 15 + end + minetest.set_node(pos, {name = "xpanes:"..name.."_"..sum}) +end + +local function update_nearby(pos, node) + node = node or minetest.get_node(pos) + if node.name:sub(1, 7) ~= "xpanes:" then return end + local underscore_pos = node.name:find("_") or 0 + local name = node.name:sub(8, underscore_pos - 1) + for i, dir in pairs(directions) do + update_pane({ + x = pos.x + dir.x, + y = pos.y + dir.y, + z = pos.z + dir.z + }, name) + end +end + +local half_boxes = { + {0, -0.5, -1/32, 0.5, 0.5, 1/32}, + {-1/32, -0.5, 0, 1/32, 0.5, 0.5}, + {-0.5, -0.5, -1/32, 0, 0.5, 1/32}, + {-1/32, -0.5, -0.5, 1/32, 0.5, 0} +} + +local full_boxes = { + {-0.5, -0.5, -1/32, 0.5, 0.5, 1/32}, + {-1/32, -0.5, -0.5, 1/32, 0.5, 0.5} +} + +local sb_half_boxes = { + {0, -0.5, -0.06, 0.5, 0.5, 0.06}, + {-0.06, -0.5, 0, 0.06, 0.5, 0.5}, + {-0.5, -0.5, -0.06, 0, 0.5, 0.06}, + {-0.06, -0.5, -0.5, 0.06, 0.5, 0} +} + +local sb_full_boxes = { + {-0.5, -0.5, -0.06, 0.5, 0.5, 0.06}, + {-0.06, -0.5, -0.5, 0.06, 0.5, 0.5} +} + +function xpanes.register_pane(name, def) + for i = 1, 15 do + local need = {} + local cnt = 0 + for j = 1, 4 do + if rshift(i, j - 1) % 2 == 1 then + need[j] = true + cnt = cnt + 1 + end + end + local take = {} + local take2 = {} + if need[1] == true and need[3] == true then + need[1] = nil + need[3] = nil + table.insert(take, full_boxes[1]) + table.insert(take2, sb_full_boxes[1]) + end + if need[2] == true and need[4] == true then + need[2] = nil + need[4] = nil + table.insert(take, full_boxes[2]) + table.insert(take2, sb_full_boxes[2]) + end + for k in pairs(need) do + table.insert(take, half_boxes[k]) + table.insert(take2, sb_half_boxes[k]) + end + local texture = def.textures[1] + if cnt == 1 then + texture = def.textures[1].."^"..def.textures[2] + end + minetest.register_node("xpanes:"..name.."_"..i, { + drawtype = "nodebox", + tiles = {def.textures[3], def.textures[3], texture}, + paramtype = "light", + groups = def.groups, + drop = "xpanes:"..name, + sounds = def.sounds, + node_box = { + type = "fixed", + fixed = take + }, + selection_box = { + type = "fixed", + fixed = take2 + } + }) + end + + minetest.register_node("xpanes:"..name, def) + + minetest.register_craft({ + output = "xpanes:"..name.." 16", + recipe = def.recipe + }) +end + +minetest.register_on_placenode(update_nearby) +minetest.register_on_dignode(update_nearby) + +xpanes.register_pane("pane", { + description = "Glass Pane", + tiles = {"xpanes_space.png"}, + drawtype = "airlike", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + air_equivalent = true, + textures = {"default_glass.png","xpanes_pane_half.png","xpanes_white.png"}, + inventory_image = "default_glass.png", + wield_image = "default_glass.png", + sounds = default.node_sound_glass_defaults(), + groups = {snappy=2, cracky=3, oddly_breakable_by_hand=3, pane=1}, + on_construct = function(pos) + update_pane(pos, "pane") + end, + recipe = { + {'default:glass', 'default:glass', 'default:glass'}, + {'default:glass', 'default:glass', 'default:glass'} + } +}) + +xpanes.register_pane("bar", { + description = "Iron bar", + tiles = {"xpanes_space.png"}, + drawtype = "airlike", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + air_equivalent = true, + textures = {"xpanes_bar.png","xpanes_bar.png","xpanes_space.png"}, + inventory_image = "xpanes_bar.png", + wield_image = "xpanes_bar.png", + groups = {snappy=2, cracky=3, oddly_breakable_by_hand=3, pane=1}, + sounds = default.node_sound_stone_defaults(), + on_construct = function(pos) + update_pane(pos, "bar") + end, + recipe = { + {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}, + {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'} + } +}) + diff --git a/games/minetime_game/mods/xpanes/textures/xpanes_bar.png b/games/minetime_game/mods/xpanes/textures/xpanes_bar.png new file mode 100644 index 0000000..5534a5c Binary files /dev/null and b/games/minetime_game/mods/xpanes/textures/xpanes_bar.png differ diff --git a/games/minetime_game/mods/xpanes/textures/xpanes_grey.png b/games/minetime_game/mods/xpanes/textures/xpanes_grey.png new file mode 100644 index 0000000..e1c6f76 Binary files /dev/null and b/games/minetime_game/mods/xpanes/textures/xpanes_grey.png differ diff --git a/games/minetime_game/mods/xpanes/textures/xpanes_pane_half.png b/games/minetime_game/mods/xpanes/textures/xpanes_pane_half.png new file mode 100644 index 0000000..4e846df Binary files /dev/null and b/games/minetime_game/mods/xpanes/textures/xpanes_pane_half.png differ diff --git a/games/minetime_game/mods/xpanes/textures/xpanes_space.png b/games/minetime_game/mods/xpanes/textures/xpanes_space.png new file mode 100644 index 0000000..016cb35 Binary files /dev/null and b/games/minetime_game/mods/xpanes/textures/xpanes_space.png differ diff --git a/games/minetime_game/mods/xpanes/textures/xpanes_white.png b/games/minetime_game/mods/xpanes/textures/xpanes_white.png new file mode 100644 index 0000000..777bd60 Binary files /dev/null and b/games/minetime_game/mods/xpanes/textures/xpanes_white.png differ diff --git a/games/minimal/game.conf b/games/minimal/game.conf deleted file mode 100644 index 99bfaf0..0000000 --- a/games/minimal/game.conf +++ /dev/null @@ -1,2 +0,0 @@ -name = Minimal development test - diff --git a/games/minimal/menu/background.png b/games/minimal/menu/background.png deleted file mode 100644 index ea5fbdc..0000000 Binary files a/games/minimal/menu/background.png and /dev/null differ diff --git a/games/minimal/menu/icon.png b/games/minimal/menu/icon.png deleted file mode 100644 index 8ef6750..0000000 Binary files a/games/minimal/menu/icon.png and /dev/null differ diff --git a/games/minimal/mods/bucket/init.lua b/games/minimal/mods/bucket/init.lua deleted file mode 100644 index dcd59ed..0000000 --- a/games/minimal/mods/bucket/init.lua +++ /dev/null @@ -1,95 +0,0 @@ --- bucket (Minetest 0.4 mod) --- A bucket, which can pick up water and lava - -minetest.register_alias("bucket", "bucket:bucket_empty") -minetest.register_alias("bucket_water", "bucket:bucket_water") -minetest.register_alias("bucket_lava", "bucket:bucket_lava") - -minetest.register_craft({ - output = 'bucket:bucket_empty 1', - recipe = { - {'default:steel_ingot', '', 'default:steel_ingot'}, - {'', 'default:steel_ingot', ''}, - } -}) - -bucket = {} -bucket.liquids = {} - --- Register a new liquid --- source = name of the source node --- flowing = name of the flowing node --- itemname = name of the new bucket item (or nil if liquid is not takeable) --- inventory_image = texture of the new bucket item (ignored if itemname == nil) --- This function can be called from any mod (that depends on bucket). -function bucket.register_liquid(source, flowing, itemname, inventory_image) - bucket.liquids[source] = { - source = source, - flowing = flowing, - itemname = itemname, - } - bucket.liquids[flowing] = bucket.liquids[source] - - if itemname ~= nil then - minetest.register_craftitem(itemname, { - inventory_image = inventory_image, - stack_max = 1, - liquids_pointable = true, - on_use = function(itemstack, user, pointed_thing) - -- Must be pointing to node - if pointed_thing.type ~= "node" then - return - end - -- Check if pointing to a liquid - n = minetest.get_node(pointed_thing.under) - if bucket.liquids[n.name] == nil then - -- Not a liquid - minetest.add_node(pointed_thing.above, {name=source}) - elseif n.name ~= source then - -- It's a liquid - minetest.add_node(pointed_thing.under, {name=source}) - end - return {name="bucket:bucket_empty"} - end - }) - end -end - -minetest.register_craftitem("bucket:bucket_empty", { - inventory_image = "bucket.png", - stack_max = 1, - liquids_pointable = true, - on_use = function(itemstack, user, pointed_thing) - -- Must be pointing to node - if pointed_thing.type ~= "node" then - return - end - -- Check if pointing to a liquid source - n = minetest.get_node(pointed_thing.under) - liquiddef = bucket.liquids[n.name] - if liquiddef ~= nil and liquiddef.source == n.name and liquiddef.itemname ~= nil then - minetest.add_node(pointed_thing.under, {name="air"}) - return {name=liquiddef.itemname} - end - end, -}) - -bucket.register_liquid( - "default:water_source", - "default:water_flowing", - "bucket:bucket_water", - "bucket_water.png" -) - -bucket.register_liquid( - "default:lava_source", - "default:lava_flowing", - "bucket:bucket_lava", - "bucket_lava.png" -) - -minetest.register_craft({ - type = "fuel", - recipe = "bucket:bucket_lava", - burntime = 60, -}) diff --git a/games/minimal/mods/bucket/textures/bucket.png b/games/minimal/mods/bucket/textures/bucket.png deleted file mode 100644 index b775a9f..0000000 Binary files a/games/minimal/mods/bucket/textures/bucket.png and /dev/null differ diff --git a/games/minimal/mods/bucket/textures/bucket_lava.png b/games/minimal/mods/bucket/textures/bucket_lava.png deleted file mode 100644 index 889ed61..0000000 Binary files a/games/minimal/mods/bucket/textures/bucket_lava.png and /dev/null differ diff --git a/games/minimal/mods/bucket/textures/bucket_water.png b/games/minimal/mods/bucket/textures/bucket_water.png deleted file mode 100644 index a3c9d72..0000000 Binary files a/games/minimal/mods/bucket/textures/bucket_water.png and /dev/null differ diff --git a/games/minimal/mods/default/init.lua b/games/minimal/mods/default/init.lua deleted file mode 100644 index 038bf9a..0000000 --- a/games/minimal/mods/default/init.lua +++ /dev/null @@ -1,1798 +0,0 @@ --- default (Minetest 0.4 mod) --- Most default stuff - --- The API documentation in here was moved into doc/lua_api.txt - -WATER_ALPHA = 160 -WATER_VISC = 1 -LAVA_VISC = 7 -LIGHT_MAX = 14 - --- Definitions made by this mod that other mods can use too -default = {} - --- Load other files -dofile(minetest.get_modpath("default").."/mapgen.lua") - --- Set a noticeable inventory formspec for players -minetest.register_on_joinplayer(function(player) - local cb = function(player) - minetest.chat_send_player(player:get_player_name(), "This is the [minimal] \"Minimal Development Test\" game. Use [minetest_game] for the real thing.") - end - minetest.after(2.0, cb, player) -end) - --- --- Tool definition --- - --- The hand -minetest.register_item(":", { - type = "none", - wield_image = "wieldhand.png", - wield_scale = {x=1,y=1,z=2.5}, - tool_capabilities = { - full_punch_interval = 1.0, - max_drop_level = 0, - groupcaps = { - fleshy = {times={[2]=2.00, [3]=1.00}, uses=0, maxlevel=1}, - crumbly = {times={[2]=3.00, [3]=0.70}, uses=0, maxlevel=1}, - snappy = {times={[3]=0.40}, uses=0, maxlevel=1}, - oddly_breakable_by_hand = {times={[1]=7.00,[2]=4.00,[3]=1.40}, uses=0, maxlevel=3}, - } - } -}) - -minetest.register_tool("default:pick_wood", { - description = "Wooden Pickaxe", - inventory_image = "default_tool_woodpick.png", - tool_capabilities = { - max_drop_level=0, - groupcaps={ - cracky={times={[2]=2.00, [3]=1.20}, uses=10, maxlevel=1} - } - }, -}) -minetest.register_tool("default:pick_stone", { - description = "Stone Pickaxe", - inventory_image = "default_tool_stonepick.png", - tool_capabilities = { - max_drop_level=0, - groupcaps={ - cracky={times={[1]=2.00, [2]=1.20, [3]=0.80}, uses=20, maxlevel=1} - } - }, -}) -minetest.register_tool("default:pick_steel", { - description = "Steel Pickaxe", - inventory_image = "default_tool_steelpick.png", - tool_capabilities = { - max_drop_level=1, - groupcaps={ - cracky={times={[1]=4.00, [2]=1.60, [3]=1.00}, uses=10, maxlevel=2} - } - }, -}) -minetest.register_tool("default:pick_mese", { - description = "Mese Pickaxe", - inventory_image = "default_tool_mesepick.png", - tool_capabilities = { - full_punch_interval = 1.0, - max_drop_level=3, - groupcaps={ - cracky={times={[1]=2.0, [2]=1.0, [3]=0.5}, uses=20, maxlevel=3}, - crumbly={times={[1]=2.0, [2]=1.0, [3]=0.5}, uses=20, maxlevel=3}, - snappy={times={[1]=2.0, [2]=1.0, [3]=0.5}, uses=20, maxlevel=3} - } - }, -}) -minetest.register_tool("default:shovel_wood", { - description = "Wooden Shovel", - inventory_image = "default_tool_woodshovel.png", - tool_capabilities = { - max_drop_level=0, - groupcaps={ - crumbly={times={[1]=2.00, [2]=0.80, [3]=0.50}, uses=10, maxlevel=1} - } - }, -}) -minetest.register_tool("default:shovel_stone", { - description = "Stone Shovel", - inventory_image = "default_tool_stoneshovel.png", - tool_capabilities = { - max_drop_level=0, - groupcaps={ - crumbly={times={[1]=1.20, [2]=0.50, [3]=0.30}, uses=20, maxlevel=1} - } - }, -}) -minetest.register_tool("default:shovel_steel", { - description = "Steel Shovel", - inventory_image = "default_tool_steelshovel.png", - tool_capabilities = { - max_drop_level=1, - groupcaps={ - crumbly={times={[1]=1.00, [2]=0.70, [3]=0.60}, uses=10, maxlevel=2} - } - }, -}) -minetest.register_tool("default:axe_wood", { - description = "Wooden Axe", - inventory_image = "default_tool_woodaxe.png", - tool_capabilities = { - max_drop_level=0, - groupcaps={ - choppy={times={[2]=1.40, [3]=0.80}, uses=10, maxlevel=1}, - fleshy={times={[2]=1.50, [3]=0.80}, uses=10, maxlevel=1} - } - }, -}) -minetest.register_tool("default:axe_stone", { - description = "Stone Axe", - inventory_image = "default_tool_stoneaxe.png", - tool_capabilities = { - max_drop_level=0, - groupcaps={ - choppy={times={[1]=1.50, [2]=1.00, [3]=0.60}, uses=20, maxlevel=1}, - fleshy={times={[2]=1.30, [3]=0.70}, uses=20, maxlevel=1} - } - }, -}) -minetest.register_tool("default:axe_steel", { - description = "Steel Axe", - inventory_image = "default_tool_steelaxe.png", - tool_capabilities = { - max_drop_level=1, - groupcaps={ - choppy={times={[1]=2.00, [2]=1.60, [3]=1.00}, uses=10, maxlevel=2}, - fleshy={times={[2]=1.10, [3]=0.60}, uses=40, maxlevel=1} - } - }, -}) -minetest.register_tool("default:sword_wood", { - description = "Wooden Sword", - inventory_image = "default_tool_woodsword.png", - tool_capabilities = { - full_punch_interval = 1.0, - max_drop_level=0, - groupcaps={ - fleshy={times={[2]=1.10, [3]=0.60}, uses=10, maxlevel=1}, - snappy={times={[2]=1.00, [3]=0.50}, uses=10, maxlevel=1}, - choppy={times={[3]=1.00}, uses=20, maxlevel=0} - } - } -}) -minetest.register_tool("default:sword_stone", { - description = "Stone Sword", - inventory_image = "default_tool_stonesword.png", - tool_capabilities = { - full_punch_interval = 1.0, - max_drop_level=0, - groupcaps={ - fleshy={times={[2]=0.80, [3]=0.40}, uses=20, maxlevel=1}, - snappy={times={[2]=0.80, [3]=0.40}, uses=20, maxlevel=1}, - choppy={times={[3]=0.90}, uses=20, maxlevel=0} - } - } -}) -minetest.register_tool("default:sword_steel", { - description = "Steel Sword", - inventory_image = "default_tool_steelsword.png", - tool_capabilities = { - full_punch_interval = 1.0, - max_drop_level=1, - groupcaps={ - fleshy={times={[1]=2.00, [2]=0.80, [3]=0.40}, uses=10, maxlevel=2}, - snappy={times={[2]=0.70, [3]=0.30}, uses=40, maxlevel=1}, - choppy={times={[3]=0.70}, uses=40, maxlevel=0} - } - } -}) - --- --- Crafting definition --- - -minetest.register_craft({ - output = 'default:wood 4', - recipe = { - {'default:tree'}, - } -}) - -minetest.register_craft({ - output = 'default:stick 4', - recipe = { - {'default:wood'}, - } -}) - -minetest.register_craft({ - output = 'default:fence_wood 2', - recipe = { - {'default:stick', 'default:stick', 'default:stick'}, - {'default:stick', 'default:stick', 'default:stick'}, - } -}) - -minetest.register_craft({ - output = 'default:sign_wall', - recipe = { - {'default:wood', 'default:wood', 'default:wood'}, - {'default:wood', 'default:wood', 'default:wood'}, - {'', 'default:stick', ''}, - } -}) - -minetest.register_craft({ - output = 'default:torch 4', - recipe = { - {'default:coal_lump'}, - {'default:stick'}, - } -}) - -minetest.register_craft({ - output = 'default:pick_wood', - recipe = { - {'default:wood', 'default:wood', 'default:wood'}, - {'', 'default:stick', ''}, - {'', 'default:stick', ''}, - } -}) - -minetest.register_craft({ - output = 'default:pick_stone', - recipe = { - {'default:cobble', 'default:cobble', 'default:cobble'}, - {'', 'default:stick', ''}, - {'', 'default:stick', ''}, - } -}) - -minetest.register_craft({ - output = 'default:pick_steel', - recipe = { - {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}, - {'', 'default:stick', ''}, - {'', 'default:stick', ''}, - } -}) - -minetest.register_craft({ - output = 'default:pick_mese', - recipe = { - {'default:mese', 'default:mese', 'default:mese'}, - {'', 'default:stick', ''}, - {'', 'default:stick', ''}, - } -}) - -minetest.register_craft({ - output = 'default:shovel_wood', - recipe = { - {'default:wood'}, - {'default:stick'}, - {'default:stick'}, - } -}) - -minetest.register_craft({ - output = 'default:shovel_stone', - recipe = { - {'default:cobble'}, - {'default:stick'}, - {'default:stick'}, - } -}) - -minetest.register_craft({ - output = 'default:shovel_steel', - recipe = { - {'default:steel_ingot'}, - {'default:stick'}, - {'default:stick'}, - } -}) - -minetest.register_craft({ - output = 'default:axe_wood', - recipe = { - {'default:wood', 'default:wood'}, - {'default:wood', 'default:stick'}, - {'', 'default:stick'}, - } -}) - -minetest.register_craft({ - output = 'default:axe_stone', - recipe = { - {'default:cobble', 'default:cobble'}, - {'default:cobble', 'default:stick'}, - {'', 'default:stick'}, - } -}) - -minetest.register_craft({ - output = 'default:axe_steel', - recipe = { - {'default:steel_ingot', 'default:steel_ingot'}, - {'default:steel_ingot', 'default:stick'}, - {'', 'default:stick'}, - } -}) - -minetest.register_craft({ - output = 'default:sword_wood', - recipe = { - {'default:wood'}, - {'default:wood'}, - {'default:stick'}, - } -}) - -minetest.register_craft({ - output = 'default:sword_stone', - recipe = { - {'default:cobble'}, - {'default:cobble'}, - {'default:stick'}, - } -}) - -minetest.register_craft({ - output = 'default:sword_steel', - recipe = { - {'default:steel_ingot'}, - {'default:steel_ingot'}, - {'default:stick'}, - } -}) - -minetest.register_craft({ - output = 'default:rail 15', - recipe = { - {'default:steel_ingot', '', 'default:steel_ingot'}, - {'default:steel_ingot', 'default:stick', 'default:steel_ingot'}, - {'default:steel_ingot', '', 'default:steel_ingot'}, - } -}) - -minetest.register_craft({ - output = 'default:chest', - recipe = { - {'default:wood', 'default:wood', 'default:wood'}, - {'default:wood', '', 'default:wood'}, - {'default:wood', 'default:wood', 'default:wood'}, - } -}) - -minetest.register_craft({ - output = 'default:chest_locked', - recipe = { - {'default:wood', 'default:wood', 'default:wood'}, - {'default:wood', 'default:steel_ingot', 'default:wood'}, - {'default:wood', 'default:wood', 'default:wood'}, - } -}) - -minetest.register_craft({ - output = 'default:furnace', - recipe = { - {'default:cobble', 'default:cobble', 'default:cobble'}, - {'default:cobble', '', 'default:cobble'}, - {'default:cobble', 'default:cobble', 'default:cobble'}, - } -}) - -minetest.register_craft({ - output = 'default:steelblock', - recipe = { - {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}, - {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}, - {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}, - } -}) - -minetest.register_craft({ - output = 'default:sandstone', - recipe = { - {'default:sand', 'default:sand'}, - {'default:sand', 'default:sand'}, - } -}) - -minetest.register_craft({ - output = 'default:clay', - recipe = { - {'default:clay_lump', 'default:clay_lump'}, - {'default:clay_lump', 'default:clay_lump'}, - } -}) - -minetest.register_craft({ - output = 'default:brick', - recipe = { - {'default:clay_brick', 'default:clay_brick'}, - {'default:clay_brick', 'default:clay_brick'}, - } -}) - -minetest.register_craft({ - output = 'default:paper', - recipe = { - {'default:papyrus', 'default:papyrus', 'default:papyrus'}, - } -}) - -minetest.register_craft({ - output = 'default:book', - recipe = { - {'default:paper'}, - {'default:paper'}, - {'default:paper'}, - } -}) - -minetest.register_craft({ - output = 'default:bookshelf', - recipe = { - {'default:wood', 'default:wood', 'default:wood'}, - {'default:book', 'default:book', 'default:book'}, - {'default:wood', 'default:wood', 'default:wood'}, - } -}) - -minetest.register_craft({ - output = 'default:ladder', - recipe = { - {'default:stick', '', 'default:stick'}, - {'default:stick', 'default:stick', 'default:stick'}, - {'default:stick', '', 'default:stick'}, - } -}) - --- --- Crafting (tool repair) --- -minetest.register_craft({ - type = "toolrepair", - additional_wear = -0.02, -}) - --- --- Cooking recipes --- - -minetest.register_craft({ - type = "cooking", - output = "default:glass", - recipe = "default:sand", -}) - -minetest.register_craft({ - type = "cooking", - output = "default:coal_lump", - recipe = "default:tree", -}) - -minetest.register_craft({ - type = "cooking", - output = "default:coal_lump", - recipe = "default:jungletree", -}) - -minetest.register_craft({ - type = "cooking", - output = "default:stone", - recipe = "default:cobble", -}) - -minetest.register_craft({ - type = "cooking", - output = "default:steel_ingot", - recipe = "default:iron_lump", -}) - -minetest.register_craft({ - type = "cooking", - output = "default:clay_brick", - recipe = "default:clay_lump", -}) - --- --- Fuels --- - -minetest.register_craft({ - type = "fuel", - recipe = "default:tree", - burntime = 30, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "default:jungletree", - burntime = 30, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "default:junglegrass", - burntime = 2, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "default:leaves", - burntime = 1, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "default:cactus", - burntime = 15, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "default:papyrus", - burntime = 1, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "default:bookshelf", - burntime = 30, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "default:fence_wood", - burntime = 15, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "default:ladder", - burntime = 5, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "default:wood", - burntime = 7, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "default:mese", - burntime = 30, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "default:lava_source", - burntime = 60, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "default:torch", - burntime = 4, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "default:sign_wall", - burntime = 10, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "default:chest", - burntime = 30, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "default:chest_locked", - burntime = 30, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "default:nyancat", - burntime = 1, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "default:nyancat_rainbow", - burntime = 1, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "default:sapling", - burntime = 10, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "default:apple", - burntime = 3, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "default:coal_lump", - burntime = 40, -}) - --- --- Node definitions --- - --- Default node sounds - -function default.node_sound_defaults(table) - table = table or {} - table.footstep = table.footstep or - {name="", gain=1.0} - table.dug = table.dug or - {name="default_dug_node", gain=1.0} - return table -end - -function default.node_sound_stone_defaults(table) - table = table or {} - table.footstep = table.footstep or - {name="default_hard_footstep", gain=0.2} - default.node_sound_defaults(table) - return table -end - -function default.node_sound_dirt_defaults(table) - table = table or {} - table.footstep = table.footstep or - {name="", gain=0.5} - --table.dug = table.dug or - -- {name="default_dirt_break", gain=0.5} - table.place = table.place or - {name="default_grass_footstep", gain=0.5} - default.node_sound_defaults(table) - return table -end - -function default.node_sound_sand_defaults(table) - table = table or {} - table.footstep = table.footstep or - {name="default_grass_footstep", gain=0.25} - --table.dug = table.dug or - -- {name="default_dirt_break", gain=0.25} - table.dug = table.dug or - {name="", gain=0.25} - default.node_sound_defaults(table) - return table -end - -function default.node_sound_wood_defaults(table) - table = table or {} - table.footstep = table.footstep or - {name="default_hard_footstep", gain=0.3} - default.node_sound_defaults(table) - return table -end - -function default.node_sound_leaves_defaults(table) - table = table or {} - table.footstep = table.footstep or - {name="default_grass_footstep", gain=0.25} - table.dig = table.dig or - {name="default_dig_crumbly", gain=0.4} - table.dug = table.dug or - {name="", gain=1.0} - default.node_sound_defaults(table) - return table -end - -function default.node_sound_glass_defaults(table) - table = table or {} - table.footstep = table.footstep or - {name="default_stone_footstep", gain=0.25} - table.dug = table.dug or - {name="default_break_glass", gain=1.0} - default.node_sound_defaults(table) - return table -end - --- - -minetest.register_node("default:stone", { - description = "Stone", - tiles ={"default_stone.png"}, - groups = {cracky=3}, - drop = 'default:cobble', - legacy_mineral = true, - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_node("default:stone_with_coal", { - description = "Stone with coal", - tiles ={"default_stone.png^default_mineral_coal.png"}, - groups = {cracky=3}, - drop = 'default:coal_lump', - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_node("default:stone_with_iron", { - description = "Stone with iron", - tiles ={"default_stone.png^default_mineral_iron.png"}, - groups = {cracky=3}, - drop = 'default:iron_lump', - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_node("default:dirt_with_grass", { - description = "Dirt with grass", - tiles ={"default_grass.png", "default_dirt.png", "default_dirt.png^default_grass_side.png"}, - groups = {crumbly=3, soil=1}, - drop = 'default:dirt', - sounds = default.node_sound_dirt_defaults({ - footstep = {name="default_grass_footstep", gain=0.4}, - }), -}) - -minetest.register_node("default:dirt_with_grass_footsteps", { - description = "Dirt with grass and footsteps", - tiles ={"default_grass_footsteps.png", "default_dirt.png", "default_dirt.png^default_grass_side.png"}, - groups = {crumbly=3, soil=1}, - drop = 'default:dirt', - sounds = default.node_sound_dirt_defaults({ - footstep = {name="default_grass_footstep", gain=0.4}, - }), -}) - -minetest.register_node("default:dirt", { - description = "Dirt", - tiles ={"default_dirt.png"}, - groups = {crumbly=3, soil=1}, - sounds = default.node_sound_dirt_defaults(), -}) - -minetest.register_node("default:sand", { - description = "Sand", - tiles ={"default_sand.png"}, - groups = {crumbly=3, falling_node=1}, - sounds = default.node_sound_sand_defaults(), -}) - -minetest.register_node("default:gravel", { - description = "Gravel", - tiles ={"default_gravel.png"}, - groups = {crumbly=2, falling_node=1}, - sounds = default.node_sound_dirt_defaults({ - footstep = {name="default_gravel_footstep", gain=0.45}, - }), -}) - -minetest.register_node("default:sandstone", { - description = "Sandstone", - tiles ={"default_sandstone.png"}, - groups = {crumbly=2,cracky=2}, - drop = 'default:sand', - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_node("default:clay", { - description = "Clay", - tiles ={"default_clay.png"}, - groups = {crumbly=3}, - drop = 'default:clay_lump 4', - sounds = default.node_sound_dirt_defaults({ - footstep = "", - }), -}) - -minetest.register_node("default:brick", { - description = "Brick", - tiles ={"default_brick.png"}, - groups = {cracky=3}, - drop = 'default:clay_brick 4', - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_node("default:tree", { - description = "Tree", - tiles ={"default_tree_top.png", "default_tree_top.png", "default_tree.png"}, - groups = {snappy=2,choppy=2,oddly_breakable_by_hand=1}, - sounds = default.node_sound_wood_defaults(), -}) - -minetest.register_node("default:jungletree", { - description = "Jungle Tree", - tiles ={"default_jungletree_top.png", "default_jungletree_top.png", "default_jungletree.png"}, - groups = {snappy=2,choppy=2,oddly_breakable_by_hand=1}, - sounds = default.node_sound_wood_defaults(), -}) - -minetest.register_node("default:junglegrass", { - description = "Jungle Grass", - drawtype = "plantlike", - visual_scale = 1.3, - tiles ={"default_junglegrass.png"}, - inventory_image = "default_junglegrass.png", - wield_image = "default_junglegrass.png", - paramtype = "light", - walkable = false, - groups = {snappy=3,attached_node=1}, - sounds = default.node_sound_leaves_defaults(), -}) - -minetest.register_node("default:leaves", { - description = "Leaves", - drawtype = "allfaces_optional", - visual_scale = 1.3, - tiles ={"default_leaves.png"}, - paramtype = "light", - is_ground_content = false, - groups = {snappy=3}, - drop = { - max_items = 1, - items = { - { - -- player will get sapling with 1/20 chance - items = {'default:sapling'}, - rarity = 20, - }, - { - -- player will get leaves only if he get no saplings, - -- this is because max_items is 1 - items = {'default:leaves'}, - } - } - }, - sounds = default.node_sound_leaves_defaults(), -}) - -minetest.register_node("default:cactus", { - description = "Cactus", - tiles ={"default_cactus_top.png", "default_cactus_top.png", "default_cactus_side.png"}, - groups = {snappy=2,choppy=3}, - sounds = default.node_sound_wood_defaults(), -}) - -minetest.register_node("default:papyrus", { - description = "Papyrus", - drawtype = "plantlike", - tiles ={"default_papyrus.png"}, - inventory_image = "default_papyrus.png", - wield_image = "default_papyrus.png", - paramtype = "light", - walkable = false, - groups = {snappy=3}, - sounds = default.node_sound_leaves_defaults(), -}) - -minetest.register_node("default:bookshelf", { - description = "Bookshelf", - tiles ={"default_wood.png", "default_wood.png", "default_bookshelf.png"}, - groups = {snappy=2,choppy=3,oddly_breakable_by_hand=2}, - sounds = default.node_sound_wood_defaults(), -}) - -minetest.register_node("default:glass", { - description = "Glass", - drawtype = "glasslike", - tiles ={"default_glass.png"}, - inventory_image = minetest.inventorycube("default_glass.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("default:fence_wood", { - description = "Wooden Fence", - drawtype = "fencelike", - tiles ={"default_wood.png"}, - inventory_image = "default_fence.png", - wield_image = "default_fence.png", - paramtype = "light", - selection_box = { - type = "fixed", - fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7}, - }, - groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2}, - sounds = default.node_sound_wood_defaults(), -}) - -minetest.register_node("default:rail", { - description = "Rail", - drawtype = "raillike", - tiles ={"default_rail.png", "default_rail_curved.png", "default_rail_t_junction.png", "default_rail_crossing.png"}, - inventory_image = "default_rail.png", - wield_image = "default_rail.png", - paramtype = "light", - walkable = false, - selection_box = { - type = "fixed", - fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2}, - }, - groups = {bendy=2,snappy=1,dig_immediate=2}, -}) - -minetest.register_node("default:ladder", { - description = "Ladder", - drawtype = "signlike", - tiles ={"default_ladder.png"}, - inventory_image = "default_ladder.png", - wield_image = "default_ladder.png", - paramtype = "light", - paramtype2 = "wallmounted", - walkable = false, - climbable = true, - selection_box = { - type = "wallmounted", - --wall_top = = - --wall_bottom = = - --wall_side = = - }, - groups = {snappy=2,choppy=2,oddly_breakable_by_hand=3}, - legacy_wallmounted = true, - sounds = default.node_sound_wood_defaults(), -}) - -minetest.register_node("default:wood", { - description = "Wood", - tiles ={"default_wood.png"}, - groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2}, - sounds = default.node_sound_wood_defaults(), -}) - -minetest.register_node("default:mese", { - description = "Mese", - tiles ={"default_mese.png"}, - groups = {cracky=1,level=2}, - sounds = default.node_sound_defaults(), -}) - -minetest.register_node("default:cloud", { - description = "Cloud", - tiles ={"default_cloud.png"}, - sounds = default.node_sound_defaults(), -}) - -minetest.register_node("default:water_flowing", { - description = "Water (flowing)", - inventory_image = minetest.inventorycube("default_water.png"), - drawtype = "flowingliquid", - tiles ={"default_water.png"}, - special_tiles = { - {name="default_water.png", backface_culling=false}, - {name="default_water.png", backface_culling=true}, - }, - alpha = WATER_ALPHA, - paramtype = "light", - walkable = false, - pointable = false, - diggable = false, - buildable_to = true, - drowning = 1, - liquidtype = "flowing", - liquid_alternative_flowing = "default:water_flowing", - liquid_alternative_source = "default:water_source", - liquid_viscosity = WATER_VISC, - post_effect_color = {a=64, r=100, g=100, b=200}, - groups = {water=3, liquid=3}, -}) - -minetest.register_node("default:water_source", { - description = "Water", - inventory_image = minetest.inventorycube("default_water.png"), - drawtype = "liquid", - tiles ={"default_water.png"}, - special_tiles = { - -- New-style water source material (mostly unused) - {name="default_water.png", backface_culling=false}, - }, - alpha = WATER_ALPHA, - paramtype = "light", - walkable = false, - pointable = false, - diggable = false, - buildable_to = true, - drowning = 1, - liquidtype = "source", - liquid_alternative_flowing = "default:water_flowing", - liquid_alternative_source = "default:water_source", - liquid_viscosity = WATER_VISC, - post_effect_color = {a=64, r=100, g=100, b=200}, - groups = {water=3, liquid=3}, -}) - -minetest.register_node("default:lava_flowing", { - description = "Lava (flowing)", - inventory_image = minetest.inventorycube("default_lava.png"), - drawtype = "flowingliquid", - tiles ={"default_lava.png"}, - special_tiles = { - { - image="default_lava_flowing_animated.png", - backface_culling=false, - animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=3.3} - }, - { - image="default_lava_flowing_animated.png", - backface_culling=true, - animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=3.3} - }, - }, - paramtype = "light", - light_source = LIGHT_MAX - 1, - walkable = false, - pointable = false, - diggable = false, - buildable_to = true, - drowning = 1, - liquidtype = "flowing", - liquid_alternative_flowing = "default:lava_flowing", - liquid_alternative_source = "default:lava_source", - liquid_viscosity = LAVA_VISC, - damage_per_second = 4*2, - post_effect_color = {a=192, r=255, g=64, b=0}, - groups = {lava=3, liquid=2, hot=3}, -}) - -minetest.register_node("default:lava_source", { - description = "Lava", - inventory_image = minetest.inventorycube("default_lava.png"), - drawtype = "liquid", - --tiles ={"default_lava.png"}, - tiles ={ - {name="default_lava_source_animated.png", animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=3.0}} - }, - special_tiles = { - -- New-style lava source material (mostly unused) - {name="default_lava.png", backface_culling=false}, - }, - paramtype = "light", - light_source = LIGHT_MAX - 1, - walkable = false, - pointable = false, - diggable = false, - buildable_to = true, - drowning = 1, - liquidtype = "source", - liquid_alternative_flowing = "default:lava_flowing", - liquid_alternative_source = "default:lava_source", - liquid_viscosity = LAVA_VISC, - damage_per_second = 4*2, - post_effect_color = {a=192, r=255, g=64, b=0}, - groups = {lava=3, liquid=2, hot=3}, -}) - -minetest.register_node("default:torch", { - description = "Torch", - drawtype = "torchlike", - tiles ={"default_torch_on_floor.png", "default_torch_on_ceiling.png", "default_torch.png"}, - inventory_image = "default_torch_on_floor.png", - wield_image = "default_torch_on_floor.png", - paramtype = "light", - paramtype2 = "wallmounted", - sunlight_propagates = true, - is_ground_content = false, - walkable = false, - light_source = LIGHT_MAX-1, - selection_box = { - type = "wallmounted", - wall_top = {-0.1, 0.5-0.6, -0.1, 0.1, 0.5, 0.1}, - wall_bottom = {-0.1, -0.5, -0.1, 0.1, -0.5+0.6, 0.1}, - wall_side = {-0.5, -0.3, -0.1, -0.5+0.3, 0.3, 0.1}, - }, - groups = {choppy=2,dig_immediate=3,attached_node=1}, - legacy_wallmounted = true, - sounds = default.node_sound_defaults(), -}) - -minetest.register_node("default:sign_wall", { - description = "Sign", - drawtype = "signlike", - tiles ={"default_sign_wall.png"}, - inventory_image = "default_sign_wall.png", - wield_image = "default_sign_wall.png", - paramtype = "light", - paramtype2 = "wallmounted", - sunlight_propagates = true, - is_ground_content = false, - walkable = false, - selection_box = { - type = "wallmounted", - --wall_top = - --wall_bottom = - --wall_side = - }, - groups = {choppy=2,dig_immediate=2,attached_node=1}, - legacy_wallmounted = true, - sounds = default.node_sound_defaults(), - on_construct = function(pos) - --local n = minetest.get_node(pos) - local meta = minetest.get_meta(pos) - meta:set_string("formspec", "field[text;;${text}]") - meta:set_string("infotext", "\"\"") - end, - on_receive_fields = function(pos, formname, fields, sender) - --print("Sign at "..minetest.pos_to_string(pos).." got "..dump(fields)) - local meta = minetest.get_meta(pos) - fields.text = fields.text or "" - print((sender:get_player_name() or "").." wrote \""..fields.text.. - "\" to sign at "..minetest.pos_to_string(pos)) - meta:set_string("text", fields.text) - meta:set_string("infotext", '"'..fields.text..'"') - end, -}) - -minetest.register_node("default:chest", { - description = "Chest", - tiles ={"default_chest_top.png", "default_chest_top.png", "default_chest_side.png", - "default_chest_side.png", "default_chest_side.png", "default_chest_front.png"}, - paramtype2 = "facedir", - groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2}, - legacy_facedir_simple = true, - is_ground_content = false, - sounds = default.node_sound_wood_defaults(), - on_construct = function(pos) - local meta = minetest.get_meta(pos) - meta:set_string("formspec", - "size[8,9]".. - "list[current_name;main;0,0;8,4;]".. - "list[current_player;main;0,5;8,4;]") - meta:set_string("infotext", "Chest") - local inv = meta:get_inventory() - inv:set_size("main", 8*4) - end, - can_dig = function(pos,player) - local meta = minetest.get_meta(pos); - local inv = meta:get_inventory() - return inv:is_empty("main") - end, -}) - -local function has_locked_chest_privilege(meta, player) - if player:get_player_name() ~= meta:get_string("owner") then - return false - end - return true -end - -minetest.register_node("default:chest_locked", { - description = "Locked Chest", - tiles ={"default_chest_top.png", "default_chest_top.png", "default_chest_side.png", - "default_chest_side.png", "default_chest_side.png", "default_chest_lock.png"}, - paramtype2 = "facedir", - groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2}, - legacy_facedir_simple = true, - is_ground_content = false, - sounds = default.node_sound_wood_defaults(), - after_place_node = function(pos, placer) - local meta = minetest.get_meta(pos) - meta:set_string("owner", placer:get_player_name() or "") - meta:set_string("infotext", "Locked Chest (owned by ".. - meta:get_string("owner")..")") - end, - on_construct = function(pos) - local meta = minetest.get_meta(pos) - meta:set_string("formspec", - "size[8,9]".. - "list[current_name;main;0,0;8,4;]".. - "list[current_player;main;0,5;8,4;]") - meta:set_string("infotext", "Locked Chest") - meta:set_string("owner", "") - local inv = meta:get_inventory() - inv:set_size("main", 8*4) - end, - can_dig = function(pos,player) - local meta = minetest.get_meta(pos); - local inv = meta:get_inventory() - return inv:is_empty("main") - end, - allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) - local meta = minetest.get_meta(pos) - if not has_locked_chest_privilege(meta, player) then - minetest.log("action", player:get_player_name().. - " tried to access a locked chest belonging to ".. - meta:get_string("owner").." at ".. - minetest.pos_to_string(pos)) - return 0 - end - return count - end, - allow_metadata_inventory_put = function(pos, listname, index, stack, player) - local meta = minetest.get_meta(pos) - if not has_locked_chest_privilege(meta, player) then - minetest.log("action", player:get_player_name().. - " tried to access a locked chest belonging to ".. - meta:get_string("owner").." at ".. - minetest.pos_to_string(pos)) - return 0 - end - return stack:get_count() - end, - allow_metadata_inventory_take = function(pos, listname, index, stack, player) - local meta = minetest.get_meta(pos) - if not has_locked_chest_privilege(meta, player) then - minetest.log("action", player:get_player_name().. - " tried to access a locked chest belonging to ".. - meta:get_string("owner").." at ".. - minetest.pos_to_string(pos)) - return 0 - end - return stack:get_count() - end, - on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) - minetest.log("action", player:get_player_name().. - " moves stuff in locked chest at "..minetest.pos_to_string(pos)) - end, - on_metadata_inventory_put = function(pos, listname, index, stack, player) - minetest.log("action", player:get_player_name().. - " moves stuff to locked chest at "..minetest.pos_to_string(pos)) - end, - on_metadata_inventory_take = function(pos, listname, index, stack, player) - minetest.log("action", player:get_player_name().. - " takes stuff from locked chest at "..minetest.pos_to_string(pos)) - end, -}) - -default.furnace_inactive_formspec = - "size[8,9]".. - "image[2,2;1,1;default_furnace_fire_bg.png]".. - "list[current_name;fuel;2,3;1,1;]".. - "list[current_name;src;2,1;1,1;]".. - "list[current_name;dst;5,1;2,2;]".. - "list[current_player;main;0,5;8,4;]" - -minetest.register_node("default:furnace", { - description = "Furnace", - tiles ={"default_furnace_side.png", "default_furnace_side.png", "default_furnace_side.png", - "default_furnace_side.png", "default_furnace_side.png", "default_furnace_front.png"}, - paramtype2 = "facedir", - groups = {cracky=2}, - legacy_facedir_simple = true, - is_ground_content = false, - sounds = default.node_sound_stone_defaults(), - on_construct = function(pos) - local meta = minetest.get_meta(pos) - meta:set_string("formspec", default.furnace_inactive_formspec) - meta:set_string("infotext", "Furnace") - local inv = meta:get_inventory() - inv:set_size("fuel", 1) - inv:set_size("src", 1) - inv:set_size("dst", 4) - end, - can_dig = function(pos,player) - local meta = minetest.get_meta(pos); - local inv = meta:get_inventory() - if not inv:is_empty("fuel") then - return false - elseif not inv:is_empty("dst") then - return false - elseif not inv:is_empty("src") then - return false - end - return true - end, -}) - -minetest.register_node("default:furnace_active", { - description = "Furnace", - tiles ={"default_furnace_side.png", "default_furnace_side.png", "default_furnace_side.png", - "default_furnace_side.png", "default_furnace_side.png", "default_furnace_front_active.png"}, - paramtype2 = "facedir", - light_source = 8, - drop = "default:furnace", - groups = {cracky=2}, - legacy_facedir_simple = true, - is_ground_content = false, - sounds = default.node_sound_stone_defaults(), - on_construct = function(pos) - local meta = minetest.get_meta(pos) - meta:set_string("formspec", default.furnace_inactive_formspec) - meta:set_string("infotext", "Furnace"); - local inv = meta:get_inventory() - inv:set_size("fuel", 1) - inv:set_size("src", 1) - inv:set_size("dst", 4) - end, - can_dig = function(pos,player) - local meta = minetest.get_meta(pos); - local inv = meta:get_inventory() - if not inv:is_empty("fuel") then - return false - elseif not inv:is_empty("dst") then - return false - elseif not inv:is_empty("src") then - return false - end - return true - end, -}) - -function swap_node(pos,name) - local node = minetest.get_node(pos) - if node.name == name then - return - end - node.name = name - minetest.swap_node(pos, node) -end - -minetest.register_abm({ - nodenames = {"default:furnace","default:furnace_active"}, - interval = 1.0, - chance = 1, - action = function(pos, node, active_object_count, active_object_count_wider) - local meta = minetest.get_meta(pos) - for i, name in ipairs({ - "fuel_totaltime", - "fuel_time", - "src_totaltime", - "src_time" - }) do - if meta:get_string(name) == "" then - meta:set_float(name, 0.0) - end - end - - local inv = meta:get_inventory() - - local srclist = inv:get_list("src") - local cooked = nil - - if srclist then - cooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist}) - end - - local was_active = false - - if meta:get_float("fuel_time") < meta:get_float("fuel_totaltime") then - was_active = true - meta:set_float("fuel_time", meta:get_float("fuel_time") + 1) - meta:set_float("src_time", meta:get_float("src_time") + 1) - if cooked and cooked.item and meta:get_float("src_time") >= cooked.time then - -- check if there's room for output in "dst" list - if inv:room_for_item("dst",cooked.item) then - -- Put result in "dst" list - inv:add_item("dst", cooked.item) - -- take stuff from "src" list - srcstack = inv:get_stack("src", 1) - srcstack:take_item() - inv:set_stack("src", 1, srcstack) - else - print("Could not insert '"..cooked.item:to_string().."'") - end - meta:set_string("src_time", 0) - end - end - - if meta:get_float("fuel_time") < meta:get_float("fuel_totaltime") then - local percent = math.floor(meta:get_float("fuel_time") / - meta:get_float("fuel_totaltime") * 100) - meta:set_string("infotext","Furnace active: "..percent.."%") - swap_node(pos,"default:furnace_active") - meta:set_string("formspec", - "size[8,9]".. - "image[2,2;1,1;default_furnace_fire_bg.png^[lowpart:".. - (100-percent)..":default_furnace_fire_fg.png]".. - "list[current_name;fuel;2,3;1,1;]".. - "list[current_name;src;2,1;1,1;]".. - "list[current_name;dst;5,1;2,2;]".. - "list[current_player;main;0,5;8,4;]") - return - end - - local fuel = nil - local cooked = nil - local fuellist = inv:get_list("fuel") - local srclist = inv:get_list("src") - - if srclist then - cooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist}) - end - if fuellist then - fuel = minetest.get_craft_result({method = "fuel", width = 1, items = fuellist}) - end - - if fuel.time <= 0 then - meta:set_string("infotext","Furnace out of fuel") - swap_node(pos,"default:furnace") - meta:set_string("formspec", default.furnace_inactive_formspec) - return - end - - if cooked.item:is_empty() then - if was_active then - meta:set_string("infotext","Furnace is empty") - swap_node(pos,"default:furnace") - meta:set_string("formspec", default.furnace_inactive_formspec) - end - return - end - - meta:set_string("fuel_totaltime", fuel.time) - meta:set_string("fuel_time", 0) - - local stack = inv:get_stack("fuel", 1) - stack:take_item() - inv:set_stack("fuel", 1, stack) - end, -}) - -minetest.register_node("default:cobble", { - description = "Cobble", - tiles ={"default_cobble.png"}, - groups = {cracky=3}, - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_node("default:mossycobble", { - description = "Mossy Cobble", - tiles ={"default_mossycobble.png"}, - groups = {cracky=3}, - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_node("default:steelblock", { - description = "Steel Block", - tiles ={"default_steel_block.png"}, - groups = {snappy=1,bendy=2}, - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_node("default:nyancat", { - description = "Nyancat", - tiles ={"default_nc_side.png", "default_nc_side.png", "default_nc_side.png", - "default_nc_side.png", "default_nc_back.png", "default_nc_front.png"}, - inventory_image = "default_nc_front.png", - paramtype2 = "facedir", - groups = {cracky=2}, - legacy_facedir_simple = true, - is_ground_content = false, - sounds = default.node_sound_defaults(), -}) - -minetest.register_node("default:nyancat_rainbow", { - description = "Nyancat Rainbow", - tiles ={"default_nc_rb.png"}, - inventory_image = "default_nc_rb.png", - is_ground_content = false, - groups = {cracky=2}, - sounds = default.node_sound_defaults(), -}) - -minetest.register_node("default:sapling", { - description = "Sapling", - drawtype = "plantlike", - visual_scale = 1.0, - tiles ={"default_sapling.png"}, - inventory_image = "default_sapling.png", - wield_image = "default_sapling.png", - paramtype = "light", - walkable = false, - groups = {snappy=2,dig_immediate=3,attached_node=1}, - sounds = default.node_sound_defaults(), -}) - -minetest.register_node("default:apple", { - description = "Apple", - drawtype = "plantlike", - visual_scale = 1.0, - tiles ={"default_apple.png"}, - inventory_image = "default_apple.png", - paramtype = "light", - sunlight_propagates = true, - walkable = false, - groups = {fleshy=3,dig_immediate=3}, - on_use = minetest.item_eat(4), - sounds = default.node_sound_defaults(), -}) - - -local c_air = minetest.get_content_id("air") -local c_ignore = minetest.get_content_id("ignore") -local c_tree = minetest.get_content_id("default:tree") -local c_leaves = minetest.get_content_id("default:leaves") -local c_apple = minetest.get_content_id("default:apple") -function default.grow_tree(data, a, pos, is_apple_tree, seed) - --[[ - NOTE: Tree-placing code is currently duplicated in the engine - and in games that have saplings; both are deprecated but not - replaced yet - ]]-- - local pr = PseudoRandom(seed) - local th = pr:next(4, 5) - local x, y, z = pos.x, pos.y, pos.z - for yy = y, y+th-1 do - local vi = a:index(x, yy, z) - if a:contains(x, yy, z) and (data[vi] == c_air or yy == y) then - data[vi] = c_tree - end - end - y = y+th-1 -- (x, y, z) is now last piece of trunk - local leaves_a = VoxelArea:new{MinEdge={x=-2, y=-1, z=-2}, MaxEdge={x=2, y=2, z=2}} - local leaves_buffer = {} - - -- Force leaves near the trunk - local d = 1 - for xi = -d, d do - for yi = -d, d do - for zi = -d, d do - leaves_buffer[leaves_a:index(xi, yi, zi)] = true - end - end - end - - -- Add leaves randomly - for iii = 1, 8 do - local d = 1 - local xx = pr:next(leaves_a.MinEdge.x, leaves_a.MaxEdge.x - d) - local yy = pr:next(leaves_a.MinEdge.y, leaves_a.MaxEdge.y - d) - local zz = pr:next(leaves_a.MinEdge.z, leaves_a.MaxEdge.z - d) - - for xi = 0, d do - for yi = 0, d do - for zi = 0, d do - leaves_buffer[leaves_a:index(xx+xi, yy+yi, zz+zi)] = true - end - end - end - end - - -- Add the leaves - for xi = leaves_a.MinEdge.x, leaves_a.MaxEdge.x do - for yi = leaves_a.MinEdge.y, leaves_a.MaxEdge.y do - for zi = leaves_a.MinEdge.z, leaves_a.MaxEdge.z do - if a:contains(x+xi, y+yi, z+zi) then - local vi = a:index(x+xi, y+yi, z+zi) - if data[vi] == c_air or data[vi] == c_ignore then - if leaves_buffer[leaves_a:index(xi, yi, zi)] then - if is_apple_tree and pr:next(1, 100) <= 10 then - data[vi] = c_apple - else - data[vi] = c_leaves - end - end - end - end - end - end - end -end - -minetest.register_abm({ - nodenames = {"default:sapling"}, - interval = 10, - chance = 50, - action = function(pos, node) - local is_soil = minetest.registered_nodes[minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name].groups.soil - if is_soil == nil or is_soil == 0 then return end - print("A sapling grows into a tree at "..minetest.pos_to_string(pos)) - local vm = minetest.get_voxel_manip() - local minp, maxp = vm:read_from_map({x=pos.x-16, y=pos.y, z=pos.z-16}, {x=pos.x+16, y=pos.y+16, z=pos.z+16}) - local a = VoxelArea:new{MinEdge=minp, MaxEdge=maxp} - local data = vm:get_data() - default.grow_tree(data, a, pos, math.random(1, 4) == 1, math.random(1,100000)) - vm:set_data(data) - vm:write_to_map(data) - vm:update_map() - end -}) - -minetest.register_abm({ - nodenames = {"default:dirt"}, - interval = 2, - chance = 200, - action = function(pos, node) - local above = {x=pos.x, y=pos.y+1, z=pos.z} - local name = minetest.get_node(above).name - local nodedef = minetest.registered_nodes[name] - if nodedef and (nodedef.sunlight_propagates or nodedef.paramtype == "light") - and nodedef.liquidtype == "none" - and (minetest.get_node_light(above) or 0) >= 13 then - if name == "default:snow" or name == "default:snowblock" then - minetest.set_node(pos, {name = "default:dirt_with_snow"}) - else - minetest.set_node(pos, {name = "default:dirt_with_grass"}) - end - end - end -}) - -minetest.register_abm({ - nodenames = {"default:dirt_with_grass"}, - interval = 2, - chance = 20, - action = function(pos, node) - local above = {x=pos.x, y=pos.y+1, z=pos.z} - local name = minetest.get_node(above).name - local nodedef = minetest.registered_nodes[name] - if name ~= "ignore" and nodedef - and not ((nodedef.sunlight_propagates or nodedef.paramtype == "light") - and nodedef.liquidtype == "none") then - minetest.set_node(pos, {name = "default:dirt"}) - end - end -}) - --- --- Crafting items --- - -minetest.register_craftitem("default:stick", { - description = "Stick", - inventory_image = "default_stick.png", -}) - -minetest.register_craftitem("default:paper", { - description = "Paper", - inventory_image = "default_paper.png", -}) - -minetest.register_craftitem("default:book", { - description = "Book", - inventory_image = "default_book.png", -}) - -minetest.register_craftitem("default:coal_lump", { - description = "Lump of coal", - inventory_image = "default_coal_lump.png", -}) - -minetest.register_craftitem("default:iron_lump", { - description = "Lump of iron", - inventory_image = "default_iron_lump.png", -}) - -minetest.register_craftitem("default:clay_lump", { - description = "Lump of clay", - inventory_image = "default_clay_lump.png", -}) - -minetest.register_craftitem("default:steel_ingot", { - description = "Steel ingot", - inventory_image = "default_steel_ingot.png", -}) - -minetest.register_craftitem("default:clay_brick", { - description = "Clay brick", - inventory_image = "default_steel_ingot.png", - inventory_image = "default_clay_brick.png", -}) - -minetest.register_craftitem("default:scorched_stuff", { - description = "Scorched stuff", - inventory_image = "default_scorched_stuff.png", -}) - --- --- Aliases for the current map generator outputs --- - -minetest.register_alias("mapgen_air", "air") -minetest.register_alias("mapgen_stone", "default:stone") -minetest.register_alias("mapgen_tree", "default:tree") -minetest.register_alias("mapgen_leaves", "default:leaves") -minetest.register_alias("mapgen_apple", "default:apple") -minetest.register_alias("mapgen_water_source", "default:water_source") -minetest.register_alias("mapgen_dirt", "default:dirt") -minetest.register_alias("mapgen_sand", "default:sand") -minetest.register_alias("mapgen_gravel", "default:gravel") -minetest.register_alias("mapgen_clay", "default:clay") -minetest.register_alias("mapgen_lava_source", "default:lava_source") -minetest.register_alias("mapgen_cobble", "default:cobble") -minetest.register_alias("mapgen_mossycobble", "default:mossycobble") -minetest.register_alias("mapgen_dirt_with_grass", "default:dirt_with_grass") -minetest.register_alias("mapgen_junglegrass", "default:junglegrass") -minetest.register_alias("mapgen_stone_with_coal", "default:stone_with_coal") -minetest.register_alias("mapgen_stone_with_iron", "default:stone_with_iron") -minetest.register_alias("mapgen_mese", "default:mese") - --- Support old code -function default.spawn_falling_node(p, nodename) - spawn_falling_node(p, nodename) -end - --- Horrible crap to support old code --- Don't use this and never do what this does, it's completely wrong! --- (More specifically, the client and the C++ code doesn't get the group) -function default.register_falling_node(nodename, texture) - minetest.log("error", debug.traceback()) - minetest.log('error', "WARNING: default.register_falling_node is deprecated") - if minetest.registered_nodes[nodename] then - minetest.registered_nodes[nodename].groups.falling_node = 1 - end -end - --- --- Global callbacks --- - --- Global environment step function -function on_step(dtime) - -- print("on_step") -end -minetest.register_globalstep(on_step) - -function on_placenode(p, node) - --print("on_placenode") -end -minetest.register_on_placenode(on_placenode) - -function on_dignode(p, node) - --print("on_dignode") -end -minetest.register_on_dignode(on_dignode) - -function on_punchnode(p, node) -end -minetest.register_on_punchnode(on_punchnode) - --- --- Test some things --- - -local function test_get_craft_result() - minetest.log("info", "test_get_craft_result()") - -- normal - local input = { - method = "normal", - width = 2, - items = {"", "default:coal_lump", "", "default:stick"} - } - minetest.log("info", "torch crafting input: "..dump(input)) - local output, decremented_input = minetest.get_craft_result(input) - minetest.log("info", "torch crafting output: "..dump(output)) - minetest.log("info", "torch crafting decremented input: "..dump(decremented_input)) - assert(output.item) - minetest.log("info", "torch crafting output.item:to_table(): "..dump(output.item:to_table())) - assert(output.item:get_name() == "default:torch") - assert(output.item:get_count() == 4) - -- fuel - local input = { - method = "fuel", - width = 1, - items = {"default:coal_lump"} - } - minetest.log("info", "coal fuel input: "..dump(input)) - local output, decremented_input = minetest.get_craft_result(input) - minetest.log("info", "coal fuel output: "..dump(output)) - minetest.log("info", "coal fuel decremented input: "..dump(decremented_input)) - assert(output.time) - assert(output.time > 0) - -- cook - local input = { - method = "cooking", - width = 1, - items = {"default:cobble"} - } - minetest.log("info", "cobble cooking input: "..dump(output)) - local output, decremented_input = minetest.get_craft_result(input) - minetest.log("info", "cobble cooking output: "..dump(output)) - minetest.log("info", "cobble cooking decremented input: "..dump(decremented_input)) - assert(output.time) - assert(output.time > 0) - assert(output.item) - minetest.log("info", "cobble cooking output.item:to_table(): "..dump(output.item:to_table())) - assert(output.item:get_name() == "default:stone") - assert(output.item:get_count() == 1) -end -test_get_craft_result() - --- --- Done, print some random stuff --- - ---print("minetest.registered_entities:") ---dump2(minetest.registered_entities) - --- END diff --git a/games/minimal/mods/default/mapgen.lua b/games/minimal/mods/default/mapgen.lua deleted file mode 100644 index 8ff259c..0000000 --- a/games/minimal/mods/default/mapgen.lua +++ /dev/null @@ -1,136 +0,0 @@ --- minetest/default/mapgen.lua - --- --- Aliases for map generator outputs --- - -minetest.register_alias("mapgen_stone", "default:stone") -minetest.register_alias("mapgen_tree", "default:tree") -minetest.register_alias("mapgen_leaves", "default:leaves") -minetest.register_alias("mapgen_apple", "default:apple") -minetest.register_alias("mapgen_water_source", "default:water_source") -minetest.register_alias("mapgen_dirt", "default:dirt") -minetest.register_alias("mapgen_sand", "default:sand") -minetest.register_alias("mapgen_gravel", "default:gravel") -minetest.register_alias("mapgen_clay", "default:clay") -minetest.register_alias("mapgen_lava_source", "default:lava_source") -minetest.register_alias("mapgen_cobble", "default:cobble") -minetest.register_alias("mapgen_mossycobble", "default:mossycobble") -minetest.register_alias("mapgen_dirt_with_grass", "default:dirt_with_grass") -minetest.register_alias("mapgen_junglegrass", "default:junglegrass") -minetest.register_alias("mapgen_stone_with_coal", "default:stone_with_coal") -minetest.register_alias("mapgen_stone_with_iron", "default:stone_with_iron") -minetest.register_alias("mapgen_mese", "default:mese") -minetest.register_alias("mapgen_stair_cobble", "stairs:stair_cobble") - --- --- Ore generation --- - -minetest.register_ore({ - ore_type = "scatter", - ore = "default:stone_with_coal", - wherein = "default:stone", - clust_scarcity = 8*8*8, - clust_num_ores = 5, - clust_size = 3, - height_min = -31000, - height_max = 64, -}) - -minetest.register_ore({ - ore_type = "scatter", - ore = "default:stone_with_iron", - wherein = "default:stone", - clust_scarcity = 16*16*16, - clust_num_ores = 5, - clust_size = 3, - height_min = -5, - height_max = 7, -}) - -minetest.register_ore({ - ore_type = "scatter", - ore = "default:stone_with_iron", - wherein = "default:stone", - clust_scarcity = 12*12*12, - clust_num_ores = 5, - clust_size = 3, - height_min = -16, - height_max = -5, -}) - -minetest.register_ore({ - ore_type = "scatter", - ore = "default:stone_with_iron", - wherein = "default:stone", - clust_scarcity = 9*9*9, - clust_num_ores = 5, - clust_size = 3, - height_min = -31000, - height_max = -17, -}) - --- for float islands and far scaled -minetest.register_ore({ - ore_type = "scatter", - ore = "default:stone_with_coal", - wherein = "default:stone", - clust_scarcity = 8*8*8, - clust_num_ores = 5, - clust_size = 3, - height_min = 200, - height_max = 31000, -}) - -minetest.register_ore({ - ore_type = "scatter", - ore = "default:stone_with_iron", - wherein = "default:stone", - clust_scarcity = 9*9*9, - clust_num_ores = 5, - clust_size = 3, - height_min = 200, - height_max = 31000, -}) - -minetest.register_on_generated(function(minp, maxp, seed) - -- Generate clay - if maxp.y >= 2 and minp.y <= 0 then - -- Assume X and Z lengths are equal - local divlen = 4 - local divs = (maxp.x-minp.x)/divlen+1; - for divx=0+1,divs-1-1 do - for divz=0+1,divs-1-1 do - local cx = minp.x + math.floor((divx+0.5)*divlen) - local cz = minp.z + math.floor((divz+0.5)*divlen) - if minetest.get_node({x=cx,y=1,z=cz}).name == "default:water_source" and - minetest.get_node({x=cx,y=0,z=cz}).name == "default:sand" then - local is_shallow = true - local num_water_around = 0 - if minetest.get_node({x=cx-divlen*2,y=1,z=cz+0}).name == "default:water_source" then - num_water_around = num_water_around + 1 end - if minetest.get_node({x=cx+divlen*2,y=1,z=cz+0}).name == "default:water_source" then - num_water_around = num_water_around + 1 end - if minetest.get_node({x=cx+0,y=1,z=cz-divlen*2}).name == "default:water_source" then - num_water_around = num_water_around + 1 end - if minetest.get_node({x=cx+0,y=1,z=cz+divlen*2}).name == "default:water_source" then - num_water_around = num_water_around + 1 end - if num_water_around >= 2 then - is_shallow = false - end - if is_shallow then - for x1=-divlen,divlen do - for z1=-divlen,divlen do - if minetest.get_node({x=cx+x1,y=0,z=cz+z1}).name == "default:sand" then - minetest.set_node({x=cx+x1,y=0,z=cz+z1}, {name="default:clay"}) - end - end - end - end - end - end - end - end -end) - diff --git a/games/minimal/mods/default/sounds/default_grass_footstep.1.ogg b/games/minimal/mods/default/sounds/default_grass_footstep.1.ogg deleted file mode 100644 index ce625d9..0000000 Binary files a/games/minimal/mods/default/sounds/default_grass_footstep.1.ogg and /dev/null differ diff --git a/games/minimal/mods/default/textures/bubble.png b/games/minimal/mods/default/textures/bubble.png deleted file mode 100644 index 3bca7e1..0000000 Binary files a/games/minimal/mods/default/textures/bubble.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/crack_anylength.png b/games/minimal/mods/default/textures/crack_anylength.png deleted file mode 100644 index d9b49f9..0000000 Binary files a/games/minimal/mods/default/textures/crack_anylength.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_apple.png b/games/minimal/mods/default/textures/default_apple.png deleted file mode 100644 index 4473dca..0000000 Binary files a/games/minimal/mods/default/textures/default_apple.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_book.png b/games/minimal/mods/default/textures/default_book.png deleted file mode 100644 index ea14a37..0000000 Binary files a/games/minimal/mods/default/textures/default_book.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_bookshelf.png b/games/minimal/mods/default/textures/default_bookshelf.png deleted file mode 100644 index f225e34..0000000 Binary files a/games/minimal/mods/default/textures/default_bookshelf.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_brick.png b/games/minimal/mods/default/textures/default_brick.png deleted file mode 100644 index def1cf0..0000000 Binary files a/games/minimal/mods/default/textures/default_brick.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_cactus_side.png b/games/minimal/mods/default/textures/default_cactus_side.png deleted file mode 100644 index 128a4d2..0000000 Binary files a/games/minimal/mods/default/textures/default_cactus_side.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_cactus_top.png b/games/minimal/mods/default/textures/default_cactus_top.png deleted file mode 100644 index eda1a0b..0000000 Binary files a/games/minimal/mods/default/textures/default_cactus_top.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_chest_front.png b/games/minimal/mods/default/textures/default_chest_front.png deleted file mode 100644 index 55b076c..0000000 Binary files a/games/minimal/mods/default/textures/default_chest_front.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_chest_lock.png b/games/minimal/mods/default/textures/default_chest_lock.png deleted file mode 100644 index 4b2d1af..0000000 Binary files a/games/minimal/mods/default/textures/default_chest_lock.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_chest_side.png b/games/minimal/mods/default/textures/default_chest_side.png deleted file mode 100644 index ae4847c..0000000 Binary files a/games/minimal/mods/default/textures/default_chest_side.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_chest_top.png b/games/minimal/mods/default/textures/default_chest_top.png deleted file mode 100644 index ac41551..0000000 Binary files a/games/minimal/mods/default/textures/default_chest_top.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_clay_brick.png b/games/minimal/mods/default/textures/default_clay_brick.png deleted file mode 100644 index e25633b..0000000 Binary files a/games/minimal/mods/default/textures/default_clay_brick.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_clay_lump.png b/games/minimal/mods/default/textures/default_clay_lump.png deleted file mode 100644 index ceed6fa..0000000 Binary files a/games/minimal/mods/default/textures/default_clay_lump.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_coal_lump.png b/games/minimal/mods/default/textures/default_coal_lump.png deleted file mode 100644 index dae47e3..0000000 Binary files a/games/minimal/mods/default/textures/default_coal_lump.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_cobble.png b/games/minimal/mods/default/textures/default_cobble.png deleted file mode 100644 index 2a28d25..0000000 Binary files a/games/minimal/mods/default/textures/default_cobble.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_dirt.png b/games/minimal/mods/default/textures/default_dirt.png deleted file mode 100644 index 7cb9c89..0000000 Binary files a/games/minimal/mods/default/textures/default_dirt.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_fence.png b/games/minimal/mods/default/textures/default_fence.png deleted file mode 100644 index e3510c5..0000000 Binary files a/games/minimal/mods/default/textures/default_fence.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_furnace_fire_bg.png b/games/minimal/mods/default/textures/default_furnace_fire_bg.png deleted file mode 100644 index e3370f4..0000000 Binary files a/games/minimal/mods/default/textures/default_furnace_fire_bg.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_furnace_front.png b/games/minimal/mods/default/textures/default_furnace_front.png deleted file mode 100644 index 4da398c..0000000 Binary files a/games/minimal/mods/default/textures/default_furnace_front.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_furnace_front_active.png b/games/minimal/mods/default/textures/default_furnace_front_active.png deleted file mode 100644 index 06c4ab3..0000000 Binary files a/games/minimal/mods/default/textures/default_furnace_front_active.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_furnace_side.png b/games/minimal/mods/default/textures/default_furnace_side.png deleted file mode 100644 index c729de9..0000000 Binary files a/games/minimal/mods/default/textures/default_furnace_side.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_glass.png b/games/minimal/mods/default/textures/default_glass.png deleted file mode 100644 index fd665a4..0000000 Binary files a/games/minimal/mods/default/textures/default_glass.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_grass.png b/games/minimal/mods/default/textures/default_grass.png deleted file mode 100644 index 1d76708..0000000 Binary files a/games/minimal/mods/default/textures/default_grass.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_grass_footsteps.png b/games/minimal/mods/default/textures/default_grass_footsteps.png deleted file mode 100644 index 8349033..0000000 Binary files a/games/minimal/mods/default/textures/default_grass_footsteps.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_grass_side.png b/games/minimal/mods/default/textures/default_grass_side.png deleted file mode 100644 index 4f4f680..0000000 Binary files a/games/minimal/mods/default/textures/default_grass_side.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_gravel.png b/games/minimal/mods/default/textures/default_gravel.png deleted file mode 100644 index 4b47e23..0000000 Binary files a/games/minimal/mods/default/textures/default_gravel.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_iron_lump.png b/games/minimal/mods/default/textures/default_iron_lump.png deleted file mode 100644 index 6b515f6..0000000 Binary files a/games/minimal/mods/default/textures/default_iron_lump.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_junglegrass.png b/games/minimal/mods/default/textures/default_junglegrass.png deleted file mode 100644 index 7066f7d..0000000 Binary files a/games/minimal/mods/default/textures/default_junglegrass.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_jungletree.png b/games/minimal/mods/default/textures/default_jungletree.png deleted file mode 100644 index a1fd36a..0000000 Binary files a/games/minimal/mods/default/textures/default_jungletree.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_jungletree_top.png b/games/minimal/mods/default/textures/default_jungletree_top.png deleted file mode 100644 index a13fdae..0000000 Binary files a/games/minimal/mods/default/textures/default_jungletree_top.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_ladder.png b/games/minimal/mods/default/textures/default_ladder.png deleted file mode 100644 index 46757b8..0000000 Binary files a/games/minimal/mods/default/textures/default_ladder.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_lava.png b/games/minimal/mods/default/textures/default_lava.png deleted file mode 100644 index a4cf649..0000000 Binary files a/games/minimal/mods/default/textures/default_lava.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_lava_flowing_animated.png b/games/minimal/mods/default/textures/default_lava_flowing_animated.png deleted file mode 100644 index 0bbd136..0000000 Binary files a/games/minimal/mods/default/textures/default_lava_flowing_animated.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_lava_source_animated.png b/games/minimal/mods/default/textures/default_lava_source_animated.png deleted file mode 100644 index aa9d57c..0000000 Binary files a/games/minimal/mods/default/textures/default_lava_source_animated.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_leaves.png b/games/minimal/mods/default/textures/default_leaves.png deleted file mode 100644 index 00ce447..0000000 Binary files a/games/minimal/mods/default/textures/default_leaves.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_mese.png b/games/minimal/mods/default/textures/default_mese.png deleted file mode 100644 index 123f0f4..0000000 Binary files a/games/minimal/mods/default/textures/default_mese.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_mineral_coal.png b/games/minimal/mods/default/textures/default_mineral_coal.png deleted file mode 100644 index 0f52062..0000000 Binary files a/games/minimal/mods/default/textures/default_mineral_coal.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_mossycobble.png b/games/minimal/mods/default/textures/default_mossycobble.png deleted file mode 100644 index 5082953..0000000 Binary files a/games/minimal/mods/default/textures/default_mossycobble.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_nc_side.png b/games/minimal/mods/default/textures/default_nc_side.png deleted file mode 100644 index bc85427..0000000 Binary files a/games/minimal/mods/default/textures/default_nc_side.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_paper.png b/games/minimal/mods/default/textures/default_paper.png deleted file mode 100644 index 3c31f77..0000000 Binary files a/games/minimal/mods/default/textures/default_paper.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_papyrus.png b/games/minimal/mods/default/textures/default_papyrus.png deleted file mode 100644 index 3707e40..0000000 Binary files a/games/minimal/mods/default/textures/default_papyrus.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_rail.png b/games/minimal/mods/default/textures/default_rail.png deleted file mode 100644 index 777e10c..0000000 Binary files a/games/minimal/mods/default/textures/default_rail.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_rail_crossing.png b/games/minimal/mods/default/textures/default_rail_crossing.png deleted file mode 100644 index a988c47..0000000 Binary files a/games/minimal/mods/default/textures/default_rail_crossing.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_rail_curved.png b/games/minimal/mods/default/textures/default_rail_curved.png deleted file mode 100644 index f87e826..0000000 Binary files a/games/minimal/mods/default/textures/default_rail_curved.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_sand.png b/games/minimal/mods/default/textures/default_sand.png deleted file mode 100644 index 1a56cc7..0000000 Binary files a/games/minimal/mods/default/textures/default_sand.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_sandstone.png b/games/minimal/mods/default/textures/default_sandstone.png deleted file mode 100644 index bd9cb86..0000000 Binary files a/games/minimal/mods/default/textures/default_sandstone.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_sapling.png b/games/minimal/mods/default/textures/default_sapling.png deleted file mode 100644 index 9360232..0000000 Binary files a/games/minimal/mods/default/textures/default_sapling.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_scorched_stuff.png b/games/minimal/mods/default/textures/default_scorched_stuff.png deleted file mode 100644 index c7efc7e..0000000 Binary files a/games/minimal/mods/default/textures/default_scorched_stuff.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_sign_wall.png b/games/minimal/mods/default/textures/default_sign_wall.png deleted file mode 100644 index 93c075a..0000000 Binary files a/games/minimal/mods/default/textures/default_sign_wall.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_steel_block.png b/games/minimal/mods/default/textures/default_steel_block.png deleted file mode 100644 index 9c0a0e2..0000000 Binary files a/games/minimal/mods/default/textures/default_steel_block.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_steel_ingot.png b/games/minimal/mods/default/textures/default_steel_ingot.png deleted file mode 100644 index ad133bc..0000000 Binary files a/games/minimal/mods/default/textures/default_steel_ingot.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_stick.png b/games/minimal/mods/default/textures/default_stick.png deleted file mode 100644 index 055a6ac..0000000 Binary files a/games/minimal/mods/default/textures/default_stick.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_stone.png b/games/minimal/mods/default/textures/default_stone.png deleted file mode 100644 index a835fe0..0000000 Binary files a/games/minimal/mods/default/textures/default_stone.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_tnt_side.png b/games/minimal/mods/default/textures/default_tnt_side.png deleted file mode 100644 index c259726..0000000 Binary files a/games/minimal/mods/default/textures/default_tnt_side.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_tool_mesepick.png b/games/minimal/mods/default/textures/default_tool_mesepick.png deleted file mode 100644 index 2b5e12c..0000000 Binary files a/games/minimal/mods/default/textures/default_tool_mesepick.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_tool_steelaxe.png b/games/minimal/mods/default/textures/default_tool_steelaxe.png deleted file mode 100644 index fae19dd..0000000 Binary files a/games/minimal/mods/default/textures/default_tool_steelaxe.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_tool_steelpick.png b/games/minimal/mods/default/textures/default_tool_steelpick.png deleted file mode 100644 index 3a8f586..0000000 Binary files a/games/minimal/mods/default/textures/default_tool_steelpick.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_tool_steelshovel.png b/games/minimal/mods/default/textures/default_tool_steelshovel.png deleted file mode 100644 index d5b1bc6..0000000 Binary files a/games/minimal/mods/default/textures/default_tool_steelshovel.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_tool_steelsword.png b/games/minimal/mods/default/textures/default_tool_steelsword.png deleted file mode 100644 index efc61a0..0000000 Binary files a/games/minimal/mods/default/textures/default_tool_steelsword.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_tool_stoneaxe.png b/games/minimal/mods/default/textures/default_tool_stoneaxe.png deleted file mode 100644 index 532e16f..0000000 Binary files a/games/minimal/mods/default/textures/default_tool_stoneaxe.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_tool_stonepick.png b/games/minimal/mods/default/textures/default_tool_stonepick.png deleted file mode 100644 index d9156ee..0000000 Binary files a/games/minimal/mods/default/textures/default_tool_stonepick.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_tool_stoneshovel.png b/games/minimal/mods/default/textures/default_tool_stoneshovel.png deleted file mode 100644 index 7bbd2d4..0000000 Binary files a/games/minimal/mods/default/textures/default_tool_stoneshovel.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_tool_stonesword.png b/games/minimal/mods/default/textures/default_tool_stonesword.png deleted file mode 100644 index 533b873..0000000 Binary files a/games/minimal/mods/default/textures/default_tool_stonesword.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_tool_woodaxe.png b/games/minimal/mods/default/textures/default_tool_woodaxe.png deleted file mode 100644 index 6e70f4a..0000000 Binary files a/games/minimal/mods/default/textures/default_tool_woodaxe.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_tool_woodpick.png b/games/minimal/mods/default/textures/default_tool_woodpick.png deleted file mode 100644 index 15c61f4..0000000 Binary files a/games/minimal/mods/default/textures/default_tool_woodpick.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_tool_woodshovel.png b/games/minimal/mods/default/textures/default_tool_woodshovel.png deleted file mode 100644 index e0b3608..0000000 Binary files a/games/minimal/mods/default/textures/default_tool_woodshovel.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_tool_woodsword.png b/games/minimal/mods/default/textures/default_tool_woodsword.png deleted file mode 100644 index 8099af1..0000000 Binary files a/games/minimal/mods/default/textures/default_tool_woodsword.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_torch.png b/games/minimal/mods/default/textures/default_torch.png deleted file mode 100644 index 21d98bd..0000000 Binary files a/games/minimal/mods/default/textures/default_torch.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_torch_on_ceiling.png b/games/minimal/mods/default/textures/default_torch_on_ceiling.png deleted file mode 100644 index dccd380..0000000 Binary files a/games/minimal/mods/default/textures/default_torch_on_ceiling.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_torch_on_floor.png b/games/minimal/mods/default/textures/default_torch_on_floor.png deleted file mode 100644 index c220107..0000000 Binary files a/games/minimal/mods/default/textures/default_torch_on_floor.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_tree.png b/games/minimal/mods/default/textures/default_tree.png deleted file mode 100644 index 65abfc2..0000000 Binary files a/games/minimal/mods/default/textures/default_tree.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_tree_top.png b/games/minimal/mods/default/textures/default_tree_top.png deleted file mode 100644 index 3e6bd52..0000000 Binary files a/games/minimal/mods/default/textures/default_tree_top.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_water.png b/games/minimal/mods/default/textures/default_water.png deleted file mode 100644 index 3e385ae..0000000 Binary files a/games/minimal/mods/default/textures/default_water.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/default_wood.png b/games/minimal/mods/default/textures/default_wood.png deleted file mode 100644 index 57c1d7c..0000000 Binary files a/games/minimal/mods/default/textures/default_wood.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/heart.png b/games/minimal/mods/default/textures/heart.png deleted file mode 100644 index c25f43b..0000000 Binary files a/games/minimal/mods/default/textures/heart.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/player.png b/games/minimal/mods/default/textures/player.png deleted file mode 100644 index cf5d83f..0000000 Binary files a/games/minimal/mods/default/textures/player.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/player_back.png b/games/minimal/mods/default/textures/player_back.png deleted file mode 100644 index d498674..0000000 Binary files a/games/minimal/mods/default/textures/player_back.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/treeprop.png b/games/minimal/mods/default/textures/treeprop.png deleted file mode 100644 index eb8a8e6..0000000 Binary files a/games/minimal/mods/default/textures/treeprop.png and /dev/null differ diff --git a/games/minimal/mods/default/textures/wieldhand.png b/games/minimal/mods/default/textures/wieldhand.png deleted file mode 100644 index dbed6ad..0000000 Binary files a/games/minimal/mods/default/textures/wieldhand.png and /dev/null differ diff --git a/games/minimal/mods/errorhandler_test/init.lua b/games/minimal/mods/errorhandler_test/init.lua deleted file mode 100644 index 9d1535c..0000000 --- a/games/minimal/mods/errorhandler_test/init.lua +++ /dev/null @@ -1,106 +0,0 @@ --- --- exception handler test module --- --- --- To avoid this from crashing the module will startup in inactive mode. --- to make specific errors happen you need to cause them by following --- chat command: --- --- exceptiontest --- --- location has to be one of: --- * mapgen: cause in next on_generate call --- * entity_step: spawn a entity and make it do error in on_step --- * globalstep: do error in next globalstep --- * immediate: cause right in chat handler --- --- errortypes defined are: --- * segv: make sigsegv happen --- * zerodivision: cause a division by zero to happen --- * exception: throw an exception - -if core.cause_error == nil or - type(core.cause_error) ~= "function" then - return -end - - -core.log("action", "WARNING: loading exception handler test module!") - -local exceptiondata = { - tocause = "none", - mapgen = false, - entity_step = false, - globalstep = false, -} - -local exception_entity = -{ - on_step = function(self, dtime) - if exceptiondata.entity_step then - core.cause_error(exceptiondata.tocause) - end - end, -} -local exception_entity_name = "errorhandler_test:error_entity" - -local function exception_chat_handler(playername, param) - local parameters = param:split(" ") - - if #parameters ~= 2 then - core.chat_send_player(playername, "Invalid argument count for exceptiontest") - end - - core.log("error", "Causing error at:" .. parameters[1]) - - if parameters[1] == "mapgen" then - exceptiondata.tocause = parameters[2] - exceptiondata.mapgen = true - elseif parameters[1] == "entity_step" then - --spawn entity at player location - local player = core.get_player_by_name(playername) - - if player:is_player() then - local pos = player:getpos() - - core.add_entity(pos, exception_entity_name) - end - - exceptiondata.tocause = parameters[2] - exceptiondata.entity_step = true - - elseif parameters[1] == "globalstep" then - exceptiondata.tocause = parameters[2] - exceptiondata.globalstep = true - - elseif parameters[1] == "immediate" then - core.cause_error(parameters[2]) - - else - core.chat_send_player(playername, "Invalid error location: " .. dump(parameters[1])) - end -end - -core.register_chatcommand("exceptiontest", - { - params = " ", - description = "cause a given error to happen.\n" .. - " location=(mapgen,entity_step,globalstep,immediate)\n" .. - " errortype=(segv,zerodivision,exception)", - func = exception_chat_handler, - privs = { server=true } - }) - -core.register_globalstep(function(dtime) - if exceptiondata.globalstep then - core.cause_error(exceptiondata.tocause) - end -end) - -core.register_on_generated(function(minp, maxp, blockseed) - if exceptiondata.mapgen then - core.cause_error(exceptiondata.tocause) - end -end) - -core.register_entity(exception_entity_name, exception_entity) diff --git a/games/minimal/mods/experimental/init.lua b/games/minimal/mods/experimental/init.lua deleted file mode 100644 index 729191b..0000000 --- a/games/minimal/mods/experimental/init.lua +++ /dev/null @@ -1,601 +0,0 @@ --- --- Experimental things --- - --- For testing random stuff - -experimental = {} - -function experimental.print_to_everything(msg) - minetest.log("action", msg) - minetest.chat_send_all(msg) -end - ---[[ -experimental.player_visual_index = 0 -function switch_player_visual() - for _, obj in pairs(minetest.get_connected_players()) do - if experimental.player_visual_index == 0 then - obj:set_properties({visual="upright_sprite"}) - else - obj:set_properties({visual="cube"}) - end - end - experimental.player_visual_index = (experimental.player_visual_index + 1) % 2 - minetest.after(1.0, switch_player_visual) -end -minetest.after(1.0, switch_player_visual) -]] - -minetest.register_node("experimental:soundblock", { - tile_images = {"unknown_node.png", "default_tnt_bottom.png", - "default_tnt_side.png", "default_tnt_side.png", - "default_tnt_side.png", "default_tnt_side.png"}, - inventory_image = minetest.inventorycube("unknown_node.png", - "default_tnt_side.png", "default_tnt_side.png"), - groups = {dig_immediate=3}, -}) - -minetest.register_alias("sb", "experimental:soundblock") - -minetest.register_abm({ - nodenames = {"experimental:soundblock"}, - interval = 1, - chance = 1, - action = function(p0, node, _, _) - minetest.sound_play("default_grass_footstep", {pos=p0, gain=0.5}) - end, -}) - ---[[ -stepsound = -1 -function test_sound() - print("test_sound") - stepsound = minetest.sound_play("default_grass_footstep", {gain=1.0}) - minetest.after(2.0, test_sound) - --minetest.after(0.1, test_sound_stop) -end -function test_sound_stop() - print("test_sound_stop") - minetest.sound_stop(stepsound) - minetest.after(2.0, test_sound) -end -test_sound() ---]] - -function on_step(dtime) - -- print("experimental on_step") - --[[ - objs = minetest.get_objects_inside_radius({x=0,y=0,z=0}, 10) - for k, obj in pairs(objs) do - name = obj:get_player_name() - if name then - print(name.." at "..dump(obj:getpos())) - print(name.." dir: "..dump(obj:get_look_dir())) - print(name.." pitch: "..dump(obj:get_look_pitch())) - print(name.." yaw: "..dump(obj:get_look_yaw())) - else - print("Some object at "..dump(obj:getpos())) - end - end - --]] - --[[ - if experimental.t1 == nil then - experimental.t1 = 0 - end - experimental.t1 = experimental.t1 + dtime - if experimental.t1 >= 2 then - experimental.t1 = experimental.t1 - 2 - minetest.log("time of day is "..minetest.get_timeofday()) - if experimental.day then - minetest.log("forcing day->night") - experimental.day = false - minetest.set_timeofday(0.0) - else - minetest.log("forcing night->day") - experimental.day = true - minetest.set_timeofday(0.5) - end - minetest.log("time of day is "..minetest.get_timeofday()) - end - --]] -end -minetest.register_globalstep(on_step) - --- --- Random stuff --- - --- --- TNT (not functional) --- - -minetest.register_craft({ - output = 'experimental:tnt', - recipe = { - {'default:wood'}, - {'default:coal_lump'}, - {'default:wood'} - } -}) - -minetest.register_node("experimental:tnt", { - tile_images = {"default_tnt_top.png", "default_tnt_bottom.png", - "default_tnt_side.png", "default_tnt_side.png", - "default_tnt_side.png", "default_tnt_side.png"}, - inventory_image = minetest.inventorycube("default_tnt_top.png", - "default_tnt_side.png", "default_tnt_side.png"), - drop = '', -- Get nothing - material = { - diggability = "not", - }, -}) - -minetest.register_on_punchnode(function(p, node) - if node.name == "experimental:tnt" then - minetest.remove_node(p) - minetest.add_entity(p, "experimental:tnt") - nodeupdate(p) - end -end) - -local TNT = { - -- Static definition - physical = true, -- Collides with things - -- weight = 5, - collisionbox = {-0.5,-0.5,-0.5, 0.5,0.5,0.5}, - visual = "cube", - textures = {"default_tnt_top.png", "default_tnt_bottom.png", - "default_tnt_side.png", "default_tnt_side.png", - "default_tnt_side.png", "default_tnt_side.png"}, - -- Initial value for our timer - timer = 0, - -- Number of punches required to defuse - health = 1, - blinktimer = 0, - blinkstatus = true, -} - --- Called when a TNT object is created -function TNT:on_activate(staticdata) - print("TNT:on_activate()") - self.object:setvelocity({x=0, y=4, z=0}) - self.object:setacceleration({x=0, y=-10, z=0}) - self.object:settexturemod("^[brighten") - self.object:set_armor_groups({immortal=1}) -end - --- Called periodically -function TNT:on_step(dtime) - --print("TNT:on_step()") - self.timer = self.timer + dtime - self.blinktimer = self.blinktimer + dtime - if self.blinktimer > 0.5 then - self.blinktimer = self.blinktimer - 0.5 - if self.blinkstatus then - self.object:settexturemod("") - else - self.object:settexturemod("^[brighten") - end - self.blinkstatus = not self.blinkstatus - end -end - --- Called when object is punched -function TNT:on_punch(hitter) - print("TNT:on_punch()") - self.health = self.health - 1 - if self.health <= 0 then - self.object:remove() - hitter:get_inventory():add_item("main", "experimental:tnt") - --hitter:set_hp(hitter:get_hp() - 1) - end -end - --- Called when object is right-clicked -function TNT:on_rightclick(clicker) - --pos = self.object:getpos() - --pos = {x=pos.x, y=pos.y+0.1, z=pos.z} - --self.object:moveto(pos, false) -end - ---print("TNT dump: "..dump(TNT)) ---print("Registering TNT"); -minetest.register_entity("experimental:tnt", TNT) - --- Add TNT's old name also -minetest.register_alias("TNT", "experimental:tnt") - --- --- The dummyball! --- - -minetest.register_entity("experimental:dummyball", { - initial_properties = { - hp_max = 20, - physical = false, - collisionbox = {-0.4,-0.4,-0.4, 0.4,0.4,0.4}, - visual = "sprite", - visual_size = {x=1, y=1}, - textures = {"experimental_dummyball.png"}, - spritediv = {x=1, y=3}, - initial_sprite_basepos = {x=0, y=0}, - }, - - phase = 0, - phasetimer = 0, - - on_activate = function(self, staticdata) - minetest.log("Dummyball activated!") - end, - - on_step = function(self, dtime) - self.phasetimer = self.phasetimer + dtime - if self.phasetimer > 2.0 then - self.phasetimer = self.phasetimer - 2.0 - self.phase = self.phase + 1 - if self.phase >= 3 then - self.phase = 0 - end - self.object:setsprite({x=0, y=self.phase}) - phasearmor = { - [0]={cracky=3}, - [1]={crumbly=3}, - [2]={fleshy=3} - } - self.object:set_armor_groups(phasearmor[self.phase]) - end - end, - - on_punch = function(self, hitter) - end, -}) - -minetest.register_on_chat_message(function(name, message) - local cmd = "/dummyball" - if message:sub(0, #cmd) == cmd then - count = tonumber(message:sub(#cmd+1)) or 1 - if not minetest.get_player_privs(name)["give"] then - minetest.chat_send_player(name, "you don't have permission to spawn (give)") - return true -- Handled chat message - end - if not minetest.get_player_privs(name)["interact"] then - minetest.chat_send_player(name, "you don't have permission to interact") - return true -- Handled chat message - end - if count >= 2 and not minetest.get_player_privs(name)["server"] then - minetest.chat_send_player(name, "you don't have " .. - "permission to spawn multiple " .. - "dummyballs (server)") - return true -- Handled chat message - end - local player = minetest.get_player_by_name(name) - if player == nil then - print("Unable to spawn entity, player is nil") - return true -- Handled chat message - end - local entityname = "experimental:dummyball" - local p = player:getpos() - p.y = p.y + 1 - for i = 1,count do - minetest.add_entity(p, entityname) - end - minetest.chat_send_player(name, '"'..entityname - ..'" spawned '..tostring(count)..' time(s).'); - return true -- Handled chat message - end -end) - --- --- A test entity for testing animated and yaw-modulated sprites --- - -minetest.register_entity("experimental:testentity", { - -- Static definition - physical = true, -- Collides with things - -- weight = 5, - collisionbox = {-0.7,-1.35,-0.7, 0.7,1.0,0.7}, - --collisionbox = {-0.5,-0.5,-0.5, 0.5,0.5,0.5}, - visual = "sprite", - visual_size = {x=2, y=3}, - textures = {"dungeon_master.png^[makealpha:128,0,0^[makealpha:128,128,0"}, - spritediv = {x=6, y=5}, - initial_sprite_basepos = {x=0, y=0}, - - on_activate = function(self, staticdata) - print("testentity.on_activate") - self.object:setsprite({x=0,y=0}, 1, 0, true) - --self.object:setsprite({x=0,y=0}, 4, 0.3, true) - - -- Set gravity - self.object:setacceleration({x=0, y=-10, z=0}) - -- Jump a bit upwards - self.object:setvelocity({x=0, y=10, z=0}) - end, - - on_punch = function(self, hitter) - self.object:remove() - hitter:add_to_inventory('craft testobject1 1') - end, -}) - --- --- More random stuff --- - -minetest.register_on_respawnplayer(function(player) - print("on_respawnplayer") - -- player:setpos({x=0, y=30, z=0}) - -- return true -end) - -minetest.register_on_generated(function(minp, maxp) - --print("on_generated: minp="..dump(minp).." maxp="..dump(maxp)) - --cp = {x=(minp.x+maxp.x)/2, y=(minp.y+maxp.y)/2, z=(minp.z+maxp.z)/2} - --minetest.add_node(cp, {name="sand"}) -end) - --- Example setting get ---print("setting max_users = " .. dump(minetest.setting_get("max_users"))) ---print("setting asdf = " .. dump(minetest.setting_get("asdf"))) - -minetest.register_on_chat_message(function(name, message) - --[[print("on_chat_message: name="..dump(name).." message="..dump(message)) - local cmd = "/testcommand" - if message:sub(0, #cmd) == cmd then - print(cmd.." invoked") - return true - end - local cmd = "/help" - if message:sub(0, #cmd) == cmd then - print("script-overridden help command") - minetest.chat_send_all("script-overridden help command") - return true - end]] -end) - --- Grow papyrus on TNT every 10 seconds ---[[minetest.register_abm({ - nodenames = {"TNT"}, - interval = 10.0, - chance = 1, - action = function(pos, node, active_object_count, active_object_count_wider) - print("TNT ABM action") - pos.y = pos.y + 1 - minetest.add_node(pos, {name="papyrus"}) - end, -})]] - --- Replace texts of alls signs with "foo" every 10 seconds ---[[minetest.register_abm({ - nodenames = {"sign_wall"}, - interval = 10.0, - chance = 1, - action = function(pos, node, active_object_count, active_object_count_wider) - print("ABM: Sign text changed") - local meta = minetest.get_meta(pos) - meta:set_text("foo") - end, -})]] - ---[[local ncpos = nil -local ncq = 1 -local ncstuff = { - {2, 1, 0, 3}, {3, 0, 1, 2}, {4, -1, 0, 1}, {5, -1, 0, 1}, {6, 0, -1, 0}, - {7, 0, -1, 0}, {8, 1, 0, 3}, {9, 1, 0, 3}, {10, 1, 0, 3}, {11, 0, 1, 2}, - {12, 0, 1, 2}, {13, 0, 1, 2}, {14, -1, 0, 1}, {15, -1, 0, 1}, {16, -1, 0, 1}, - {17, -1, 0, 1}, {18, 0, -1, 0}, {19, 0, -1, 0}, {20, 0, -1, 0}, {21, 0, -1, 0}, - {22, 1, 0, 3}, {23, 1, 0, 3}, {24, 1, 0, 3}, {25, 1, 0, 3}, {10, 0, 1, 2} -} -local ncold = {} -local nctime = nil - -minetest.register_abm({ - nodenames = {"dirt_with_grass"}, - interval = 100000.0, - chance = 1, - action = function(pos, node, active_object_count, active_object_count_wider) - if ncpos ~= nil then - return - end - - if pos.x % 16 ~= 8 or pos.z % 16 ~= 8 then - return - end - - pos.y = pos.y + 1 - n = minetest.get_node(pos) - print(dump(n)) - if n.name ~= "air" then - return - end - - pos.y = pos.y + 2 - ncpos = pos - nctime = os.clock() - minetest.add_node(ncpos, {name="nyancat"}) - end -}) - -minetest.register_abm({ - nodenames = {"nyancat"}, - interval = 1.0, - chance = 1, - action = function(pos, node, active_object_count, active_object_count_wider) - if ncpos == nil then - return - end - if pos.x == ncpos.x and pos.y == ncpos.y and pos.z == ncpos.z then - clock = os.clock() - if clock - nctime < 0.1 then - return - end - nctime = clock - - s0 = ncstuff[ncq] - ncq = s0[1] - s1 = ncstuff[ncq] - p0 = pos - p1 = {x = p0.x + s0[2], y = p0.y, z = p0.z + s0[3]} - p2 = {x = p1.x + s1[2], y = p1.y, z = p1.z + s1[3]} - table.insert(ncold, 1, p0) - while #ncold >= 10 do - minetest.add_node(ncold[#ncold], {name="air"}) - table.remove(ncold, #ncold) - end - minetest.add_node(p0, {name="nyancat_rainbow"}) - minetest.add_node(p1, {name="nyancat", param1=s0[4]}) - minetest.add_node(p2, {name="air"}) - ncpos = p1 - end - end, -})--]] - -minetest.register_node("experimental:tester_node_1", { - description = "Tester Node 1 (construct/destruct/timer)", - tile_images = {"wieldhand.png"}, - groups = {oddly_breakable_by_hand=2}, - sounds = default.node_sound_wood_defaults(), - -- This was known to cause a bug in minetest.item_place_node() when used - -- via minetest.place_node(), causing a placer with no position - paramtype2 = "facedir", - - on_construct = function(pos) - experimental.print_to_everything("experimental:tester_node_1:on_construct("..minetest.pos_to_string(pos)..")") - local meta = minetest.get_meta(pos) - meta:set_string("mine", "test") - local timer = minetest.get_node_timer(pos) - timer:start(4, 3) - end, - - after_place_node = function(pos, placer) - experimental.print_to_everything("experimental:tester_node_1:after_place_node("..minetest.pos_to_string(pos)..")") - local meta = minetest.get_meta(pos) - if meta:get_string("mine") == "test" then - experimental.print_to_everything("correct metadata found") - else - experimental.print_to_everything("incorrect metadata found") - end - end, - - on_destruct = function(pos) - experimental.print_to_everything("experimental:tester_node_1:on_destruct("..minetest.pos_to_string(pos)..")") - end, - - after_destruct = function(pos) - experimental.print_to_everything("experimental:tester_node_1:after_destruct("..minetest.pos_to_string(pos)..")") - end, - - after_dig_node = function(pos, oldnode, oldmetadata, digger) - experimental.print_to_everything("experimental:tester_node_1:after_dig_node("..minetest.pos_to_string(pos)..")") - end, - - on_timer = function(pos, elapsed) - experimental.print_to_everything("on_timer(): elapsed="..dump(elapsed)) - return true - end, -}) - -minetest.register_craftitem("experimental:tester_tool_1", { - description = "Tester Tool 1", - inventory_image = "experimental_tester_tool_1.png", - on_use = function(itemstack, user, pointed_thing) - --print(dump(pointed_thing)) - if pointed_thing.type == "node" then - if minetest.get_node(pointed_thing.under).name == "experimental:tester_node_1" then - local p = pointed_thing.under - minetest.log("action", "Tester tool used at "..minetest.pos_to_string(p)) - minetest.dig_node(p) - else - local p = pointed_thing.above - minetest.log("action", "Tester tool used at "..minetest.pos_to_string(p)) - minetest.place_node(p, {name="experimental:tester_node_1"}) - end - end - end, -}) - -minetest.register_craft({ - output = 'experimental:tester_tool_1', - recipe = { - {'group:crumbly'}, - {'group:crumbly'}, - } -}) - ---[[minetest.register_on_joinplayer(function(player) - minetest.after(3, function() - player:set_inventory_formspec("size[8,7.5]".. - "image[1,0.6;1,2;player.png]".. - "list[current_player;main;0,3.5;8,4;]".. - "list[current_player;craft;3,0;3,3;]".. - "list[current_player;craftpreview;7,1;1,1;]") - end) -end)]] - --- Create a detached inventory -local inv = minetest.create_detached_inventory("test_inventory", { - allow_move = function(inv, from_list, from_index, to_list, to_index, count, player) - experimental.print_to_everything("allow move asked") - return count -- Allow all - end, - allow_put = function(inv, listname, index, stack, player) - experimental.print_to_everything("allow put asked") - return 1 -- Allow only 1 - end, - allow_take = function(inv, listname, index, stack, player) - experimental.print_to_everything("allow take asked") - return 4 -- Allow 4 at max - end, - on_move = function(inv, from_list, from_index, to_list, to_index, count, player) - experimental.print_to_everything(player:get_player_name().." moved items") - end, - on_put = function(inv, listname, index, stack, player) - experimental.print_to_everything(player:get_player_name().." put items") - end, - on_take = function(inv, listname, index, stack, player) - experimental.print_to_everything(player:get_player_name().." took items") - end, -}) -inv:set_size("main", 4*6) -inv:add_item("main", "experimental:tester_tool_1") -inv:add_item("main", "experimental:tnt 5") - -minetest.register_chatcommand("test1", { - params = "", - description = "Test 1: Modify player's inventory view", - func = function(name, param) - local player = minetest.get_player_by_name(name) - if not player then - return - end - player:set_inventory_formspec( - "size[13,7.5]".. - "image[6,0.6;1,2;player.png]".. - "list[current_player;main;5,3.5;8,4;]".. - "list[current_player;craft;8,0;3,3;]".. - "list[current_player;craftpreview;12,1;1,1;]".. - "list[detached:test_inventory;main;0,0;4,6;0]".. - "button[0.5,7;2,1;button1;Button 1]".. - "button_exit[2.5,7;2,1;button2;Exit Button]" - ) - minetest.chat_send_player(name, "Done."); - end, -}) - -minetest.register_on_player_receive_fields(function(player, formname, fields) - experimental.print_to_everything("Inventory fields 1: player="..player:get_player_name()..", fields="..dump(fields)) -end) -minetest.register_on_player_receive_fields(function(player, formname, fields) - experimental.print_to_everything("Inventory fields 2: player="..player:get_player_name()..", fields="..dump(fields)) - return true -- Disable the first callback -end) -minetest.register_on_player_receive_fields(function(player, formname, fields) - experimental.print_to_everything("Inventory fields 3: player="..player:get_player_name()..", fields="..dump(fields)) -end) - -minetest.log("experimental modname="..dump(minetest.get_current_modname())) -minetest.log("experimental modpath="..dump(minetest.get_modpath("experimental"))) -minetest.log("experimental worldpath="..dump(minetest.get_worldpath())) - --- END diff --git a/games/minimal/mods/experimental/textures/experimental_dummyball.png b/games/minimal/mods/experimental/textures/experimental_dummyball.png deleted file mode 100644 index 256414f..0000000 Binary files a/games/minimal/mods/experimental/textures/experimental_dummyball.png and /dev/null differ diff --git a/games/minimal/mods/experimental/textures/experimental_tester_tool_1.png b/games/minimal/mods/experimental/textures/experimental_tester_tool_1.png deleted file mode 100644 index 587923c..0000000 Binary files a/games/minimal/mods/experimental/textures/experimental_tester_tool_1.png and /dev/null differ diff --git a/games/minimal/mods/give_initial_stuff/init.lua b/games/minimal/mods/give_initial_stuff/init.lua deleted file mode 100644 index 29b835c..0000000 --- a/games/minimal/mods/give_initial_stuff/init.lua +++ /dev/null @@ -1,16 +0,0 @@ -minetest.register_on_newplayer(function(player) - print("[minimal] giving initial stuff to player") - player:get_inventory():add_item('main', 'default:pick_stone') - player:get_inventory():add_item('main', 'default:torch 99') - player:get_inventory():add_item('main', 'default:cobble 99') - player:get_inventory():add_item('main', 'default:wood 99') - player:get_inventory():add_item('main', 'default:axe_steel') - player:get_inventory():add_item('main', 'default:shovel_steel') - player:get_inventory():add_item('main', 'default:pick_wood') - player:get_inventory():add_item('main', 'default:pick_steel') - player:get_inventory():add_item('main', 'default:pick_mese') - player:get_inventory():add_item('main', 'default:mese 99') - player:get_inventory():add_item('main', 'default:water_source 99') - player:get_inventory():add_item('main', 'experimental:tester_tool_1') -end) - diff --git a/games/minimal/mods/legacy/textures/apple_iron.png b/games/minimal/mods/legacy/textures/apple_iron.png deleted file mode 100644 index db59458..0000000 Binary files a/games/minimal/mods/legacy/textures/apple_iron.png and /dev/null differ diff --git a/games/minimal/mods/legacy/textures/cooked_rat.png b/games/minimal/mods/legacy/textures/cooked_rat.png deleted file mode 100644 index 776dc4e..0000000 Binary files a/games/minimal/mods/legacy/textures/cooked_rat.png and /dev/null differ diff --git a/games/minimal/mods/legacy/textures/dungeon_master.png b/games/minimal/mods/legacy/textures/dungeon_master.png deleted file mode 100644 index d52d8cc..0000000 Binary files a/games/minimal/mods/legacy/textures/dungeon_master.png and /dev/null differ diff --git a/games/minimal/mods/legacy/textures/fireball.png b/games/minimal/mods/legacy/textures/fireball.png deleted file mode 100644 index 124469c..0000000 Binary files a/games/minimal/mods/legacy/textures/fireball.png and /dev/null differ diff --git a/games/minimal/mods/legacy/textures/firefly.png b/games/minimal/mods/legacy/textures/firefly.png deleted file mode 100644 index ea95a6a..0000000 Binary files a/games/minimal/mods/legacy/textures/firefly.png and /dev/null differ diff --git a/games/minimal/mods/legacy/textures/oerkki1.png b/games/minimal/mods/legacy/textures/oerkki1.png deleted file mode 100644 index 061709c..0000000 Binary files a/games/minimal/mods/legacy/textures/oerkki1.png and /dev/null differ diff --git a/games/minimal/mods/legacy/textures/oerkki1_damaged.png b/games/minimal/mods/legacy/textures/oerkki1_damaged.png deleted file mode 100644 index b2a3033..0000000 Binary files a/games/minimal/mods/legacy/textures/oerkki1_damaged.png and /dev/null differ diff --git a/games/minimal/mods/legacy/textures/rat.png b/games/minimal/mods/legacy/textures/rat.png deleted file mode 100644 index 04cf9b8..0000000 Binary files a/games/minimal/mods/legacy/textures/rat.png and /dev/null differ diff --git a/games/minimal/mods/stairs/init.lua b/games/minimal/mods/stairs/init.lua deleted file mode 100644 index 4929d13..0000000 --- a/games/minimal/mods/stairs/init.lua +++ /dev/null @@ -1,93 +0,0 @@ -stairs = {} - --- Node will be called stairs:stair_ -function stairs.register_stair(subname, recipeitem, groups, images, description) - minetest.register_node("stairs:stair_" .. subname, { - description = description, - drawtype = "nodebox", - tile_images = images, - paramtype = "light", - paramtype2 = "facedir", - is_ground_content = true, - groups = groups, - node_box = { - type = "fixed", - fixed = { - {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, - {-0.5, 0, 0, 0.5, 0.5, 0.5}, - }, - }, - }) - - minetest.register_craft({ - output = 'stairs:stair_' .. subname .. ' 4', - recipe = { - {recipeitem, "", ""}, - {recipeitem, recipeitem, ""}, - {recipeitem, recipeitem, recipeitem}, - }, - }) -end - --- Node will be called stairs:slab_ -function stairs.register_slab(subname, recipeitem, groups, images, description) - minetest.register_node("stairs:slab_" .. subname, { - description = description, - drawtype = "nodebox", - tile_images = images, - paramtype = "light", - is_ground_content = true, - groups = groups, - 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}, - }, - }) - - minetest.register_craft({ - output = 'stairs:slab_' .. subname .. ' 3', - recipe = { - {recipeitem, recipeitem, recipeitem}, - }, - }) -end - --- Nodes will be called stairs:{stair,slab}_ -function stairs.register_stair_and_slab(subname, recipeitem, groups, images, desc_stair, desc_slab) - stairs.register_stair(subname, recipeitem, groups, images, desc_stair) - stairs.register_slab(subname, recipeitem, groups, images, desc_slab) -end - -stairs.register_stair_and_slab("wood", "default:wood", - {snappy=2,choppy=2,oddly_breakable_by_hand=2}, - {"default_wood.png"}, - "Wooden stair", - "Wooden slab") - -stairs.register_stair_and_slab("stone", "default:stone", - {cracky=3}, - {"default_stone.png"}, - "Stone stair", - "Stone slab") - -stairs.register_stair_and_slab("cobble", "default:cobble", - {cracky=3}, - {"default_cobble.png"}, - "Cobble stair", - "Cobble slab") - -stairs.register_stair_and_slab("brick", "default:brick", - {cracky=3}, - {"default_brick.png"}, - "Brick stair", - "Brick slab") - -stairs.register_stair_and_slab("sandstone", "default:sandstone", - {crumbly=2,cracky=2}, - {"default_sandstone.png"}, - "Sandstone stair", - "Sandstone slab") diff --git a/games/minimal/mods/test/init.lua b/games/minimal/mods/test/init.lua deleted file mode 100644 index 051b479..0000000 --- a/games/minimal/mods/test/init.lua +++ /dev/null @@ -1,11 +0,0 @@ --- --- Minimal Development Test --- Mod: test --- - --- Try out PseudoRandom -pseudo = PseudoRandom(13) -assert(pseudo:next() == 22290) -assert(pseudo:next() == 13854) - - diff --git a/src/cavegen.cpp b/src/cavegen.cpp index d93911f..7baff63 100644 --- a/src/cavegen.cpp +++ b/src/cavegen.cpp @@ -52,7 +52,7 @@ CaveV6::CaveV6(MapgenV6 *mg, PseudoRandom *ps, PseudoRandom *ps2, bool is_large_ min_tunnel_diameter = 5; max_tunnel_diameter = ps->range(7, ps->range(8,24)); } else { - part_max_length_rs = ps->range(2,9); + part_max_length_rs = ps->range(4,12); tunnel_routepoints = ps->range(10, ps->range(15,30)); } diff --git a/src/mapgen_v6.cpp b/src/mapgen_v6.cpp index a212496..03a5d8a 100644 --- a/src/mapgen_v6.cpp +++ b/src/mapgen_v6.cpp @@ -961,7 +961,7 @@ void MapgenV6::placeTreesAndJungleGrass() { if (is_jungle) { treegen::make_jungletree(*vm, p, ndef, myrand()); } else { - bool is_apple_tree = (myrand_range(0, 3) == 0) && + bool is_apple_tree = (myrand_range(0, 4) == 0) && getHaveAppleTree(v2s16(x, z)); treegen::make_tree(*vm, p, is_apple_tree, ndef, myrand()); } diff --git a/src/treegen.cpp b/src/treegen.cpp index 7515976..2e73558 100644 --- a/src/treegen.cpp +++ b/src/treegen.cpp @@ -38,48 +38,37 @@ void make_tree(ManualMapVoxelManipulator &vmanip, v3s16 p0, MapNode leavesnode(ndef->getId("mapgen_leaves")); MapNode applenode(ndef->getId("mapgen_apple")); - s16 trunk_h = rand() % 7 + 5; + s16 trunk_h = rand() % 8 + 6 ; v3s16 p1 = p0; - VoxelArea leaves_a(v3s16(-3,-3,-3), v3s16(3,3,3)); + VoxelArea leaves_a(v3s16(-3,-2,-3), v3s16(3,3,3)); if(is_apple_tree){trunk_h = 5;} - for (s16 trunk=0; trunk<=trunk_h ; trunk++) + for(s16 trunk=0; trunk<=trunk_h -1 ; trunk++) { if(vmanip.m_area.contains(p1)) - if(trunk == 0 || vmanip.getNodeNoExNoEmerge(p1).getContent() == CONTENT_AIR) + if(vmanip.getNodeNoExNoEmerge(p1).getContent() == CONTENT_AIR) vmanip.m_data[vmanip.m_area.index(p1)] = treenode; p1.Y++; } for(s16 z= -3; z<= 3; z++) - for(s16 y= -3; y<= 3; y++) + for(s16 y= -2; y<= 3; y++) for(s16 x= -3; x<= 3; x++) { - u32 vi = vmanip.m_area.index(v3s16(p0.X + x, p0.Y + y + trunk_h, p0.Z + z)); - if (vmanip.m_area.contains(vi) == false) { - //std::cout<<"line " << __LINE__ << " == false\n"; - continue; - } - if (rand() % 30 > 22) - continue; + u32 vi = vmanip.m_area.index(v3s16(p0.X + x, p0.Y + y + trunk_h -1, p0.Z + z)); + if (vmanip.m_area.contains(vi) == false) {continue;} + if (rand() % 30 > 22) {continue;} - if ( (std::abs(x) + std::abs(z) <= 5) && (std::abs(x) + std::abs(y) <= 5) && (std::abs(z) + std::abs(y) <= 5) ) { - //std::cout << "all good to go\n"; + if ( (std::abs(x) + std::abs(z) < 5) && (std::abs(x) + std::abs(y) < 5) && (std::abs(z) + std::abs(y) < 5) ) { - if(vmanip.m_data[vi].getContent() != CONTENT_AIR && vmanip.m_data[vi].getContent() != CONTENT_IGNORE ) { - //std::cout << "line " << __LINE__ << " != air || ignore @ pos "<< vi << "\n"; - continue; - } - - //std::cout << "ready to place leaves || apples\n"; + if(vmanip.m_data[vi].getContent() != CONTENT_AIR && vmanip.m_data[vi].getContent() != CONTENT_IGNORE ) {continue;} - bool is_apple = is_apple_tree && rand() % 100 < 10; + bool is_apple = is_apple_tree && rand() % 50 <= 10; vmanip.m_data[vi] = is_apple ? applenode : leavesnode; - } } } @@ -502,10 +491,54 @@ v3f transposeMatrix(irr::core::matrix4 M, v3f v) void make_jungletree(VoxelManipulator &vmanip, v3s16 p0, INodeDefManager *ndef, int seed) { - - MapNode jsaplingnode(ndef->getId("mapgen_jsapling")); - vmanip.m_data[vmanip.m_area.index(p0)] = jsaplingnode; + MapNode jungletreenode(ndef->getId("mapgen_jungletree")); + MapNode jungleleavesnode(ndef->getId("mapgen_jungleleaves")); + s16 trunk_h = rand() % 11 + 12 ; + v3s16 p1 = p0; + + VoxelArea leaves_a(v3s16(-3,-3,-3), v3s16(3,3,3)); + + for(s16 trunk=0; trunk<=trunk_h -1; trunk++) + { + if(vmanip.m_area.contains(p1)) + if(vmanip.getNodeNoExNoEmerge(p1).getContent() == CONTENT_AIR) + vmanip.m_data[vmanip.m_area.index(p1)] = jungletreenode; + p1.Y++; + + } + + for(s16 x= -1; x<= 1; x++) + for(s16 z= -1; z<= 1; z++) + { + if(rand() % 2 == 0){continue;} + + if (vmanip.m_area.contains(vmanip.m_area.index(v3s16(p0.X + x, p0.Y - 1, p0.Z + z))) != false + && vmanip.m_data[vmanip.m_area.index(v3s16(p0.X + x, p0.Y - 1, p0.Z + z))].getContent() == CONTENT_AIR ) + { + vmanip.m_data[vmanip.m_area.index(v3s16(p0.X + x, p0.Y - 1, p0.Z + z))] = jungletreenode; + }else if (vmanip.m_area.contains(vmanip.m_area.index(v3s16(p0.X + x, p0.Y, p0.Z + z))) != false + && vmanip.m_data[vmanip.m_area.index(v3s16(p0.X + x, p0.Y, p0.Z + z))].getContent() == CONTENT_AIR ) + { + vmanip.m_data[vmanip.m_area.index(v3s16(p0.X + x, p0.Y, p0.Z + z))] = jungletreenode; + } + } + for(s16 z= -5; z<= 5; z++) + for(s16 y= -3; y<= 4; y++) + for(s16 x= -5; x<= 5; x++) + { + u32 vi = vmanip.m_area.index(v3s16(p0.X + x, p0.Y + y + trunk_h -1, p0.Z + z)); + if (vmanip.m_area.contains(vi) == false) {continue;} + if (rand() % 30 > 22) {continue;} + + if ( (std::abs(x) + std::abs(z) < 8) && (std::abs(x) + std::abs(y) < 8) && (std::abs(z) + std::abs(y) < 8) ) { + + if(vmanip.m_data[vi].getContent() != CONTENT_AIR && vmanip.m_data[vi].getContent() != CONTENT_IGNORE ) {continue;} + + vmanip.m_data[vi] = jungleleavesnode; + + } + } } }; // namespace treegen