diff --git a/.gitignore b/.gitignore old mode 100644 new mode 100755 index a57dbc90..ef02689c --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,22 @@ -## Generic ignorable patterns and files -*~ -.*.swp -*bak* -tags -*.vim +## Files related to minetest development cycle +/*.patch +# GNU Patch reject file +*.rej +## Editors and Development environments +*~ +*.swp +*.bak* +*.orig +# Vim +*.vim +# Kate +.*.kate-swp +.swp.* +# Eclipse (LDT) +.project +.settings/ +.buildpath +.metadata +# Idea IDE +.idea/* diff --git a/README.txt b/README.txt old mode 100644 new mode 100755 index 9456f815..b59b7f94 --- a/README.txt +++ b/README.txt @@ -1,23 +1,24 @@ -The main game for the Minetest game engine [minetest_game] -========================================================== +Minetest Game [minetest_game] +============================= +The main subgame for the Minetest engine +======================================== -To use this game with Minetest, insert this repository as - /games/minetest_game -in the Minetest Engine. +To use this subgame with the Minetest engine, insert this repository as + /games/minetest_game -The Minetest Engine can be found in: - https://github.com/minetest/minetest/ +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. +The Minetest Game github master HEAD is generally compatible with the github +master HEAD of the Minetest engine. -Additionally, when the minetest engine is tagged to be a certain version (eg. -0.4.10), minetest_game is tagged with the version too. +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 +When stable releases are made, Minetest Game is packaged and made available in + http://minetest.net/download 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!) @@ -49,4 +50,4 @@ 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 +Copyright (C) 2015 paramat CC BY-SA 3.0 diff --git a/game.conf b/game.conf old mode 100644 new mode 100755 index 8b819bb9..17e7d602 --- a/game.conf +++ b/game.conf @@ -1 +1 @@ -name = Minetest +name = MinetestForFun Game diff --git a/game_api.txt b/game_api.txt old mode 100644 new mode 100755 index 3d9d7a59..80272a60 --- a/game_api.txt +++ b/game_api.txt @@ -1,199 +1,652 @@ -minetest_game API -====================== +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. + +The Minetest Game subgame offers multiple new possibilities in addition to the Minetest engine'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 + + * [XYZ] refers to a section the Minetest API + * [#ABC] refers to a section in this document + * [pos] refers to a position table `{x = -5, y = 0, z = 200}` 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 + "default:lava_source", -- name of the source node + "default:lava_flowing", -- name of the flowing node + "bucket:bucket_lava", -- name of the new bucket item (or nil if liquid is not takeable) + "bucket_lava.png", -- texture of the new bucket item (ignored if itemname == nil) + "Lava Bucket", -- text description of the bucket item + {lava_bucket = 1}, -- groups of the bucket item, OPTIONAL + false -- force-renew, OPTIONAL. Force the liquid source to renew if it has + -- a source neighbour, even if defined as 'liquid_renewable = false'. + -- Needed to avoid creating holes in sloping rivers. ) - + +The filled bucket item is returned to the player that uses an empty bucket pointing to the given liquid source. +When punching with an empty bucket pointing to an entity or a non-liquid node, the on_punch of the entity or node will be triggered. + +Beds API +-------- + + beds.register_bed( + "beds:bed", -- Bed name + def -- See [#Bed definition] + ) + + * `beds.read_spawns() ` Returns a table containing players respawn positions + * `beds.kick_players()` Forces all players to leave bed + * `beds.skip_night()` Sets world time to morning and saves respawn position of all players currently sleeping + +### Bed definition + + { + description = "Simple Bed", + inventory_image = "beds_bed.png", + wield_image = "beds_bed.png", + tiles = { + bottom = {'Tile definition'}, -- the tiles of the bottom part of the bed. + top = {Tile definition} -- the tiles of the bottom part of the bed. + }, + nodebox = { + bottom = 'regular nodebox', -- bottom part of bed (see [Node boxes]) + top = 'regular nodebox', -- top part of bed (see [Node boxes]) + }, + selectionbox = 'regular nodebox', -- for both nodeboxes (see [Node boxes]) + recipe = { -- Craft recipe + {"group:wool", "group:wool", "group:wool"}, + {"group:wood", "group:wood", "group:wood"} + } + } + +Creative API +------------ + +A global string called `creative.formspec_add` was added which allows mods to add additional formspec elements onto the default creative inventory formspec to be drawn after each update. + 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 ----------------- -{ +The doors mod allows modders to register custom doors and trapdoors. + +`doors.register_door(name, def)` + + * Registers new door + * `name` Name for door + * `def` See [#Door definition] + +`doors.register_trapdoor(name, def)` + + * Registers new trapdoor + * `name` Name for trapdoor + * `def` See [#Trapdoor definition] + +`doors.register_fencegate(name, def)` + + * Registers new fence gate + * `name` Name for fence gate + * `def` See [#Fence gate definition] + +`doors.get(pos)` + + * `pos` A position as a table, e.g `{x = 1, y = 1, z = 1}` + * Returns an ObjectRef to a door, or nil if the position does not contain a door + + ### Methods + + :open(player) -- Open the door object, returns if door was opened + :close(player) -- Close the door object, returns if door was closed + :toggle(player) -- Toggle the door state, returns if state was toggled + :state() -- returns the door state, true = open, false = closed + + the "player" parameter can be omitted in all methods. If passed then + the usual permission checks will be performed to make sure the player + has the permissions needed to open this door. If omitted then no + permission checks are performed. + +### 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, - only_placer_can_open = true/false, - ^ If true, only placer can open the door (locked for others) -} + groups = {choppy = 2}, + tiles = {"mod_door.png"}, -- UV map. + recipe = craftrecipe, + sounds = default.node_sound_wood_defaults(), -- optional + sound_open = sound play for open door, -- optional + sound_close = sound play for close door, -- optional + protected = false, -- If true, only placer can open the door (locked for others) + +### Trapdoor definition + + description = "Trapdoor description", + inventory_image = "mod_trapdoor_inv.png", + groups = {choppy = 2}, + tile_front = "doors_trapdoor.png", -- the texture for the front and back of the trapdoor + tile_side = "doors_trapdoor_side.png", -- the tiles of the four side parts of the trapdoor + sounds = default.node_sound_wood_defaults(), -- optional + sound_open = sound play for open door, -- optional + sound_close = sound play for close door, -- optional + protected = false, -- If true, only placer can open the door (locked for others) + +### Fence gate definition + + description = "Wooden Fence Gate", + texture = "default_wood.png", + material = "default:wood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + sounds = default.node_sound_wood_defaults(), -- optional + +Fence API +--------- + +Allows creation of new fences with "fencelike" drawtype. + +`default.register_fence(name, item definition)` + + Registers a new fence. Custom fields texture and material are required, as + are name and description. The rest is optional. You can pass most normal + nodedef fields here except drawtype. The fence group will always be added + for this node. + +### fence definition + + name = "default:fence_wood", + description = "Wooden Fence", + texture = "default_wood.png", + material = "default:wood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + sounds = default.node_sound_wood_defaults(), + +Walls API +--------- + +The walls API allows easy addition of stone auto-connecting wall nodes. + +walls.register(name, desc, texture, mat, sounds) +^ name = "walls:stone_wall". Node name. +^ desc = "A Stone wall" +^ texture = "default_stone.png" +^ mat = "default:stone". Used to auto-generate crafting recipe. +^ sounds = sounds: see [#Default sounds] 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] +`farming.register_hoe(name, hoe definition)` + * Register a new hoe, see [#hoe 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"}, +`farming.register_plant(name, Plant definition)` + * Register a new growing plant, see [#Plant definition] + +`farming.registered_plants[name] = definition` + * Table of registered plants, indexed by plant name + +### 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 + material = "", -- Material for recipes + recipe = { -- Craft recipe, if material isn't used + {"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 -} +### 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 each step, format: modname_plantname_i.png (i = stepnumber) + minlight = 13, -- Minimum light to grow + maxlight = default.LIGHT_MAX -- Maximum light to grow + } + +Fire API +-------- + +New node def property: + +`on_burn(pos)` + + * Called when fire attempts to remove a burning node. + * `pos` Position of the burning node. + + `on_ignite(pos, igniter)` + + * Called when Flint and steel (or a mod defined ignitor) is used on a node. + Defining it may prevent the default action (spawning flames) from triggering. + * `pos` Position of the ignited node. + * `igniter` Player that used the tool, when available. + + +Give Initial Stuff API +---------------------- + +`give_initial_stuff.give(player)` + +^ Give initial stuff to "player" + +`give_initial_stuff.add(stack)` + +^ Add item to the initial stuff +^ Stack can be an ItemStack or a item name eg: "default:dirt 99" +^ Can be called after the game has loaded + +`give_initial_stuff.clear()` + +^ Removes all items from the initial stuff +^ Can be called after the game has loaded + +`give_initial_stuff.get_list()` + +^ returns list of item stacks + +`give_initial_stuff.set_list(list)` + +^ List of initial items with numeric indices. + +`give_initial_stuff.add_from_csv(str)` + +^ str is a comma separated list of initial stuff +^ Adds items to the list of items to be given + +Nyancat API +----------- + +`nyancat.place(pos, facedir, length)` + +^ Place a cat at `pos` facing `facedir` with tail length `length` + Only accepts facedir 0-3, if facedir > 3 then it will be interpreted as facedir = 0 + +`nyancat.generate(minp, maxp, seed)` + +^ Called by `minetest.register_on_generated`. To disable nyancat generation, + you can redefine nyancat.generate() to be an empty function + +TNT API +---------- + +`tnt.register_tnt(definition)` + +^ Register a new type of tnt. + + * `name` The name of the node. If no prefix is given `tnt` is used. + * `description` A description for your TNT. + * `radius` The radius within which the TNT can destroy nodes. The default is 3. + * `damage_radius` The radius within which the TNT can damage players and mobs. By default it is twice the `radius`. + * `disable_drops` Disable drops. By default it is set to false. + * `ignore_protection` Don't check `minetest.is_protected` before removing a node. + * `ignore_on_blast` Don't call `on_blast` even if a node has one. + * `tiles` Textures for node + * `side` Side tiles. By default the name of the tnt with a suffix of `_side.png`. + * `top` Top tile. By default the name of the tnt with a suffix of `_top.png`. + * `bottom` Bottom tile. By default the name of the tnt with a suffix of `_bottom.png`. + * `burning` Top tile when lit. By default the name of the tnt with a suffix of `_top_burning_animated.png". + +`tnt.boom(position, definition)` + +^ Create an explosion. + +* `position` The center of explosion. +* `definition` The TNT definion as passed to `tnt.register` + +`tnt.burn(position, [nodename])` + +^ Ignite TNT at position, nodename isn't required unless already known. + + +To make dropping items from node inventories easier, you can use the +following helper function from 'default': + +default.get_inventory_drops(pos, inventory, drops) + +^ Return drops from node inventory "inventory" in drops. + +* `pos` - the node position +* `inventory` - the name of the inventory (string) +* `drops` - an initialized list + +The function returns no values. The drops are returned in the `drops` +parameter, and drops is not reinitialized so you can call it several +times in a row to add more inventory items to it. + + +`on_blast` callbacks: + +Both nodedefs and entitydefs can provide an `on_blast()` callback + +`nodedef.on_blast(pos, intensity)` +^ Allow drop and node removal overriding +* `pos` - node position +* `intensity` - TNT explosion measure. larger or equal to 1.0 +^ Should return a list of drops (e.g. {"default:stone"}) +^ Should perform node removal itself. If callback exists in the nodedef +^ then the TNT code will not destroy this node. + +`entitydef.on_blast(luaobj, damage)` +^ Allow TNT effects on entities to be overridden +* `luaobj` - LuaEntityRef of the entity +* `damage` - suggested HP damage value +^ Should return a list of (bool do_damage, bool do_knockback, table drops) +* `do_damage` - if true then TNT mod wil damage the entity +* `do_knockback` - if true then TNT mod will knock the entity away +* `drops` - a list of drops, e.g. {"wool:red"} + + +Screwdriver API +--------------- + +The screwdriver API allows you to control a node's behaviour when a screwdriver is used on it. +To use it, add the `on_screwdriver` function to the node definition. + +`on_rotate(pos, node, user, mode, new_param2)` + + * `pos` Position of the node that the screwdriver is being used on + * `node` that node + * `user` The player who used the screwdriver + * `mode` screwdriver.ROTATE_FACE or screwdriver.ROTATE_AXIS + * `new_param2` the new value of param2 that would have been set if on_rotate wasn't there + * return value: false to disallow rotation, nil to keep default behaviour, true to allow + it but to indicate that changed have already been made (so the screwdriver will wear out) + * use `on_rotate = false` to always disallow rotation + * use `on_rotate = screwdriver.rotate_simple` to allow only face rotation + + +Sethome API +----------- + +The sethome API adds three global functions to allow mods to read a players home position, +set a players home position and teleport a player to home position. + +`sethome.get(name)` + + * `name` Player who's home position you wish to get + * return value: false if no player home coords exist, position table if true + +`sethome.set(name, pos)` + + * `name` Player who's home position you wish to set + * `pos` Position table containing coords of home position + * return value: false if unable to set and save new home position, otherwise true + +`sethome.go(name)` + + * `name` Player you wish to teleport to their home position + * return value: false if player cannot be sent home, otherwise true + 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 - +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", may be `nil` + * `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] +`xpanes.register_pane(subname, def)` + + * `subname`: used for nodename. Result: "xpanes:subname" and "xpanes:subname_{2..15}" + * `def`: See [#Pane definition] + +### Pane definition + + { + textures = {"texture for sides", (unused), "texture for top and bottom"}, -- 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 + } + +Raillike definitions +-------------------- + +The following nodes use the group `connect_to_raillike` and will only connect to +raillike nodes within this group and the same group value. +Use `minetest.raillike_group()` to get the group value. + +| Node type | Raillike group name +|-----------------------|--------------------- +| default:rail | "rail" +| tnt:gunpowder | "gunpowder" +| tnt:gunpowder_burning | "gunpowder" + +Example: +If you want to add a new rail type and want it to connect with default:rail, +add `connect_to_raillike=minetest.raillike_group("rail")` into the `groups` table +of your node. -#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() + * `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()` + * `default.node_sound_metal_defaults()` + +Default constants +----------------- + +`default.LIGHT_MAX` The maximum light level (see [Node definition] light_source) 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.player_register_model(name, def)` -default.registered_player_models[name] -^ Get a model's definition - -> see [#Model definition] + * Register a new model to be used by players. + * name: model filename such as "character.x", "foo.b3d", etc. + * def: 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.registered_player_models[name]` -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 + * Get a model's definition + * see [#Model definition] -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_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 `textures` 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, }, + * 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}, -- ... - }, -} + }, + } + +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. + +The function `default.after_place_leaves` can be set as `after_place_node of a node` +to set param2 to 1 if the player places the node (should not be used for nodes +that use param2 otherwise (e.g. facedir)). + +If the node is in the `leafdecay_drop` group then it will always be dropped as an +item. + +Dyes +---- + +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. + +### Color groups + +Base color groups: + + * `basecolor_white` + * `basecolor_grey` + * `basecolor_black` + * `basecolor_red` + * `basecolor_yellow` + * `basecolor_green` + * `basecolor_cyan` + * `basecolor_blue` + * `basecolor_magenta` + +Extended color groups ( * means also 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` + +Example of one shapeless recipe using a color group: + + minetest.register_craft({ + type = "shapeless", + output = ':item_yellow', + recipe = {':item_no_color', 'group:basecolor_yellow'}, + }) + +### Color lists + + * `dye.basecolors` are an array containing the names of available base colors + + * `dye.excolors` are an array containing the names of the available extended colors + +Trees +----- + + * `default.grow_tree(pos, is_apple_tree)` + * Grows a mgv6 tree or apple tree at pos + + * `default.grow_jungle_tree(pos)` + * Grows a mgv6 jungletree at pos + + * `default.grow_pine_tree(pos)` + * Grows a mgv6 pinetree at pos + + * `default.grow_new_apple_tree(pos)` + * Grows a new design apple tree at pos + + * `default.grow_new_jungle_tree(pos)` + * Grows a new design jungle tree at pos + + * `default.grow_new_pine_tree(pos)` + * Grows a new design pine tree at pos + + * `default.grow_new_acacia_tree(pos)` + * Grows a new design acacia tree at pos + + * `default.grow_new_aspen_tree(pos)` + * Grows a new design aspen tree at pos + + * `default.grow_new_snowy_pine_tree(pos)` + * Grows a new design snowy pine tree at pos diff --git a/menu/header.png b/menu/header.png index c22192d0..e54b1a46 100644 Binary files a/menu/header.png and b/menu/header.png differ diff --git a/menu/icon.png b/menu/icon.png old mode 100644 new mode 100755 index 410989eb..bf90c829 Binary files a/menu/icon.png and b/menu/icon.png differ diff --git a/minetest.conf b/minetest.conf old mode 100644 new mode 100755 index 58c905d2..9606fdc7 --- a/minetest.conf +++ b/minetest.conf @@ -1,6 +1,3 @@ -mgv6_spflags = biomeblend, jungles - -movement_liquid_sink = 25 -movement_speed_jump = 6.2 -movement_liquid_fluidity = 0.8 -movement_liquid_fluidity_smooth = 2 +# Enable jungles on new worlds, disable biome blend and mud flow (faster, looks better). +mgv6_spflags = jungles, nobiomeblend, nomudflow +disable_fire = true diff --git a/minetest.conf.example b/minetest.conf.example new file mode 100755 index 00000000..f5e4e85d --- /dev/null +++ b/minetest.conf.example @@ -0,0 +1,47 @@ +# This file contains settings of Minetest Game that can be changed in minetest.conf +# By default, all the settings are commented and not functional. +# Uncomment settings by removing the preceding #. + +# Whether creative mode (fast digging of all blocks, unlimited resources) should be enabled +#creative_mode = false + +# Sets the behaviour of the inventory items when a player dies. +# "bones": Store all items inside a bone node but drop items if inside protected area +# "drop": Drop all items on the ground +# "keep": Player keeps all items +#bones_mode = "bones" + +# The time in seconds after which the bones of a dead player can be looted by everyone +# 0 to disable +#share_bones_time = 1200 + +# How much earlier the bones of a dead player can be looted by +# everyone if the player dies in a protected area they don't own. +# 0 to disable. By default it is "share_bones_time" divide by four. +#share_bones_time_early = 300 + +# Whether fire should be enabled. If disabled, 'basic flame' nodes will disappear. +# 'permanent flame' nodes will remain with either setting. +#enable_fire = true + +# Whether the stuff in initial_stuff should be given to new players +#give_initial_stuff = false +#initial_stuff = default:pick_steel,default:axe_steel,default:shovel_steel,default:torch 99,default:cobble 99 + +# Whether the TNT mod should be enabled +#enable_tnt = + +# The radius of a TNT explosion +#tnt_radius = 3 + +# Enable the stairs mod ABM that replaces the old 'upside down' +# stair and slab nodes in old maps with the new param2 versions. +#enable_stairs_replace_abm = false + +# Whether you allow respawning in beds +# Default value is true +#enable_bed_respawn = true + +# Whether players can skip night by sleeping +# Default value is true +#enable_bed_night_skip = true diff --git a/mods/_misc_init/init.lua b/mods/_misc_init/init.lua new file mode 100755 index 00000000..bf26caec --- /dev/null +++ b/mods/_misc_init/init.lua @@ -0,0 +1,9 @@ +---------------------------------------- +-- Server Misc Mod - pre-default init -- +---------------------------------------- + +local cwd = minetest.get_modpath(minetest.get_current_modname()) + +-- Inventory refill function override +-- see https://github.com/MinetestForFun/server-minetestforfun/issues/462 +dofile(cwd.."/inventory_rotate_node.lua") diff --git a/mods/_misc_init/inventory_rotate_node.lua b/mods/_misc_init/inventory_rotate_node.lua new file mode 100644 index 00000000..4df3ac13 --- /dev/null +++ b/mods/_misc_init/inventory_rotate_node.lua @@ -0,0 +1,22 @@ +--rewrite function minetest.rotate_node(itemstack, placer, pointed_thing) to refill inventory +local old_rotate_node = minetest.rotate_node +function minetest.rotate_node(itemstack, placer, pointed_thing) + local stack_name = itemstack:get_name() + local ret = old_rotate_node(itemstack, placer, pointed_thing) + if ret:get_count() == 0 and not minetest.setting_getbool("creative_mode") then + local index = placer:get_wield_index() + local inv = placer:get_inventory() + if inv:get_list("main") then + for i, stack in ipairs(inv:get_list("main")) do + if i ~= index and stack:get_name() == stack_name then + ret:add_item(stack) + stack:clear() + inv:set_stack("main", i, stack) + minetest.log("action", "Inventory Tweaks: refilled stack("..stack_name..") of " .. placer:get_player_name()) + break + end + end + end + end + return ret +end diff --git a/mods/beds/README.txt b/mods/beds/README.txt new file mode 100755 index 00000000..9710c459 --- /dev/null +++ b/mods/beds/README.txt @@ -0,0 +1,30 @@ +Minetest Game mod: beds +======================= +by BlockMen (c) 2014-2015 + +Version: 1.1.1 + +About +~~~~~ +This mod adds a bed to Minetest which allows to skip the night. To sleep rightclick the bed, if playing +in singleplayer mode the night gets skipped imideatly. If playing on server you get shown how many other +players are in bed too. If all players are sleeping the night gets skipped aswell. Also the night skip can be forced +if more than 50% of the players are lying in bed and use this option. + +Another feature is a controled respawning. If you have slept in bed (not just lying in it) your respawn point +is set to the beds location and you will respawn there after death. +You can disable the respawn at beds by setting "enable_bed_respawn = false" in minetest.conf +You can also disable the night skip feature by setting "enable_bed_night_skip = false" in minetest.conf or by using +the /set command ingame. + + +License of source code, textures: WTFPL +--------------------------------------- +(c) Copyright BlockMen (2014-2015) + + +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/mods/beds/api.lua b/mods/beds/api.lua new file mode 100755 index 00000000..b9259f92 --- /dev/null +++ b/mods/beds/api.lua @@ -0,0 +1,113 @@ +function beds.register_bed(name, def) + minetest.register_node(name .. "_bottom", { + description = def.description, + inventory_image = def.inventory_image, + wield_image = def.wield_image, + drawtype = "nodebox", + tiles = def.tiles.bottom, + paramtype = "light", + paramtype2 = "facedir", + is_ground_content = false, + stack_max = 1, + groups = {snappy = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3, bed = 1}, + sounds = default.node_sound_wood_defaults(), + node_box = { + type = "fixed", + fixed = def.nodebox.bottom, + }, + selection_box = { + type = "fixed", + fixed = def.selectionbox, + }, + after_place_node = function(pos, placer, itemstack) + local n = minetest.get_node_or_nil(pos) + if not n or not n.param2 then + minetest.remove_node(pos) + return true + end + local dir = minetest.facedir_to_dir(n.param2) + local p = vector.add(pos, dir) + local n2 = minetest.get_node_or_nil(p) + local def = n2 and minetest.registered_items[n2.name] + if not def or not def.buildable_to then + minetest.remove_node(pos) + return true + end + minetest.set_node(p, {name = n.name:gsub("%_bottom", "_top"), param2 = n.param2}) + return false + end, + on_destruct = function(pos) + local n = minetest.get_node_or_nil(pos) + if not n then return end + local dir = minetest.facedir_to_dir(n.param2) + local p = vector.add(pos, dir) + local n2 = minetest.get_node(p) + if minetest.get_item_group(n2.name, "bed") == 2 and n.param2 == n2.param2 then + minetest.remove_node(p) + end + end, + after_dig_node = function(pos, oldnode, oldmetadata, digger) + local name = digger:get_player_name() + if not name or name == "" then return end + beds.spawn[name] = nil + beds.save_spawns() + end, + on_rightclick = function(pos, node, clicker) + beds.on_rightclick(pos, clicker) + end, + on_rotate = function(pos, node, user, mode, new_param2) + local dir = minetest.facedir_to_dir(node.param2) + local p = vector.add(pos, dir) + local node2 = minetest.get_node_or_nil(p) + if not node2 or not minetest.get_item_group(node2.name, "bed") == 2 or + not node.param2 == node2.param2 then + return false + end + if minetest.is_protected(p, user:get_player_name()) then + minetest.record_protection_violation(p, user:get_player_name()) + return false + end + if mode ~= screwdriver.ROTATE_FACE then + return false + end + local newp = vector.add(pos, minetest.facedir_to_dir(new_param2)) + local node3 = minetest.get_node_or_nil(newp) + local def = node3 and minetest.registered_nodes[node3.name] + if not def or not def.buildable_to then + return false + end + if minetest.is_protected(newp, user:get_player_name()) then + minetest.record_protection_violation(newp, user:get_player_name()) + return false + end + node.param2 = new_param2 + minetest.swap_node(pos, node) + minetest.remove_node(p) + minetest.set_node(newp, {name = node.name:gsub("%_bottom", "_top"), param2 = new_param2}) + return true + end, + }) + + minetest.register_node(name .. "_top", { + drawtype = "nodebox", + tiles = def.tiles.top, + paramtype = "light", + paramtype2 = "facedir", + is_ground_content = false, + pointable = false, + groups = {snappy = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3, bed = 2}, + sounds = default.node_sound_wood_defaults(), + node_box = { + type = "fixed", + fixed = def.nodebox.top, + }, + }) + + minetest.register_alias(name, name .. "_bottom") + + -- register recipe + minetest.register_craft({ + output = name, + recipe = def.recipe + }) +end diff --git a/mods/beds/beds.lua b/mods/beds/beds.lua new file mode 100755 index 00000000..76584c85 --- /dev/null +++ b/mods/beds/beds.lua @@ -0,0 +1,92 @@ +for _, colour in pairs({"red", "white", "black", "blue", "green"}) do-- fancy shaped bed + beds.register_bed("beds:fancy_bed_" .. colour, { + description = "Fancy Bed (" .. colour .. ")", + inventory_image = "beds_bed_fancy_" .. colour .. ".png", + wield_image = "beds_bed_fancy_" .. colour .. ".png", + tiles = { + bottom = { + "beds_bed_top1_" .. colour .. ".png", + "default_wood.png", + "beds_bed_side1_" .. colour .. ".png", + "beds_bed_side1_" .. colour .. ".png^[transformFX", + "default_wood.png", + "beds_bed_foot_" .. colour .. ".png", + }, + top = { + "beds_bed_top2_" .. colour .. ".png", + "default_wood.png", + "beds_bed_side2_" .. colour .. ".png", + "beds_bed_side2_" .. colour .. ".png^[transformFX", + "beds_bed_head.png", + "default_wood.png", + } + }, + nodebox = { + bottom = { + {-0.5, -0.5, -0.5, -0.375, -0.065, -0.4375}, + {0.375, -0.5, -0.5, 0.5, -0.065, -0.4375}, + {-0.5, -0.375, -0.5, 0.5, -0.125, -0.4375}, + {-0.5, -0.375, -0.5, -0.4375, -0.125, 0.5}, + {0.4375, -0.375, -0.5, 0.5, -0.125, 0.5}, + {-0.4375, -0.3125, -0.4375, 0.4375, -0.0625, 0.5}, + }, + top = { + {-0.5, -0.5, 0.4375, -0.375, 0.1875, 0.5}, + {0.375, -0.5, 0.4375, 0.5, 0.1875, 0.5}, + {-0.5, 0, 0.4375, 0.5, 0.125, 0.5}, + {-0.5, -0.375, 0.4375, 0.5, -0.125, 0.5}, + {-0.5, -0.375, -0.5, -0.4375, -0.125, 0.5}, + {0.4375, -0.375, -0.5, 0.5, -0.125, 0.5}, + {-0.4375, -0.3125, -0.5, 0.4375, -0.0625, 0.4375}, + } + }, + selectionbox = {-0.5, -0.5, -0.5, 0.5, 0.06, 1.5}, + recipe = { + {"", "", "group:stick"}, + {"wool:" .. colour, "wool:" .. colour, "wool:white"}, + {"group:wood", "group:wood", "group:wood"}, + }, + }) + + -- simple shaped bed + beds.register_bed("beds:bed_" .. colour, { + description = "Simple Bed (" .. colour .. ")", + inventory_image = "beds_bed_" .. colour .. ".png", + wield_image = "beds_bed_" .. colour .. ".png", + tiles = { + bottom = { + "beds_bed_top_bottom_" .. colour .. ".png^[transformR90", + "default_wood.png", + "beds_bed_side_bottom_r_" .. colour .. ".png", + "beds_bed_side_bottom_r_" .. colour .. ".png^[transformfx", + "beds_transparent.png", + "beds_bed_side_bottom_" .. colour .. ".png" + }, + top = { + "beds_bed_top_top_" .. colour .. ".png^[transformR90", + "default_wood.png", + "beds_bed_side_top_r_" .. colour .. ".png", + "beds_bed_side_top_r_" .. colour .. ".png^[transformfx", + "beds_bed_side_top.png", + "beds_transparent.png", + } + }, + nodebox = { + bottom = {-0.5, -0.5, -0.5, 0.5, 0.06, 0.5}, + top = {-0.5, -0.5, -0.5, 0.5, 0.06, 0.5}, + }, + selectionbox = {-0.5, -0.5, -0.5, 0.5, 0.06, 1.5}, + recipe = { + {"wool:" .. colour, "wool:" .. colour, "wool:white"}, + {"group:wood", "group:wood", "group:wood"} + }, + + }) +end + +minetest.register_alias("beds:bed", "beds:bed_red") +minetest.register_alias("beds:fancy_bed", "beds:fancy_bed_red") +minetest.register_alias("beds:bed_bottom", "beds:bed_red_bottom") +minetest.register_alias("beds:bed_top", "beds:bed_red_top") +minetest.register_alias("beds:fancy_bed_top", "beds:fancy_bed_red_top") +minetest.register_alias("beds:fancy_bed_bottom", "beds:fancy_bed_red_bottom") diff --git a/mods/beds/depends.txt b/mods/beds/depends.txt new file mode 100755 index 00000000..2efaa03d --- /dev/null +++ b/mods/beds/depends.txt @@ -0,0 +1,3 @@ +default +wool +areas diff --git a/mods/beds/functions.lua b/mods/beds/functions.lua new file mode 100755 index 00000000..e5c60da8 --- /dev/null +++ b/mods/beds/functions.lua @@ -0,0 +1,271 @@ +local pi = math.pi +local player_in_bed = 0 +local is_sp = minetest.is_singleplayer() +local enable_respawn = minetest.setting_getbool("enable_bed_respawn") +if enable_respawn == nil then + enable_respawn = true +end + + +-- helper functions + +local function get_look_yaw(pos) + local n = minetest.get_node(pos) + if n.param2 == 1 then + return pi/2, n.param2 + elseif n.param2 == 3 then + return -pi/2, n.param2 + elseif n.param2 == 0 then + return pi, n.param2 + else + return 0, n.param2 + end +end + +local function is_night_skip_enabled() + local enable_night_skip = minetest.setting_getbool("enable_bed_night_skip") + if enable_night_skip == nil then + enable_night_skip = true + end + return enable_night_skip +end + +local function check_in_beds(players) + local in_bed = beds.player + if not players then + players = minetest.get_connected_players() + end + + for n, player in ipairs(players) do + local name = player:get_player_name() + if not in_bed[name] then + return false + end + end + + return #players > 0 +end + +local function lay_down(player, pos, bed_pos, state, skip) + local name = player:get_player_name() + local hud_flags = player:hud_get_flags() + + if not player or not name then + return + end + + -- stand up + if state ~= nil and not state then + local p = beds.pos[name] or nil + if beds.player[name] ~= nil then + beds.player[name] = nil + player_in_bed = player_in_bed - 1 + end + -- skip here to prevent sending player specific changes (used for leaving players) + if skip then + return + end + if p then + player:setpos(p) + end + + -- physics, eye_offset, etc + player:set_eye_offset({x=0,y=0,z=0}, {x=0,y=0,z=0}) + player:set_look_yaw(math.random(1, 180)/100) + default.player_attached[name] = false + player:set_physics_override(1, 1, 1) + hud_flags.wielditem = true + default.player_set_animation(player, "stand" , 30) + + -- lay down + else + beds.player[name] = 1 + beds.pos[name] = pos + player_in_bed = player_in_bed + 1 + + -- physics, eye_offset, etc + player:set_eye_offset({x=0,y=-13,z=0}, {x=0,y=0,z=0}) + local yaw, param2 = get_look_yaw(bed_pos) + player:set_look_yaw(yaw) + local dir = minetest.facedir_to_dir(param2) + local p = {x=bed_pos.x+dir.x/2,y=bed_pos.y,z=bed_pos.z+dir.z/2} + player:set_physics_override(0, 0, 0) + player:setpos(p) + default.player_attached[name] = true + hud_flags.wielditem = false + default.player_set_animation(player, "lay" , 0) + end + + player:hud_set_flags(hud_flags) +end + +local function update_formspecs(finished) + local ges = #minetest.get_connected_players() + local form_n = "" + local is_majority = (ges/2) < player_in_bed + + if finished then + form_n = beds.formspec .. + "label[2.7,11; Good morning.]" + else + form_n = beds.formspec .. + "label[2.2,11;"..tostring(player_in_bed).." of "..tostring(ges).." players are in bed]" + if is_majority and is_night_skip_enabled() then + form_n = form_n .. + "button_exit[2,8;4,0.75;force;Force night skip]" + end + end + + for name,_ in pairs(beds.player) do + minetest.show_formspec(name, "beds_form", form_n) + end +end + + +-- public functions + +function beds.kick_players() + for name,_ in pairs(beds.player) do + local player = minetest.get_player_by_name(name) + lay_down(player, nil, nil, false) + end +end + +function beds.skip_night() + minetest.set_timeofday(0.23) + beds.set_spawns() +end + +function beds.on_rightclick(pos, player) + local name = player:get_player_name() + local ppos = player:getpos() + local tod = minetest.get_timeofday() + + if tod > 0.2 and tod < 0.805 then + if beds.player[name] then + lay_down(player, nil, nil, false) + end + minetest.chat_send_player(name, "You can only sleep at night.") + return + end + + -- move to bed + if not beds.player[name] then + lay_down(player, ppos, pos) + else + lay_down(player, nil, nil, false) + end + + if not is_sp then + update_formspecs(false) + end + + -- skip the night and let all players stand up + if check_in_beds() then + minetest.after(2, function() + if not is_sp then + update_formspecs(is_night_skip_enabled()) + end + if is_night_skip_enabled() then + beds.skip_night() + beds.kick_players() + end + end) + end +end + + +-- callbacks +--[[ --MFF (Crabman) It's useless to read each join player, read only once at load. function moved/called in spawn.lua +minetest.register_on_joinplayer(function(player) + beds.read_spawns() +end) +--]] + + +local dead_players = {} +local have_areas_mod = false +if (minetest.get_modpath("areas") ~= nil) and areas.getSpawn then + have_areas_mod = true +end + + +local function teleport_player(player, clear) + local name = player:get_player_name() + if not name or name == "" then return false end + if have_areas_mod and dead_players[name] ~= nil then + local pos = areas:getSpawn(dead_players[name]) + if clear then + dead_players[name] = nil + end + if pos then + player:setpos(pos) + return true + end + end + if not enable_respawn then + return false + end + local name = player:get_player_name() + local pos = beds.spawn[name] or nil + if pos then + player:setpos(pos) + return true + end + --if not areas or bed spawnpoint, tp to the spawn + local spawn = minetest.string_to_pos(minetest.setting_get("static_spawnpoint") or "0,0,0") + player:setpos(spawn) + return false +end + + +minetest.register_on_dieplayer(function(player) + local name = player:get_player_name() + if not name or name == "" then return end + if have_areas_mod then + local pos = player:getpos() + if pos then + dead_players[name] = pos + end + end + minetest.after(0.20, teleport_player, player) -- tp after all others on_dieplayer callback otherwise their pos is wrong +end) + +-- respawn player at bed if enabled and valid position is found +minetest.register_on_respawnplayer(function(player) + return teleport_player(player, true) +end) + + +minetest.register_on_leaveplayer(function(player) + local name = player:get_player_name() + lay_down(player, nil, nil, false, true) + beds.player[name] = nil + if check_in_beds() then + minetest.after(2, function() + update_formspecs(is_night_skip_enabled()) + if is_night_skip_enabled() then + beds.skip_night() + beds.kick_players() + end + end) + end +end) + +minetest.register_on_player_receive_fields(function(player, formname, fields) + if formname ~= "beds_form" then + return + end + if fields.quit or fields.leave then + lay_down(player, nil, nil, false) + update_formspecs(false) + end + + if fields.force then + update_formspecs(is_night_skip_enabled()) + if is_night_skip_enabled() then + beds.skip_night() + beds.kick_players() + end + end +end) diff --git a/mods/beds/init.lua b/mods/beds/init.lua new file mode 100755 index 00000000..09982c24 --- /dev/null +++ b/mods/beds/init.lua @@ -0,0 +1,16 @@ +beds = {} +beds.player = {} +beds.pos = {} +beds.spawn = {} + +beds.formspec = "size[8,15;true]".. + "bgcolor[#080808BB; true]".. + "button_exit[2,12;4,0.75;leave;Leave Bed]" + +local modpath = minetest.get_modpath("beds") + +-- load files +dofile(modpath.."/functions.lua") +dofile(modpath.."/api.lua") +dofile(modpath.."/beds.lua") +dofile(modpath.."/spawns.lua") diff --git a/mods/beds/models/fancy_bed.obj b/mods/beds/models/fancy_bed.obj new file mode 100755 index 00000000..285be20f --- /dev/null +++ b/mods/beds/models/fancy_bed.obj @@ -0,0 +1,160 @@ +# Blender v2.69 (sub 0) OBJ File: '' +# www.blender.org +mtllib fancy_bed.mtl +o mattress_Mattress_nodebox-6_none.001_fancy_bed.png.001 +v 0.437500 -0.312500 -0.437501 +v 0.437500 -0.062500 -0.437501 +v 0.437500 -0.062500 1.437499 +v 0.437500 -0.312500 1.437499 +v -0.437500 -0.312500 -0.437501 +v -0.437500 -0.312500 1.437499 +v -0.437500 -0.062500 1.437499 +v -0.437500 -0.062500 -0.437501 +v 0.437500 -0.176793 -0.437501 +v -0.437500 -0.176793 -0.437501 +vt 0.000171 0.499972 +vt 0.000161 0.000182 +vt 0.999791 0.000253 +vt 0.999873 0.500022 +vt 0.749576 0.000208 +vt 0.749876 0.499854 +vt 0.999848 0.999750 +vt 0.000152 0.999750 +vt 0.749276 0.130648 +vt 0.000112 0.130648 +g mattress_Mattress_nodebox-6_none.001_fancy_bed.png.001_none.001_fancy_bed.png.001 +usemtl none.001_fancy_bed.png.001 +s off +f 1/1 2/2 3/3 4/4 +f 5/2 6/3 7/4 8/1 +f 4/5 3/2 7/1 6/6 +f 1/1 4/4 6/7 5/8 +f 2/1 8/2 7/3 3/4 +f 8/2 2/5 9/9 10/10 +o wood_structure_Wood_structure_nodebox-4.001_none.002 +v 0.374999 -0.375000 1.437499 +v 0.374999 -0.125000 1.437499 +v 0.374999 -0.125000 1.499999 +v 0.374999 -0.375000 1.499999 +v -0.374999 -0.375000 1.437499 +v -0.374999 -0.375000 1.499999 +v -0.374999 -0.125000 1.499999 +v -0.374999 -0.125000 1.437499 +v -0.375000 -0.500000 1.437499 +v -0.375000 0.187500 1.437499 +v -0.375000 0.187500 1.499999 +v -0.375000 -0.500000 1.499999 +v -0.500000 -0.500000 1.437499 +v -0.500000 -0.500000 1.499999 +v -0.500000 0.187500 1.499999 +v -0.500000 0.187500 1.437499 +v -0.437500 -0.375000 -0.437501 +v -0.437500 -0.125000 -0.437501 +v -0.437500 -0.125000 1.437498 +v -0.437500 -0.375000 1.437498 +v -0.500000 -0.375000 -0.437501 +v -0.500000 -0.375000 1.437498 +v -0.500000 -0.125000 1.437498 +v -0.500000 -0.125000 -0.437501 +v 0.375001 -0.000000 1.437499 +v 0.375001 0.125000 1.437499 +v 0.375001 0.125000 1.499999 +v 0.375001 -0.000000 1.499999 +v -0.375001 -0.000000 1.437499 +v -0.375001 -0.000000 1.499999 +v -0.375001 0.125000 1.499999 +v -0.375001 0.125000 1.437499 +v 0.500000 -0.500000 1.437499 +v 0.500000 0.187500 1.437499 +v 0.500000 0.187500 1.499999 +v 0.500000 -0.500000 1.499999 +v 0.375000 -0.500000 1.437499 +v 0.375000 -0.500000 1.499999 +v 0.375000 0.187500 1.499999 +v 0.375000 0.187500 1.437499 +v 0.500000 -0.375000 -0.437501 +v 0.500000 -0.125000 -0.437501 +v 0.500000 -0.125000 1.437499 +v 0.500000 -0.375000 1.437499 +v 0.437500 -0.375000 -0.437501 +v 0.437500 -0.375000 1.437499 +v 0.437500 -0.125000 1.437499 +v 0.437500 -0.125000 -0.437501 +v -0.375000 -0.500000 -0.500000 +v -0.375000 -0.065000 -0.500000 +v -0.375000 -0.065000 -0.437500 +v -0.375000 -0.500000 -0.437500 +v -0.500000 -0.500000 -0.500000 +v -0.500000 -0.500000 -0.437500 +v -0.500000 -0.065000 -0.437500 +v -0.500000 -0.065000 -0.500000 +v 0.375006 -0.375000 -0.500000 +v 0.375006 -0.125000 -0.500000 +v 0.375006 -0.125000 -0.437500 +v 0.375006 -0.375000 -0.437500 +v -0.375006 -0.375000 -0.500000 +v -0.375006 -0.375000 -0.437500 +v -0.375006 -0.125000 -0.437500 +v -0.375006 -0.125000 -0.500000 +v 0.500000 -0.500000 -0.500000 +v 0.500000 -0.065000 -0.500000 +v 0.500000 -0.065000 -0.437500 +v 0.500000 -0.500000 -0.437500 +v 0.375000 -0.500000 -0.500000 +v 0.375000 -0.500000 -0.437500 +v 0.375000 -0.065000 -0.437500 +v 0.375000 -0.065000 -0.500000 +vt 0.377610 0.378205 +vt 0.622484 0.378175 +vt 0.622515 0.623120 +vt 0.377671 0.623151 +g wood_structure_Wood_structure_nodebox-4.001_none.002_none.002 +usemtl none.002 +s off +f 59/11 60/12 61/13 62/14 +f 63/14 64/11 65/12 66/13 +f 59/11 63/14 66/13 60/12 +f 62/14 61/13 65/12 64/11 +f 59/11 62/14 64/13 63/12 +f 60/12 66/11 65/14 61/13 +f 67/11 71/12 74/13 68/14 +f 70/14 69/11 73/12 72/13 +f 67/11 70/12 72/13 71/14 +f 68/11 74/12 73/13 69/14 +f 75/11 76/12 77/13 78/14 +f 79/14 80/11 81/12 82/13 +f 75/14 79/11 82/12 76/13 +f 78/11 77/12 81/13 80/14 +f 75/11 78/12 80/13 79/14 +f 76/11 82/12 81/13 77/14 +g wood_structure_Wood_structure_nodebox-4.001_none.002_none.003 +usemtl none.003 +f 15/11 16/12 17/13 18/14 +f 11/13 15/14 18/11 12/12 +f 14/14 13/11 17/12 16/13 +f 11/14 14/11 16/12 15/13 +f 12/11 18/12 17/13 13/14 +f 19/11 20/12 21/13 22/14 +f 23/14 24/11 25/12 26/13 +f 19/14 23/11 26/12 20/13 +f 22/11 21/12 25/13 24/14 +f 19/11 22/12 24/13 23/14 +f 20/11 26/12 25/13 21/14 +f 27/14 28/11 29/12 30/13 +f 31/11 32/12 33/13 34/14 +f 27/11 30/12 32/13 31/14 +f 28/14 34/11 33/12 29/13 +f 35/11 39/12 42/13 36/14 +f 38/14 37/11 41/12 40/13 +f 35/14 38/11 40/12 39/13 +f 36/11 42/12 41/13 37/14 +f 43/11 44/12 45/13 46/14 +f 47/14 48/11 49/12 50/13 +f 43/14 47/11 50/12 44/13 +f 46/11 45/12 49/13 48/14 +f 43/11 46/12 48/13 47/14 +f 44/11 50/12 49/13 45/14 +f 51/14 52/11 53/12 54/13 +f 55/13 56/14 57/11 58/12 +f 51/11 54/12 56/13 55/14 +f 52/14 58/11 57/12 53/13 diff --git a/mods/beds/models/simple_bed.obj b/mods/beds/models/simple_bed.obj new file mode 100755 index 00000000..21ecfb47 --- /dev/null +++ b/mods/beds/models/simple_bed.obj @@ -0,0 +1,32 @@ +# Blender v2.69 (sub 0) OBJ File: '' +# www.blender.org +mtllib simple_bed.mtl +o Simple_Bed +v 0.500000 -0.500000 -0.500000 +v 0.500000 0.060000 -0.500000 +v 0.500000 0.060000 1.500000 +v 0.500000 -0.500000 1.500000 +v -0.500000 -0.500000 -0.500000 +v -0.500000 -0.500000 1.500000 +v -0.500000 0.060000 1.500000 +v -0.500000 0.060000 -0.500000 +vt 0.000112 0.780442 +vt 0.000110 0.999969 +vt 0.780324 0.999889 +vt 0.780377 0.780471 +vt 0.780636 0.390284 +vt 0.999906 0.780382 +vt 0.999906 0.390284 +vt 0.780636 0.000047 +vt 0.999906 0.000094 +vt 0.390235 0.780320 +vt 0.390235 0.000071 +vt 0.000142 0.000142 +usemtl none.002 +s off +f 1/1 2/2 3/3 4/4 +f 5/1 6/4 7/3 8/2 +f 1/5 5/4 8/6 2/7 +f 4/8 3/9 7/7 6/5 +f 1/8 4/4 6/10 5/11 +f 2/11 8/12 7/1 3/10 diff --git a/mods/beds/spawns.lua b/mods/beds/spawns.lua new file mode 100755 index 00000000..7b99631a --- /dev/null +++ b/mods/beds/spawns.lua @@ -0,0 +1,60 @@ +local world_path = minetest.get_worldpath() +local org_file = world_path .. "/beds_spawns" +local file = world_path .. "/beds_spawns" +local bkwd = false + +-- check for PA's beds mod spawns +local cf = io.open(world_path .. "/beds_player_spawns", "r") +if cf ~= nil then + io.close(cf) + file = world_path .. "/beds_player_spawns" + bkwd = true +end + +function beds.read_spawns() + local spawns = beds.spawn + local input = io.open(file, "r") + if input and not bkwd 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") + spawns[name:sub(2)] = {x = x, y = y, z = z} + until input:read(0) == nil + io.close(input) + elseif input and bkwd then + beds.spawn = minetest.deserialize(input:read("*all")) + input:close() + beds.save_spawns() + os.rename(file, file .. ".backup") + file = org_file + else + spawns = {} + end +end + +function beds.save_spawns() + if not beds.spawn then + return + end + local output = io.open(org_file, "w") + for i, v in pairs(beds.spawn) do + output:write(v.x.." "..v.y.." "..v.z.." "..i.."\n") + end + io.close(output) +end + +function beds.set_spawns() + for name,_ in pairs(beds.player) do + local player = minetest.get_player_by_name(name) + local p = player:getpos() + beds.spawn[name] = p + end + beds.save_spawns() +end + +beds.read_spawns() diff --git a/mods/beds/textures/beds_bed_black.png b/mods/beds/textures/beds_bed_black.png new file mode 100755 index 00000000..888a8eb3 Binary files /dev/null and b/mods/beds/textures/beds_bed_black.png differ diff --git a/mods/beds/textures/beds_bed_blue.png b/mods/beds/textures/beds_bed_blue.png new file mode 100755 index 00000000..85260c4c Binary files /dev/null and b/mods/beds/textures/beds_bed_blue.png differ diff --git a/mods/beds/textures/beds_bed_fancy_black.png b/mods/beds/textures/beds_bed_fancy_black.png new file mode 100755 index 00000000..5ac26531 Binary files /dev/null and b/mods/beds/textures/beds_bed_fancy_black.png differ diff --git a/mods/beds/textures/beds_bed_fancy_blue.png b/mods/beds/textures/beds_bed_fancy_blue.png new file mode 100755 index 00000000..92017d24 Binary files /dev/null and b/mods/beds/textures/beds_bed_fancy_blue.png differ diff --git a/mods/beds/textures/beds_bed_fancy_green.png b/mods/beds/textures/beds_bed_fancy_green.png new file mode 100755 index 00000000..0c8ba636 Binary files /dev/null and b/mods/beds/textures/beds_bed_fancy_green.png differ diff --git a/mods/beds/textures/beds_bed_fancy_red.png b/mods/beds/textures/beds_bed_fancy_red.png new file mode 100755 index 00000000..4f9e8a74 Binary files /dev/null and b/mods/beds/textures/beds_bed_fancy_red.png differ diff --git a/mods/beds/textures/beds_bed_fancy_white.png b/mods/beds/textures/beds_bed_fancy_white.png new file mode 100755 index 00000000..ffd7b4c3 Binary files /dev/null and b/mods/beds/textures/beds_bed_fancy_white.png differ diff --git a/mods/beds/textures/beds_bed_foot_black.png b/mods/beds/textures/beds_bed_foot_black.png new file mode 100755 index 00000000..241435cc Binary files /dev/null and b/mods/beds/textures/beds_bed_foot_black.png differ diff --git a/mods/beds/textures/beds_bed_foot_blue.png b/mods/beds/textures/beds_bed_foot_blue.png new file mode 100755 index 00000000..8f571c7d Binary files /dev/null and b/mods/beds/textures/beds_bed_foot_blue.png differ diff --git a/mods/beds/textures/beds_bed_foot_green.png b/mods/beds/textures/beds_bed_foot_green.png new file mode 100755 index 00000000..96ca5f96 Binary files /dev/null and b/mods/beds/textures/beds_bed_foot_green.png differ diff --git a/mods/beds/textures/beds_bed_foot_red.png b/mods/beds/textures/beds_bed_foot_red.png new file mode 100755 index 00000000..74d84c86 Binary files /dev/null and b/mods/beds/textures/beds_bed_foot_red.png differ diff --git a/mods/beds/textures/beds_bed_foot_white.png b/mods/beds/textures/beds_bed_foot_white.png new file mode 100755 index 00000000..ec854a5b Binary files /dev/null and b/mods/beds/textures/beds_bed_foot_white.png differ diff --git a/mods/beds/textures/beds_bed_green.png b/mods/beds/textures/beds_bed_green.png new file mode 100755 index 00000000..8acd7416 Binary files /dev/null and b/mods/beds/textures/beds_bed_green.png differ diff --git a/mods/beds/textures/beds_bed_head.png b/mods/beds/textures/beds_bed_head.png new file mode 100755 index 00000000..86689fc9 Binary files /dev/null and b/mods/beds/textures/beds_bed_head.png differ diff --git a/mods/beds/textures/beds_bed_red.png b/mods/beds/textures/beds_bed_red.png new file mode 100755 index 00000000..5c0054c6 Binary files /dev/null and b/mods/beds/textures/beds_bed_red.png differ diff --git a/mods/beds/textures/beds_bed_side1_black.png b/mods/beds/textures/beds_bed_side1_black.png new file mode 100755 index 00000000..656e0f0a Binary files /dev/null and b/mods/beds/textures/beds_bed_side1_black.png differ diff --git a/mods/beds/textures/beds_bed_side1_blue.png b/mods/beds/textures/beds_bed_side1_blue.png new file mode 100755 index 00000000..1a40f003 Binary files /dev/null and b/mods/beds/textures/beds_bed_side1_blue.png differ diff --git a/mods/beds/textures/beds_bed_side1_green.png b/mods/beds/textures/beds_bed_side1_green.png new file mode 100755 index 00000000..deb0324d Binary files /dev/null and b/mods/beds/textures/beds_bed_side1_green.png differ diff --git a/mods/beds/textures/beds_bed_side1_red.png b/mods/beds/textures/beds_bed_side1_red.png new file mode 100755 index 00000000..6b303a56 Binary files /dev/null and b/mods/beds/textures/beds_bed_side1_red.png differ diff --git a/mods/beds/textures/beds_bed_side1_white.png b/mods/beds/textures/beds_bed_side1_white.png new file mode 100755 index 00000000..fdd02c69 Binary files /dev/null and b/mods/beds/textures/beds_bed_side1_white.png differ diff --git a/mods/beds/textures/beds_bed_side2_black.png b/mods/beds/textures/beds_bed_side2_black.png new file mode 100755 index 00000000..b1eba444 Binary files /dev/null and b/mods/beds/textures/beds_bed_side2_black.png differ diff --git a/mods/beds/textures/beds_bed_side2_blue.png b/mods/beds/textures/beds_bed_side2_blue.png new file mode 100755 index 00000000..8e4131f8 Binary files /dev/null and b/mods/beds/textures/beds_bed_side2_blue.png differ diff --git a/mods/beds/textures/beds_bed_side2_green.png b/mods/beds/textures/beds_bed_side2_green.png new file mode 100755 index 00000000..d8c15017 Binary files /dev/null and b/mods/beds/textures/beds_bed_side2_green.png differ diff --git a/mods/beds/textures/beds_bed_side2_red.png b/mods/beds/textures/beds_bed_side2_red.png new file mode 100755 index 00000000..5fc4326e Binary files /dev/null and b/mods/beds/textures/beds_bed_side2_red.png differ diff --git a/mods/beds/textures/beds_bed_side2_white.png b/mods/beds/textures/beds_bed_side2_white.png new file mode 100755 index 00000000..3de378ce Binary files /dev/null and b/mods/beds/textures/beds_bed_side2_white.png differ diff --git a/mods/beds/textures/beds_bed_side_bottom_black.png b/mods/beds/textures/beds_bed_side_bottom_black.png new file mode 100755 index 00000000..b2c676d3 Binary files /dev/null and b/mods/beds/textures/beds_bed_side_bottom_black.png differ diff --git a/mods/beds/textures/beds_bed_side_bottom_blue.png b/mods/beds/textures/beds_bed_side_bottom_blue.png new file mode 100755 index 00000000..3689efea Binary files /dev/null and b/mods/beds/textures/beds_bed_side_bottom_blue.png differ diff --git a/mods/beds/textures/beds_bed_side_bottom_green.png b/mods/beds/textures/beds_bed_side_bottom_green.png new file mode 100755 index 00000000..7f552a10 Binary files /dev/null and b/mods/beds/textures/beds_bed_side_bottom_green.png differ diff --git a/mods/beds/textures/beds_bed_side_bottom_r_black.png b/mods/beds/textures/beds_bed_side_bottom_r_black.png new file mode 100755 index 00000000..526465ce Binary files /dev/null and b/mods/beds/textures/beds_bed_side_bottom_r_black.png differ diff --git a/mods/beds/textures/beds_bed_side_bottom_r_blue.png b/mods/beds/textures/beds_bed_side_bottom_r_blue.png new file mode 100755 index 00000000..93846de0 Binary files /dev/null and b/mods/beds/textures/beds_bed_side_bottom_r_blue.png differ diff --git a/mods/beds/textures/beds_bed_side_bottom_r_green.png b/mods/beds/textures/beds_bed_side_bottom_r_green.png new file mode 100755 index 00000000..63a85acf Binary files /dev/null and b/mods/beds/textures/beds_bed_side_bottom_r_green.png differ diff --git a/mods/beds/textures/beds_bed_side_bottom_r_red.png b/mods/beds/textures/beds_bed_side_bottom_r_red.png new file mode 100755 index 00000000..6f870e80 Binary files /dev/null and b/mods/beds/textures/beds_bed_side_bottom_r_red.png differ diff --git a/mods/beds/textures/beds_bed_side_bottom_r_white.png b/mods/beds/textures/beds_bed_side_bottom_r_white.png new file mode 100755 index 00000000..bd7c5e41 Binary files /dev/null and b/mods/beds/textures/beds_bed_side_bottom_r_white.png differ diff --git a/mods/beds/textures/beds_bed_side_bottom_red.png b/mods/beds/textures/beds_bed_side_bottom_red.png new file mode 100755 index 00000000..dab2c657 Binary files /dev/null and b/mods/beds/textures/beds_bed_side_bottom_red.png differ diff --git a/mods/beds/textures/beds_bed_side_bottom_white.png b/mods/beds/textures/beds_bed_side_bottom_white.png new file mode 100755 index 00000000..1ff23d41 Binary files /dev/null and b/mods/beds/textures/beds_bed_side_bottom_white.png differ diff --git a/mods/beds/textures/beds_bed_side_top.png b/mods/beds/textures/beds_bed_side_top.png new file mode 100755 index 00000000..7ece409b Binary files /dev/null and b/mods/beds/textures/beds_bed_side_top.png differ diff --git a/mods/beds/textures/beds_bed_side_top_r_black.png b/mods/beds/textures/beds_bed_side_top_r_black.png new file mode 100755 index 00000000..3f2f808e Binary files /dev/null and b/mods/beds/textures/beds_bed_side_top_r_black.png differ diff --git a/mods/beds/textures/beds_bed_side_top_r_blue.png b/mods/beds/textures/beds_bed_side_top_r_blue.png new file mode 100755 index 00000000..afa49e40 Binary files /dev/null and b/mods/beds/textures/beds_bed_side_top_r_blue.png differ diff --git a/mods/beds/textures/beds_bed_side_top_r_green.png b/mods/beds/textures/beds_bed_side_top_r_green.png new file mode 100755 index 00000000..20df5234 Binary files /dev/null and b/mods/beds/textures/beds_bed_side_top_r_green.png differ diff --git a/mods/beds/textures/beds_bed_side_top_r_red.png b/mods/beds/textures/beds_bed_side_top_r_red.png new file mode 100755 index 00000000..e876da9f Binary files /dev/null and b/mods/beds/textures/beds_bed_side_top_r_red.png differ diff --git a/mods/beds/textures/beds_bed_side_top_r_white.png b/mods/beds/textures/beds_bed_side_top_r_white.png new file mode 100755 index 00000000..e836a5f2 Binary files /dev/null and b/mods/beds/textures/beds_bed_side_top_r_white.png differ diff --git a/mods/beds/textures/beds_bed_top1_black.png b/mods/beds/textures/beds_bed_top1_black.png new file mode 100755 index 00000000..4b9f912e Binary files /dev/null and b/mods/beds/textures/beds_bed_top1_black.png differ diff --git a/mods/beds/textures/beds_bed_top1_blue.png b/mods/beds/textures/beds_bed_top1_blue.png new file mode 100755 index 00000000..b95ec678 Binary files /dev/null and b/mods/beds/textures/beds_bed_top1_blue.png differ diff --git a/mods/beds/textures/beds_bed_top1_green.png b/mods/beds/textures/beds_bed_top1_green.png new file mode 100755 index 00000000..cc6d9ad8 Binary files /dev/null and b/mods/beds/textures/beds_bed_top1_green.png differ diff --git a/mods/beds/textures/beds_bed_top1_red.png b/mods/beds/textures/beds_bed_top1_red.png new file mode 100755 index 00000000..7ffa5ae4 Binary files /dev/null and b/mods/beds/textures/beds_bed_top1_red.png differ diff --git a/mods/beds/textures/beds_bed_top1_white.png b/mods/beds/textures/beds_bed_top1_white.png new file mode 100755 index 00000000..a2eca77e Binary files /dev/null and b/mods/beds/textures/beds_bed_top1_white.png differ diff --git a/mods/beds/textures/beds_bed_top2_black.png b/mods/beds/textures/beds_bed_top2_black.png new file mode 100755 index 00000000..28c567a4 Binary files /dev/null and b/mods/beds/textures/beds_bed_top2_black.png differ diff --git a/mods/beds/textures/beds_bed_top2_blue.png b/mods/beds/textures/beds_bed_top2_blue.png new file mode 100755 index 00000000..45fec959 Binary files /dev/null and b/mods/beds/textures/beds_bed_top2_blue.png differ diff --git a/mods/beds/textures/beds_bed_top2_green.png b/mods/beds/textures/beds_bed_top2_green.png new file mode 100755 index 00000000..adb02ecd Binary files /dev/null and b/mods/beds/textures/beds_bed_top2_green.png differ diff --git a/mods/beds/textures/beds_bed_top2_red.png b/mods/beds/textures/beds_bed_top2_red.png new file mode 100755 index 00000000..2fe5bf2b Binary files /dev/null and b/mods/beds/textures/beds_bed_top2_red.png differ diff --git a/mods/beds/textures/beds_bed_top2_white.png b/mods/beds/textures/beds_bed_top2_white.png new file mode 100755 index 00000000..d9ee1d7e Binary files /dev/null and b/mods/beds/textures/beds_bed_top2_white.png differ diff --git a/mods/beds/textures/beds_bed_top_bottom_black.png b/mods/beds/textures/beds_bed_top_bottom_black.png new file mode 100755 index 00000000..3d5f61fe Binary files /dev/null and b/mods/beds/textures/beds_bed_top_bottom_black.png differ diff --git a/mods/beds/textures/beds_bed_top_bottom_blue.png b/mods/beds/textures/beds_bed_top_bottom_blue.png new file mode 100755 index 00000000..2f1cfb8f Binary files /dev/null and b/mods/beds/textures/beds_bed_top_bottom_blue.png differ diff --git a/mods/beds/textures/beds_bed_top_bottom_green.png b/mods/beds/textures/beds_bed_top_bottom_green.png new file mode 100755 index 00000000..f6134a98 Binary files /dev/null and b/mods/beds/textures/beds_bed_top_bottom_green.png differ diff --git a/mods/beds/textures/beds_bed_top_bottom_red.png b/mods/beds/textures/beds_bed_top_bottom_red.png new file mode 100755 index 00000000..9b78be63 Binary files /dev/null and b/mods/beds/textures/beds_bed_top_bottom_red.png differ diff --git a/mods/beds/textures/beds_bed_top_bottom_white.png b/mods/beds/textures/beds_bed_top_bottom_white.png new file mode 100755 index 00000000..68555300 Binary files /dev/null and b/mods/beds/textures/beds_bed_top_bottom_white.png differ diff --git a/mods/beds/textures/beds_bed_top_top_black.png b/mods/beds/textures/beds_bed_top_top_black.png new file mode 100755 index 00000000..b6d4ddfc Binary files /dev/null and b/mods/beds/textures/beds_bed_top_top_black.png differ diff --git a/mods/beds/textures/beds_bed_top_top_blue.png b/mods/beds/textures/beds_bed_top_top_blue.png new file mode 100755 index 00000000..1c3dfe89 Binary files /dev/null and b/mods/beds/textures/beds_bed_top_top_blue.png differ diff --git a/mods/beds/textures/beds_bed_top_top_green.png b/mods/beds/textures/beds_bed_top_top_green.png new file mode 100755 index 00000000..a6b13759 Binary files /dev/null and b/mods/beds/textures/beds_bed_top_top_green.png differ diff --git a/mods/beds/textures/beds_bed_top_top_red.png b/mods/beds/textures/beds_bed_top_top_red.png new file mode 100755 index 00000000..e877c808 Binary files /dev/null and b/mods/beds/textures/beds_bed_top_top_red.png differ diff --git a/mods/beds/textures/beds_bed_top_top_white.png b/mods/beds/textures/beds_bed_top_top_white.png new file mode 100755 index 00000000..8667758b Binary files /dev/null and b/mods/beds/textures/beds_bed_top_top_white.png differ diff --git a/mods/beds/textures/beds_bed_white.png b/mods/beds/textures/beds_bed_white.png new file mode 100755 index 00000000..730a3fbf Binary files /dev/null and b/mods/beds/textures/beds_bed_white.png differ diff --git a/mods/beds/textures/beds_transparent.png b/mods/beds/textures/beds_transparent.png new file mode 100755 index 00000000..c7f427aa Binary files /dev/null and b/mods/beds/textures/beds_transparent.png differ diff --git a/mods/beds/textures/fancy_bed_black.png b/mods/beds/textures/fancy_bed_black.png new file mode 100755 index 00000000..54248be9 Binary files /dev/null and b/mods/beds/textures/fancy_bed_black.png differ diff --git a/mods/beds/textures/fancy_bed_blue.png b/mods/beds/textures/fancy_bed_blue.png new file mode 100755 index 00000000..b813547f Binary files /dev/null and b/mods/beds/textures/fancy_bed_blue.png differ diff --git a/mods/beds/textures/fancy_bed_green.png b/mods/beds/textures/fancy_bed_green.png new file mode 100755 index 00000000..b9cd737e Binary files /dev/null and b/mods/beds/textures/fancy_bed_green.png differ diff --git a/mods/beds/textures/fancy_bed_red.png b/mods/beds/textures/fancy_bed_red.png new file mode 100755 index 00000000..9163a476 Binary files /dev/null and b/mods/beds/textures/fancy_bed_red.png differ diff --git a/mods/beds/textures/fancy_bed_white.png b/mods/beds/textures/fancy_bed_white.png new file mode 100755 index 00000000..96ab03f4 Binary files /dev/null and b/mods/beds/textures/fancy_bed_white.png differ diff --git a/mods/beds/textures/simple_bed_black.png b/mods/beds/textures/simple_bed_black.png new file mode 100755 index 00000000..d825ea3c Binary files /dev/null and b/mods/beds/textures/simple_bed_black.png differ diff --git a/mods/beds/textures/simple_bed_blue.png b/mods/beds/textures/simple_bed_blue.png new file mode 100755 index 00000000..95a673a0 Binary files /dev/null and b/mods/beds/textures/simple_bed_blue.png differ diff --git a/mods/beds/textures/simple_bed_green.png b/mods/beds/textures/simple_bed_green.png new file mode 100755 index 00000000..fca855cd Binary files /dev/null and b/mods/beds/textures/simple_bed_green.png differ diff --git a/mods/beds/textures/simple_bed_red.png b/mods/beds/textures/simple_bed_red.png new file mode 100755 index 00000000..93922ec6 Binary files /dev/null and b/mods/beds/textures/simple_bed_red.png differ diff --git a/mods/beds/textures/simple_bed_white.png b/mods/beds/textures/simple_bed_white.png new file mode 100755 index 00000000..4bd4259a Binary files /dev/null and b/mods/beds/textures/simple_bed_white.png differ diff --git a/mods/boats/README.txt b/mods/boats/README.txt old mode 100644 new mode 100755 index 5100481d..1de71678 --- a/mods/boats/README.txt +++ b/mods/boats/README.txt @@ -1,6 +1,6 @@ -Minetest 0.4 mod: boats -======================= -by PilzAdam, slightly modified for NeXt +Minetest Game mod: boats +======================== +by PilzAdam License of source code: ----------------------- diff --git a/mods/boats/depends.txt b/mods/boats/depends.txt old mode 100644 new mode 100755 diff --git a/mods/boats/init.lua b/mods/boats/init.lua index e668ed2d..3306257f 100644 --- a/mods/boats/init.lua +++ b/mods/boats/init.lua @@ -1,49 +1,33 @@ - -- -- Helper functions -- -local function is_water(pos) +boats = {} + +function boats.is_water(pos) local nn = minetest.get_node(pos).name return minetest.get_item_group(nn, "water") ~= 0 end -local function get_sign(i) +function boats.get_sign(i) if i == 0 then return 0 else - return i/math.abs(i) + 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} +function boats.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) +function boats.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_wood.png"}, - - driver = nil, - v = 0, - last_v = 0, - removed = false -} - -function boat.on_rightclick(self, clicker) +function boats.on_rightclick(self, clicker) if not clicker or not clicker:is_player() then return end @@ -53,118 +37,150 @@ function boat.on_rightclick(self, clicker) 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) + local pos = clicker:getpos() + pos = {x = pos.x, y = pos.y + 0.2, z = pos.z} + minetest.after(0.1, function() + clicker:setpos(pos) end) - self.object:setyaw(clicker:get_look_yaw()-math.pi/2) + elseif not self.driver then + local attach = clicker:get_attach() + if attach and attach:get_luaentity() then + local luaentity = attach:get_luaentity() + if luaentity.driver then + luaentity.driver = nil + end + end + clicker:set_detach() end + 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 -function boat.on_activate(self, staticdata, dtime_s) - self.object:set_armor_groups({immortal=1}) + +function boats.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() - return tostring(v) + +function boats.get_staticdata(self) + return tostring(self.v) end -function boat.on_punch(self, puncher, time_from_last_punch, tool_capabilities, direction) + +function boats.on_punch(self, puncher) 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") + if self.driver and puncher == self.driver then + self.driver = nil + puncher:set_detach() + default.player_attached[puncher:get_player_name()] = false + end + if not self.driver then + 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 + local inv = puncher:get_inventory() + if inv:room_for_item("main", "boats:" .. self.parameters.name) then + inv:add_item("main", "boats:" .. self.parameters.name) + else + minetest.add_item(self.object:getpos(), "boats:" .. self.parameters.name) + end + end end end -function boat.on_step(self, dtime) - self.v = get_v(self.object:getvelocity())*get_sign(self.v) +function boats.on_step(self, dtime) + self.v = boats.get_v(self.object:getvelocity()) * boats.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 + self.v = self.v + self.parameters.controls.up or 0.1 + elseif ctrl.down then + self.v = self.v - self.parameters.controls.down or 0.08 end if ctrl.left then - if ctrl.down then - self.object:setyaw(yaw-math.pi/120-dtime*math.pi/120) + if self.v < 0 then + self.object:setyaw(yaw - (1 + dtime) * (0.03 * (self.parameters.controls.rotate or 1))) else - self.object:setyaw(yaw+math.pi/120+dtime*math.pi/120) + self.object:setyaw(yaw + (1 + dtime) * (0.03 * (self.parameters.controls.rotate or 1))) end - end - if ctrl.right then - if ctrl.down then - self.object:setyaw(yaw+math.pi/120+dtime*math.pi/120) + elseif ctrl.right then + if self.v < 0 then + self.object:setyaw(yaw + (1 + dtime) * (0.03 * (self.parameters.controls.rotate or 1))) else - self.object:setyaw(yaw-math.pi/120-dtime*math.pi/120) + self.object:setyaw(yaw - (1 + dtime) * (0.03 * (self.parameters.controls.rotate or 1))) end end end local velo = self.object:getvelocity() - if self.v == 0 and velo.x == 0 and velo.z == 0 then + if self.v == 0 and velo.x == 0 and velo.y == 0 and velo.z == 0 then + self.object:setpos(self.object:getpos()) 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}) + local s = boats.get_sign(self.v) + self.v = self.v - 0.02 * s + if s ~= boats.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) + self.v = 4.5 * boats.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 - if minetest.registered_nodes[minetest.env:get_node(p).name].walkable then + 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 boats.is_water(p) then + local nodedef = minetest.registered_nodes[minetest.get_node(p).name] + if (not nodedef) or nodedef.walkable then self.v = 0 - end - new_acce = {x=0, y=-10, z=0} - 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) + new_acce = {x = 0, y = 1, z = 0} else - new_acce = {x=0, y=0, z=0} + new_acce = {x = 0, y = -9.8, z = 0} -- freefall in air -9.81 + end + new_velo = boats.get_velocity(self.v, self.object:getyaw(), + self.object:getvelocity().y) + self.object:setpos(self.object:getpos()) + else + p.y = p.y + 1 + if boats.is_water(p) then + local y = self.object:getvelocity().y + if y >= 4.5 then + y = 4.5 + elseif y < 0 then + new_acce = {x = 0, y = 20, z = 0} + else + new_acce = {x = 0, y = 5, z = 0} + end + new_velo = boats.get_velocity(self.v, self.object:getyaw(), y) + self.object:setpos(self.object:getpos()) + else + new_acce = {x = 0, y = 0, z = 0} if math.abs(self.object:getvelocity().y) < 1 then local pos = self.object:getpos() - pos.y = math.floor(pos.y)+0.5 + pos.y = math.floor(pos.y) + 0.5 self.object:setpos(pos) - new_velo = get_velocity(self.v, self.object:getyaw(), 0) + new_velo = boats.get_velocity(self.v, self.object:getyaw(), 0) else - new_velo = get_velocity(self.v, self.object:getyaw(), self.object:getvelocity().y) + new_velo = boats.get_velocity(self.v, self.object:getyaw(), + self.object:getvelocity().y) + self.object:setpos(self.object:getpos()) end end end @@ -172,37 +188,148 @@ function boat.on_step(self, dtime) self.object:setacceleration(new_acce) end -minetest.register_entity("boats:boat", boat) +boats.register_boat = function(parameters) + minetest.register_entity("boats:" .. parameters.name, { + physical = true, + collisionbox = {-0.5, -0.35, -0.5, 0.5, 0.3, 0.5}, + visual = "mesh", + mesh = "boat.obj", + textures = {parameters.texture or "default_wood.png"}, + + parameters = parameters, + driver = nil, + v = 0, + last_v = 0, + removed = false, + + on_rightclick = boats.on_rightclick, + on_activate = boats.on_activate, + get_staticdata = boats.get_staticdata, + on_punch = boats.on_punch, + on_step = boats.on_step + }) + + minetest.register_craftitem("boats:" .. parameters.name, { + description = parameters.description or "Boat", + inventory_image = "boats_" .. parameters.name .. "_inventory.png", + wield_image = "boats_" .. parameters.name .. "_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 boats.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:"..parameters.name) + if not minetest.setting_getbool("creative_mode") then + itemstack:take_item() + end + return itemstack + end, + }) +end -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, +boats.register_boat({ + name = "boat", + texture = "default_wood.png", + controls = { + up = 0.1, + down = 0.08, + rotate = 0.75 + }, + description = "Boat" }) +boats.register_boat({ + name = "race", + texture = "default_gravel.png", + controls = { + up = 0.2, + down = 0.18, + rotate = 1 + }, + description = "Race boat" +}) + +boats.register_boat({ + name = "expert_race", + texture = "default_desert_stone.png", + controls = { + up = 0.25, + down = 0.25, + rotate = 4 + }, + description = "Expert race boat" +}) + + +boats.register_boat({ + name = "water", + texture = "default_water.png", + controls = { + up = 0.3, + down = 0.24, + rotate = 4 + }, + description = "Water boat" +}) + +boats.register_boat({ + name = "moon", + texture = "boats_moon.png", + controls = { + up = 0.5, + down = 0.1, + rotate = 8 + }, + description = "Moon boat" +}) + +-- Craft registrations + +minetest.register_craft({ + output = "boats:moon", + recipe = { + {"default:obsidian", "", "default:obsidian"}, + {"default:dirt", "default:leaves", "default:dirt"}, + }, +}) + +minetest.register_craft({ + output = "boats:expert_race", + recipe = { + {"default:desert_stone", "", "default:desert_stone"}, + {"default:desert_stone", "default:mese", "default:desert_stone"}, + }, +}) + +minetest.register_craft({ + output = "boats:race", + recipe = { + {"default:gravel", "", "default:gravel"}, + {"default:gravel", "default:steelblock", "default:gravel"}, + }, +}) + +minetest.register_craft({ + output = "boats:water", + recipe = { + {"default:glass", "", "default:glass"}, + {"default:glass", "bucket:bucket_water", "default:glass"}, + }, +}) + + minetest.register_craft({ output = "boats:boat", recipe = { - {"", "", ""}, - {"group:wood", "", "group:wood"}, + {"", "", "" }, + {"group:wood", "", "group:wood"}, {"group:wood", "group:wood", "group:wood"}, }, }) diff --git a/mods/boats/models/boat.obj b/mods/boats/models/boat.obj new file mode 100755 index 00000000..8c3424fa --- /dev/null +++ b/mods/boats/models/boat.obj @@ -0,0 +1,3111 @@ +# Blender v2.73 (sub 0) OBJ File: '' +# www.blender.org +v -6.786140 -1.967150 -4.863200 +v -6.786140 -3.034000 -6.001260 +v -6.786140 -3.034000 -4.863200 +v -6.786140 -1.967150 -3.725140 +v -6.786140 -3.034000 -3.725140 +v -6.786140 -1.967150 -6.001260 +v -6.786140 -3.034000 -7.139320 +v -6.786140 -1.967150 -7.139320 +v -6.786140 -3.034000 -8.277380 +v -6.786140 -1.967150 -8.277380 +v -6.786140 -3.034000 -9.415440 +v -6.786140 -1.967150 -9.415440 +v -6.786140 -1.967150 -2.587080 +v -6.786140 -3.034000 -2.587080 +v -6.786140 -1.967150 -1.449020 +v -6.786140 -3.034000 -1.449020 +v -6.786140 -1.967150 -0.310965 +v -6.786140 -3.034000 -0.310965 +v -6.786140 -1.967150 0.827094 +v -6.786140 -3.034000 0.827094 +v -6.786140 -1.967150 1.965150 +v -6.786140 -3.034000 1.965150 +v -6.786140 -1.967150 3.103210 +v -6.786140 -3.034000 3.103210 +v -6.786140 -1.967150 4.241270 +v -6.786140 -3.034000 4.241270 +v -6.786140 -1.967150 5.379330 +v -6.786140 -3.034000 5.379330 +v -6.786140 -1.967150 6.517390 +v -6.786140 -3.034000 6.517390 +v -6.786140 -1.967150 7.655450 +v -6.786140 -3.034000 7.655450 +v -6.786140 -1.967150 8.793510 +v -6.786140 -3.033999 8.793510 +v 5.732520 -1.967150 -8.277380 +v 5.732520 -3.034000 -7.139320 +v 5.732520 -3.034000 -8.277380 +v 5.732520 -1.967150 -9.415440 +v 5.732520 -3.034000 -9.415440 +v 5.732520 -1.967150 -7.139320 +v 5.732520 -3.034000 -6.001260 +v 5.732520 -1.967150 -6.001260 +v 5.732520 -3.034000 -4.863200 +v 5.732520 -1.967150 -4.863200 +v 5.732520 -3.034000 -3.725140 +v 5.732520 -1.967150 -3.725140 +v 5.732520 -3.034000 -2.587080 +v 5.732520 -1.967150 -2.587080 +v 5.732520 -3.034000 -1.449020 +v 5.732520 -1.967150 -1.449020 +v 5.732520 -3.034000 -0.310965 +v 5.732520 -1.967150 -0.310965 +v 5.732520 -3.034000 0.827094 +v 5.732520 -1.967150 0.827094 +v 5.732520 -3.034000 1.965150 +v 5.732520 -1.967150 1.965150 +v 5.732520 -3.034000 3.103210 +v 5.732520 -1.967150 3.103210 +v 5.732520 -3.034000 4.241270 +v 5.732520 -1.967150 4.241270 +v 5.732520 -3.034000 5.379330 +v 5.732520 -1.967150 5.379330 +v 5.732520 -3.034000 6.517390 +v 5.732520 -1.967150 6.517390 +v 5.732520 -3.034000 7.655450 +v 5.732520 -1.967150 7.655450 +v 5.732520 -3.033999 8.793510 +v 5.732520 -1.967150 8.793510 +v -2.233900 -1.967150 -6.001260 +v -2.233900 -3.034000 -7.139320 +v -2.233900 -3.034000 -6.001260 +v -2.233900 -1.967150 -4.863200 +v -2.233900 -3.034000 -4.863200 +v -2.233900 -1.967150 -7.139320 +v -2.233900 -3.034000 -8.277380 +v -2.233900 -1.967150 -8.277380 +v -2.233900 -3.034000 -9.415440 +v -2.233900 -1.967150 -9.415440 +v -2.233900 -1.967150 -3.725140 +v -2.233900 -3.034000 -3.725140 +v -2.233900 -1.967150 -2.587080 +v -2.233900 -3.034000 -2.587080 +v -2.233900 -1.967150 -1.449020 +v -2.233900 -3.034000 -1.449020 +v -2.233900 -1.967150 -0.310965 +v -2.233900 -3.034000 -0.310965 +v -2.233900 -1.967150 0.827094 +v -2.233900 -3.034000 0.827094 +v -2.233900 -1.967150 1.965150 +v -2.233900 -3.034000 1.965150 +v -2.233900 -1.967150 3.103210 +v -2.233900 -3.034000 3.103210 +v -2.233900 -1.967150 4.241270 +v -2.233900 -3.034000 4.241270 +v -2.233900 -1.967150 5.379330 +v -2.233900 -3.034000 5.379330 +v -2.233900 -1.967150 6.517390 +v -2.233900 -3.034000 6.517390 +v -2.233900 -1.967150 7.655450 +v -2.233900 -3.034000 7.655450 +v -2.233900 -1.967150 8.793510 +v -2.233900 -3.033999 8.793510 +v 2.318340 -1.967150 -3.725140 +v 2.318340 -3.034000 -4.863200 +v 2.318340 -3.034000 -3.725140 +v 2.318340 -1.967150 -2.587080 +v 2.318340 -3.034000 -2.587080 +v 2.318340 -1.967150 -4.863200 +v 2.318340 -3.034000 -6.001260 +v 2.318340 -1.967150 -6.001260 +v 2.318340 -3.034000 -7.139320 +v 2.318340 -1.967150 -7.139320 +v 2.318340 -3.034000 -8.277380 +v 2.318340 -1.967150 -8.277380 +v 2.318340 -3.034000 -9.415440 +v 2.318340 -1.967150 -9.415440 +v 2.318340 -1.967150 -1.449020 +v 2.318340 -3.034000 -1.449020 +v 2.318340 -1.967150 -0.310965 +v 2.318340 -3.034000 -0.310965 +v 2.318340 -1.967150 0.827094 +v 2.318340 -3.034000 0.827094 +v 2.318340 -1.967150 1.965150 +v 2.318340 -3.034000 1.965150 +v 2.318340 -1.967150 3.103210 +v 2.318340 -3.034000 3.103210 +v 2.318340 -1.967150 4.241270 +v 2.318340 -3.034000 4.241270 +v 2.318340 -1.967150 5.379330 +v 2.318340 -3.034000 5.379330 +v 2.318340 -1.967150 6.517390 +v 2.318340 -3.034000 6.517390 +v 2.318340 -1.967150 7.655450 +v 2.318340 -3.034000 7.655450 +v 2.318340 -1.967150 8.793510 +v 2.318340 -3.033999 8.793510 +v -3.371960 -1.967150 6.517390 +v -3.371960 -3.034000 7.655450 +v -3.371960 -3.034000 6.517390 +v -3.371960 -1.967150 5.379330 +v -3.371960 -3.034000 5.379330 +v -3.371960 -1.967150 7.655450 +v -3.371960 -3.033999 8.793510 +v -3.371960 -1.967150 8.793510 +v -3.371960 -1.967150 4.241270 +v -3.371960 -3.034000 4.241270 +v -3.371960 -1.967150 3.103210 +v -3.371960 -3.034000 3.103210 +v -3.371960 -1.967150 1.965150 +v -3.371960 -3.034000 1.965150 +v -3.371960 -1.967150 0.827094 +v -3.371960 -3.034000 0.827094 +v -3.371960 -1.967150 -0.310965 +v -3.371960 -3.034000 -0.310965 +v -3.371960 -1.967150 -1.449020 +v -3.371960 -3.034000 -1.449020 +v -3.371960 -1.967150 -2.587080 +v -3.371960 -3.034000 -2.587080 +v -3.371960 -1.967150 -3.725140 +v -3.371960 -3.034000 -3.725140 +v -3.371960 -1.967150 -4.863200 +v -3.371960 -3.034000 -4.863200 +v -3.371960 -1.967150 -6.001260 +v -3.371960 -3.034000 -6.001260 +v -3.371960 -1.967150 -7.139320 +v -3.371960 -3.034000 -7.139320 +v -3.371960 -1.967150 -8.277380 +v -3.371960 -3.034000 -8.277380 +v -3.371960 -1.967150 -9.415440 +v -3.371960 -3.034000 -9.415440 +v 4.594460 -1.967150 8.793510 +v 3.456400 -3.033999 8.793510 +v 4.594460 -3.033999 8.793510 +v 3.456400 -1.967150 8.793510 +v 4.594460 0.276645 8.793510 +v 3.456400 0.276645 8.793510 +v 2.318340 0.276645 8.793510 +v 1.180280 -1.967150 8.793510 +v 3.456400 1.039180 8.793510 +v 4.594460 1.039180 8.793510 +v 5.732520 0.276645 8.793510 +v 5.732520 1.039180 8.793510 +v 6.870580 0.276645 8.793510 +v 6.870580 -1.967150 8.793510 +v 2.318340 1.039180 8.793510 +v 1.180280 0.276645 8.793510 +v 0.042220 0.276645 8.793510 +v 1.180280 1.039180 8.793510 +v 0.042220 -1.967150 8.793510 +v -1.095840 0.276645 8.793510 +v 0.042220 1.039180 8.793510 +v -1.095840 -1.967150 8.793510 +v 0.042220 -3.033999 8.793510 +v -1.095840 -3.033999 8.793510 +v 1.180280 -3.033999 8.793510 +v -2.233900 0.276645 8.793510 +v -4.510020 -1.967150 8.793510 +v -4.510020 -3.033999 8.793510 +v -3.371960 0.276645 8.793510 +v -1.095840 1.039180 8.793510 +v -2.233900 1.039180 8.793510 +v -4.510020 0.276645 8.793510 +v -3.371960 1.039180 8.793510 +v -4.510020 1.039180 8.793510 +v -5.648080 0.276645 8.793510 +v -5.648080 -1.967150 8.793510 +v -5.648080 1.039180 8.793510 +v -6.786140 0.276645 8.793510 +v -5.648080 -3.033999 8.793510 +v -7.786200 0.276645 8.793510 +v -7.786200 -1.967150 8.793510 +v -6.786140 1.039180 8.793510 +v 1.180280 -1.967150 1.965150 +v 1.180280 -3.034000 3.103210 +v 1.180280 -3.034000 1.965150 +v 1.180280 -1.967150 0.827094 +v 1.180280 -3.034000 0.827094 +v 1.180280 -1.967150 3.103210 +v 1.180280 -3.034000 4.241270 +v 1.180280 -1.967150 4.241270 +v 1.180280 -3.034000 5.379330 +v 1.180280 -1.967150 5.379330 +v 1.180280 -3.034000 6.517390 +v 1.180280 -1.967150 6.517390 +v 1.180280 -3.034000 7.655450 +v 1.180280 -1.967150 7.655450 +v 1.180280 -1.967150 -0.310965 +v 1.180280 -3.034000 -0.310965 +v 1.180280 -1.967150 -1.449020 +v 1.180280 -3.034000 -1.449020 +v 1.180280 -1.967150 -2.587080 +v 1.180280 -3.034000 -2.587080 +v 1.180280 -1.967150 -3.725140 +v 1.180280 -3.034000 -3.725140 +v 1.180280 -1.967150 -4.863200 +v 1.180280 -3.034000 -4.863200 +v 1.180280 -1.967150 -6.001260 +v 1.180280 -3.034000 -6.001260 +v 1.180280 -1.967150 -7.139320 +v 1.180280 -3.034000 -7.139320 +v 1.180280 -1.967150 -8.277380 +v 1.180280 -3.034000 -8.277380 +v 1.180280 -1.967150 -9.415440 +v 1.180280 -3.034000 -9.415440 +v 3.456400 -3.034000 -9.415440 +v 3.456400 -1.967150 -9.415440 +v 2.318340 0.276645 -9.415440 +v 1.180280 0.276645 -9.415440 +v 4.594460 -3.034000 -9.415440 +v 4.594460 -1.967150 -9.415440 +v 3.456400 0.276645 -9.415440 +v 2.318340 1.039180 -9.415440 +v 4.594460 0.276645 -9.415440 +v 3.456400 1.039180 -9.415440 +v 4.594460 1.039180 -9.415440 +v 5.732520 0.276645 -9.415440 +v 6.870580 -1.967150 -9.415440 +v 5.732520 1.039180 -9.415440 +v 6.870580 0.276645 -9.415440 +v 0.042220 0.276645 -9.415440 +v 0.042220 1.039180 -9.415440 +v 1.180280 1.039180 -9.415440 +v 0.042220 -1.967150 -9.415440 +v 0.042220 -3.034000 -9.415440 +v -1.095840 -1.967150 -9.415440 +v -1.095840 -3.034000 -9.415440 +v -2.233900 0.276645 -9.415440 +v -1.095840 0.276645 -9.415440 +v -3.371960 0.276645 -9.415440 +v -2.233900 1.039180 -9.415440 +v -1.095840 1.039180 -9.415440 +v -4.510020 0.276645 -9.415440 +v -4.510020 1.039180 -9.415440 +v -3.371960 1.039180 -9.415440 +v -4.510020 -1.967150 -9.415440 +v -5.648080 0.276645 -9.415440 +v -5.648080 1.039180 -9.415440 +v -5.648080 -1.967150 -9.415440 +v -4.510020 -3.034000 -9.415440 +v -6.786140 0.276645 -9.415440 +v -6.786140 1.039180 -9.415440 +v -5.648080 -3.034000 -9.415440 +v -7.786200 -1.967150 -9.415440 +v -7.786200 0.276645 -9.415440 +v 6.870580 -1.967150 7.655450 +v 6.870580 -1.967150 6.517390 +v 6.870580 -1.967150 5.379330 +v 6.870580 -1.967150 4.241270 +v 6.870580 -1.967150 3.103210 +v 6.870580 -1.967150 1.965150 +v 6.870580 -1.967150 0.827094 +v 6.870580 -1.967150 -0.310965 +v 6.870580 -1.967150 -1.449020 +v 6.870580 -1.967150 -2.587080 +v 6.870580 -1.967150 -3.725140 +v 6.870580 -1.967150 -4.863200 +v 6.870580 -1.967150 -6.001260 +v 6.870580 -1.967150 -7.139320 +v 6.870580 -1.967150 -8.277380 +v -5.648080 -3.034000 0.827094 +v -5.648080 -3.034000 -0.310965 +v -5.648080 -3.034000 1.965150 +v -4.510020 -3.034000 1.965150 +v -5.648080 -3.034000 3.103210 +v -4.510020 -3.034000 0.827094 +v -5.648080 -3.034000 4.241270 +v -4.510020 -3.034000 3.103210 +v -4.510020 -3.034000 -0.310965 +v -4.510020 -3.034000 -1.449020 +v -4.510020 -3.034000 -2.587080 +v -5.648080 -3.034000 -1.449020 +v -5.648080 -3.034000 -2.587080 +v -4.510020 -3.034000 -3.725140 +v -5.648080 -3.034000 -3.725140 +v -4.510020 -3.034000 -4.863200 +v -5.648080 -3.034000 -4.863200 +v -4.510020 -3.034000 -6.001260 +v -5.648080 -3.034000 -6.001260 +v -4.510020 -3.034000 -7.139320 +v -5.648080 -3.034000 -7.139320 +v -4.510020 -3.034000 -8.277380 +v -5.648080 -3.034000 -8.277380 +v -4.510020 -3.034000 4.241270 +v -4.510020 -3.034000 5.379330 +v -5.648080 -3.034000 5.379330 +v -5.648080 -3.034000 6.517390 +v -4.510020 -3.034000 6.517390 +v -5.648080 -3.034000 7.655450 +v -4.510020 -3.034000 7.655450 +v -1.095840 -3.034000 0.827094 +v -1.095840 -3.034000 -0.310965 +v -1.095840 -3.034000 1.965150 +v 0.042220 -3.034000 1.965150 +v -1.095840 -3.034000 3.103210 +v 0.042220 -3.034000 0.827094 +v -1.095840 -3.034000 4.241270 +v 0.042220 -3.034000 3.103210 +v 0.042220 -3.034000 -0.310965 +v 0.042220 -3.034000 -1.449020 +v 0.042220 -3.034000 -2.587080 +v -1.095840 -3.034000 -1.449020 +v -1.095840 -3.034000 -2.587080 +v 0.042220 -3.034000 -3.725140 +v -1.095840 -3.034000 -3.725140 +v 0.042220 -3.034000 -4.863200 +v -1.095840 -3.034000 -4.863200 +v 0.042220 -3.034000 -6.001260 +v -1.095840 -3.034000 -6.001260 +v 0.042220 -3.034000 -7.139320 +v -1.095840 -3.034000 -7.139320 +v 0.042220 -3.034000 -8.277380 +v -1.095840 -3.034000 -8.277380 +v 0.042220 -3.034000 4.241270 +v 0.042220 -3.034000 5.379330 +v -1.095840 -3.034000 5.379330 +v -1.095840 -3.034000 6.517390 +v 0.042220 -3.034000 6.517390 +v -1.095840 -3.034000 7.655450 +v 0.042220 -3.034000 7.655450 +v 3.456400 -3.034000 -3.725140 +v 3.456400 -3.034000 -4.863200 +v 3.456400 -3.034000 -2.587080 +v 4.594460 -3.034000 -2.587080 +v 3.456400 -3.034000 -1.449020 +v 4.594460 -3.034000 -3.725140 +v 3.456400 -3.034000 -0.310965 +v 4.594460 -3.034000 -1.449020 +v 4.594460 -3.034000 -4.863200 +v 4.594460 -3.034000 -6.001260 +v 4.594460 -3.034000 -7.139320 +v 3.456400 -3.034000 -6.001260 +v 3.456400 -3.034000 -7.139320 +v 4.594460 -3.034000 -8.277380 +v 3.456400 -3.034000 -8.277380 +v 4.594460 -3.034000 -0.310965 +v 4.594460 -3.034000 0.827094 +v 3.456400 -3.034000 0.827094 +v 3.456400 -3.034000 1.965150 +v 4.594460 -3.034000 1.965150 +v 3.456400 -3.034000 3.103210 +v 4.594460 -3.034000 3.103210 +v 3.456400 -3.034000 4.241270 +v 4.594460 -3.034000 4.241270 +v 3.456400 -3.034000 5.379330 +v 4.594460 -3.034000 5.379330 +v 3.456400 -3.034000 6.517390 +v 4.594460 -3.034000 6.517390 +v 3.456400 -3.034000 7.655450 +v 4.594460 -3.034000 7.655450 +v -2.233900 0.276645 -2.587080 +v -2.233900 1.039180 -1.449020 +v -2.233900 1.039180 -2.587080 +v -2.233900 0.276645 -3.725140 +v -2.233900 1.039180 -3.725140 +v -2.233900 0.276645 -1.449020 +v -2.233900 1.039180 -0.310965 +v -2.233900 0.276645 -0.310965 +v -2.233900 1.039180 0.827094 +v -2.233900 0.276645 0.827094 +v -2.233900 1.039180 1.965150 +v -2.233900 0.276645 1.965150 +v -2.233900 1.039180 3.103210 +v -2.233900 0.276645 3.103210 +v -2.233900 1.039180 4.241270 +v -2.233900 0.276645 4.241270 +v -2.233900 1.039180 5.379330 +v -2.233900 0.276645 5.379330 +v -2.233900 1.039180 6.517390 +v -2.233900 0.276645 6.517390 +v -2.233900 1.039180 7.655450 +v -2.233900 0.276645 7.655450 +v -2.233900 0.276645 -4.863200 +v -2.233900 1.039180 -4.863200 +v -2.233900 0.276645 -6.001260 +v -2.233900 1.039180 -6.001260 +v -2.233900 0.276645 -7.139320 +v -2.233900 1.039180 -7.139320 +v -2.233900 0.276645 -8.277380 +v -2.233900 1.039180 -8.277380 +v 2.318340 0.276645 4.241270 +v 2.318340 1.039180 5.379330 +v 2.318340 1.039180 4.241270 +v 2.318340 0.276645 3.103210 +v 2.318340 1.039180 3.103210 +v 2.318340 0.276645 5.379330 +v 2.318340 1.039180 6.517390 +v 2.318340 0.276645 6.517390 +v 2.318340 1.039180 7.655450 +v 2.318340 0.276645 7.655450 +v 2.318340 0.276645 1.965150 +v 2.318340 1.039180 1.965150 +v 2.318340 0.276645 0.827094 +v 2.318340 1.039180 0.827094 +v 2.318340 0.276645 -0.310965 +v 2.318340 1.039180 -0.310965 +v 2.318340 0.276645 -1.449020 +v 2.318340 1.039180 -1.449020 +v 2.318340 0.276645 -2.587080 +v 2.318340 1.039180 -2.587080 +v 2.318340 0.276645 -3.725140 +v 2.318340 1.039180 -3.725140 +v 2.318340 0.276645 -4.863200 +v 2.318340 1.039180 -4.863200 +v 2.318340 0.276645 -6.001260 +v 2.318340 1.039180 -6.001260 +v 2.318340 0.276645 -7.139320 +v 2.318340 1.039180 -7.139320 +v 2.318340 0.276645 -8.277380 +v 2.318340 1.039180 -8.277380 +v -6.786140 0.276645 6.517390 +v -6.786140 1.039180 7.655450 +v -6.786140 1.039180 6.517390 +v -6.786140 0.276645 5.379330 +v -6.786140 1.039180 5.379330 +v -6.786140 0.276645 7.655450 +v -6.786140 0.276645 4.241270 +v -6.786140 1.039180 4.241270 +v -6.786140 0.276645 3.103210 +v -6.786140 1.039180 3.103210 +v -6.786140 0.276645 1.965150 +v -6.786140 1.039180 1.965150 +v -6.786140 0.276645 0.827094 +v -6.786140 1.039180 0.827094 +v -6.786140 0.276645 -0.310965 +v -6.786140 1.039180 -0.310965 +v -6.786140 0.276645 -1.449020 +v -6.786140 1.039180 -1.449020 +v -6.786140 0.276645 -2.587080 +v -6.786140 1.039180 -2.587080 +v -6.786140 0.276645 -3.725140 +v -6.786140 1.039180 -3.725140 +v -6.786140 0.276645 -4.863200 +v -6.786140 1.039180 -4.863200 +v -6.786140 0.276645 -6.001260 +v -6.786140 1.039180 -6.001260 +v -6.786140 0.276645 -7.139320 +v -6.786140 1.039180 -7.139320 +v -6.786140 0.276645 -8.277380 +v -6.786140 1.039180 -8.277380 +v 1.180280 0.276645 -7.139320 +v 1.180280 1.039180 -8.277380 +v 1.180280 1.039180 -7.139320 +v 1.180280 0.276645 -6.001260 +v 1.180280 1.039180 -6.001260 +v 1.180280 0.276645 -8.277380 +v 1.180280 0.276645 -4.863200 +v 1.180280 1.039180 -4.863200 +v 1.180280 0.276645 -3.725140 +v 1.180280 1.039180 -3.725140 +v 1.180280 0.276645 -2.587080 +v 1.180280 1.039180 -2.587080 +v 1.180280 0.276645 -1.449020 +v 1.180280 1.039180 -1.449020 +v 1.180280 0.276645 -0.310965 +v 1.180280 1.039180 -0.310965 +v 1.180280 0.276645 0.827094 +v 1.180280 1.039180 0.827094 +v 1.180280 0.276645 1.965150 +v 1.180280 1.039180 1.965150 +v 1.180280 0.276645 3.103210 +v 1.180280 1.039180 3.103210 +v 1.180280 0.276645 4.241270 +v 1.180280 1.039180 4.241270 +v 1.180280 0.276645 5.379330 +v 1.180280 1.039180 5.379330 +v 1.180280 0.276645 6.517390 +v 1.180280 1.039180 6.517390 +v 1.180280 0.276645 7.655450 +v 1.180280 1.039180 7.655450 +v 5.732520 0.276645 3.103210 +v 5.732520 1.039180 1.965150 +v 5.732520 1.039180 3.103210 +v 5.732520 0.276645 4.241270 +v 5.732520 1.039180 4.241270 +v 5.732520 0.276645 1.965150 +v 5.732520 1.039180 0.827094 +v 5.732520 0.276645 0.827094 +v 5.732520 1.039180 -0.310965 +v 5.732520 0.276645 -0.310965 +v 5.732520 1.039180 -1.449020 +v 5.732520 0.276645 -1.449020 +v 5.732520 1.039180 -2.587080 +v 5.732520 0.276645 -2.587080 +v 5.732520 1.039180 -3.725140 +v 5.732520 0.276645 -3.725140 +v 5.732520 1.039180 -4.863200 +v 5.732520 0.276645 -4.863200 +v 5.732520 1.039180 -6.001260 +v 5.732520 0.276645 -6.001260 +v 5.732520 1.039180 -7.139320 +v 5.732520 0.276645 -7.139320 +v 5.732520 1.039180 -8.277380 +v 5.732520 0.276645 -8.277380 +v 5.732520 0.276645 5.379330 +v 5.732520 1.039180 5.379330 +v 5.732520 0.276645 6.517390 +v 5.732520 1.039180 6.517390 +v 5.732520 0.276645 7.655450 +v 5.732520 1.039180 7.655450 +v -3.371960 1.039180 7.655450 +v -3.371960 0.276645 7.655450 +v -3.371960 1.039180 6.517390 +v -3.371960 0.276645 6.517390 +v -3.371960 1.039180 5.379330 +v -3.371960 0.276645 5.379330 +v -3.371960 1.039180 4.241270 +v -3.371960 0.276645 4.241270 +v -3.371960 1.039180 3.103210 +v -3.371960 0.276645 3.103210 +v -3.371960 1.039180 1.965150 +v -3.371960 0.276645 1.965150 +v -3.371960 1.039180 0.827094 +v -3.371960 0.276645 0.827094 +v -3.371960 1.039180 -0.310965 +v -3.371960 0.276645 -0.310965 +v -3.371960 1.039180 -1.449020 +v -3.371960 0.276645 -1.449020 +v -3.371960 1.039180 -2.587080 +v -3.371960 0.276645 -2.587080 +v -3.371960 1.039180 -3.725140 +v -3.371960 0.276645 -3.725140 +v -3.371960 1.039180 -4.863200 +v -3.371960 0.276645 -4.863200 +v -3.371960 1.039180 -6.001260 +v -3.371960 0.276645 -6.001260 +v -3.371960 1.039180 -7.139320 +v -3.371960 0.276645 -7.139320 +v -3.371960 1.039180 -8.277380 +v -3.371960 0.276645 -8.277380 +v 6.870580 0.276645 7.655450 +v 6.870580 0.276645 6.517390 +v 6.870580 0.276645 5.379330 +v 6.870580 0.276645 4.241270 +v 6.870580 0.276645 3.103210 +v 6.870580 0.276645 1.965150 +v 6.870580 0.276645 0.827094 +v 6.870580 0.276645 -0.310965 +v 6.870580 0.276645 -1.449020 +v 6.870580 0.276645 -2.587080 +v 6.870580 0.276645 -3.725140 +v 6.870580 0.276645 -4.863200 +v 6.870580 0.276645 -6.001260 +v 6.870580 0.276645 -7.139320 +v 6.870580 0.276645 -8.277380 +v -1.095840 0.276645 -10.802900 +v -1.095840 -1.967150 -10.802900 +v -1.095840 0.276644 -12.034100 +v -1.095840 -1.967150 -12.034100 +v -1.095840 -4.601110 -10.802900 +v -1.095840 -4.601110 -12.034100 +v -1.095840 -4.601110 -9.415440 +v -1.095840 1.039180 -10.802900 +v -1.095840 1.039180 -12.034100 +v -1.095840 2.768579 -10.802900 +v -1.095840 2.768579 -12.034100 +v -1.095840 3.746069 -10.802900 +v -1.095840 2.768580 -7.883420 +v -1.095840 3.746069 -12.034100 +v -1.095840 3.746070 -7.883420 +v -1.095840 0.276644 -14.284900 +v -1.095840 -1.967151 -14.284900 +v -1.095840 -4.601110 -14.284900 +v 0.042220 -1.967150 -12.034100 +v 0.042220 -4.601110 -10.802900 +v 0.042220 -4.601110 -12.034100 +v 0.042220 -4.601110 -14.284900 +v 0.042220 -1.967150 -10.802900 +v 0.042220 -4.601110 -9.415440 +v 0.042220 0.276645 -10.802900 +v 0.042220 1.039180 -10.802900 +v 0.042220 0.276644 -12.034100 +v 0.042220 1.039180 -12.034100 +v 0.042220 2.768579 -12.034100 +v 0.042220 2.768579 -10.802900 +v 0.042220 -1.967151 -14.284900 +v 0.042220 0.276644 -14.284900 +v 0.042220 3.746069 -12.034100 +v 0.042220 3.746069 -10.802900 +v 0.042220 3.746070 -7.883420 +v 0.042220 2.768580 -7.883420 +v -7.786200 -1.967150 -8.277380 +v -7.786200 -1.967150 -7.139320 +v -7.786200 -1.967150 -6.001260 +v -7.786200 -1.967150 -4.863200 +v -7.786200 -1.967150 -3.725140 +v -7.786200 -1.967150 -2.587080 +v -7.786200 -1.967150 -1.449020 +v -7.786200 -1.967150 -0.310965 +v -7.786200 -1.967150 0.827094 +v -7.786200 -1.967150 1.965150 +v -7.786200 -1.967150 3.103210 +v -7.786200 -1.967150 4.241270 +v -7.786200 -1.967150 5.379330 +v -7.786200 -1.967150 6.517390 +v -7.786200 -1.967150 7.655450 +v -7.786200 0.276645 3.103210 +v -7.786200 0.276645 4.241270 +v -7.786200 0.276645 5.379330 +v -7.786200 0.276645 1.965150 +v -7.786200 0.276645 0.827094 +v -7.786200 0.276645 -0.310965 +v -7.786200 0.276645 -1.449020 +v -7.786200 0.276645 -2.587080 +v -7.786200 0.276645 -3.725140 +v -7.786200 0.276645 -4.863200 +v -7.786200 0.276645 -6.001260 +v -7.786200 0.276645 -7.139320 +v -7.786200 0.276645 -8.277380 +v -7.786200 0.276645 6.517390 +v -7.786200 0.276645 7.655450 +v 0.042220 1.039180 7.655450 +v 0.042220 1.039180 6.517390 +v -1.095840 1.039180 7.655450 +v 0.042220 1.039180 5.379330 +v -1.095840 1.039180 6.517390 +v -1.095840 1.039180 5.379330 +v 0.042220 1.039180 4.241270 +v -1.095840 1.039180 4.241270 +v 0.042220 1.039180 3.103210 +v -1.095840 1.039180 3.103210 +v 0.042220 1.039180 1.965150 +v -1.095840 1.039180 1.965150 +v 0.042220 1.039180 0.827094 +v -1.095840 1.039180 0.827094 +v 0.042220 1.039180 -0.310965 +v -1.095840 1.039180 -0.310965 +v 0.042220 1.039180 -1.449020 +v -1.095840 1.039180 -1.449020 +v 0.042220 1.039180 -2.587080 +v -1.095840 1.039180 -2.587080 +v 0.042220 1.039180 -3.725140 +v -1.095840 1.039180 -3.725140 +v 0.042220 1.039180 -4.863200 +v -1.095840 1.039180 -4.863200 +v 0.042220 1.039180 -6.001260 +v -1.095840 1.039180 -6.001260 +v 0.042220 1.039180 -7.139320 +v -1.095840 1.039180 -7.139320 +v 0.042220 1.039180 -8.277380 +v -1.095840 1.039180 -8.277380 +v -4.510020 1.039180 7.655450 +v -4.510020 1.039180 6.517390 +v -5.648080 1.039180 7.655450 +v -4.510020 1.039180 5.379330 +v -5.648080 1.039180 6.517390 +v -5.648080 1.039180 5.379330 +v -4.510020 1.039180 4.241270 +v -5.648080 1.039180 4.241270 +v -4.510020 1.039180 3.103210 +v -5.648080 1.039180 3.103210 +v -4.510020 1.039180 1.965150 +v -5.648080 1.039180 1.965150 +v -4.510020 1.039180 0.827094 +v -5.648080 1.039180 0.827094 +v -4.510020 1.039180 -0.310965 +v -5.648080 1.039180 -0.310965 +v -4.510020 1.039180 -1.449020 +v -5.648080 1.039180 -1.449020 +v -4.510020 1.039180 -2.587080 +v -5.648080 1.039180 -2.587080 +v -4.510020 1.039180 -3.725140 +v -5.648080 1.039180 -3.725140 +v -4.510020 1.039180 -4.863200 +v -5.648080 1.039180 -4.863200 +v -4.510020 1.039180 -6.001260 +v -5.648080 1.039180 -6.001260 +v -4.510020 1.039180 -7.139320 +v -5.648080 1.039180 -7.139320 +v -4.510020 1.039180 -8.277380 +v -5.648080 1.039180 -8.277380 +v 4.594460 1.039180 7.655450 +v 4.594460 1.039180 6.517390 +v 3.456400 1.039180 7.655450 +v 4.594460 1.039180 5.379330 +v 3.456400 1.039180 6.517390 +v 3.456400 1.039180 5.379330 +v 4.594460 1.039180 4.241270 +v 3.456400 1.039180 4.241270 +v 4.594460 1.039180 3.103210 +v 3.456400 1.039180 3.103210 +v 4.594460 1.039180 1.965150 +v 3.456400 1.039180 1.965150 +v 4.594460 1.039180 0.827094 +v 3.456400 1.039180 0.827094 +v 4.594460 1.039180 -0.310965 +v 3.456400 1.039180 -0.310965 +v 4.594460 1.039180 -1.449020 +v 3.456400 1.039180 -1.449020 +v 4.594460 1.039180 -2.587080 +v 3.456400 1.039180 -2.587080 +v 4.594460 1.039180 -3.725140 +v 3.456400 1.039180 -3.725140 +v 4.594460 1.039180 -4.863200 +v 3.456400 1.039180 -4.863200 +v 4.594460 1.039180 -6.001260 +v 3.456400 1.039180 -6.001260 +v 4.594460 1.039180 -7.139320 +v 3.456400 1.039180 -7.139320 +v 4.594460 1.039180 -8.277380 +v 3.456400 1.039180 -8.277380 +vt 0.116019 0.974315 +vt 0.087066 0.947167 +vt 0.116022 0.947170 +vt 0.144976 0.974318 +vt 0.144979 0.947173 +vt 0.087063 0.974311 +vt 0.058110 0.947165 +vt 0.058107 0.974308 +vt 0.029155 0.947162 +vt 0.029152 0.974306 +vt 0.000199 0.947159 +vt 0.000197 0.974303 +vt 0.173933 0.974322 +vt 0.173936 0.947177 +vt 0.202891 0.974326 +vt 0.202894 0.947180 +vt 0.231849 0.974330 +vt 0.231853 0.947184 +vt 0.260808 0.974334 +vt 0.260812 0.947187 +vt 0.289768 0.974338 +vt 0.289772 0.947190 +vt 0.318729 0.974342 +vt 0.318732 0.947194 +vt 0.347690 0.974345 +vt 0.347693 0.947196 +vt 0.376652 0.974348 +vt 0.376654 0.947199 +vt 0.405614 0.974351 +vt 0.405616 0.947201 +vt 0.434577 0.974353 +vt 0.434578 0.947203 +vt 0.463539 0.974355 +vt 0.463541 0.947205 +vt 0.029160 0.492913 +vt 0.058118 0.520059 +vt 0.029160 0.520059 +vt 0.000202 0.492913 +vt 0.000202 0.520059 +vt 0.058118 0.492913 +vt 0.087076 0.520059 +vt 0.087076 0.492913 +vt 0.116034 0.520059 +vt 0.116034 0.492914 +vt 0.144992 0.520060 +vt 0.144992 0.492914 +vt 0.173949 0.520060 +vt 0.173950 0.492914 +vt 0.202907 0.520060 +vt 0.202907 0.492915 +vt 0.231864 0.520060 +vt 0.231865 0.492915 +vt 0.260822 0.520061 +vt 0.260822 0.492916 +vt 0.289779 0.520061 +vt 0.289778 0.492916 +vt 0.318735 0.520060 +vt 0.318735 0.492916 +vt 0.347692 0.520060 +vt 0.347691 0.492915 +vt 0.376649 0.520059 +vt 0.376648 0.492915 +vt 0.405605 0.520058 +vt 0.405604 0.492914 +vt 0.434561 0.520056 +vt 0.434560 0.492912 +vt 0.463517 0.520055 +vt 0.463516 0.492911 +vt 0.087075 0.804197 +vt 0.058119 0.777052 +vt 0.087076 0.777053 +vt 0.116032 0.804198 +vt 0.116033 0.777053 +vt 0.058119 0.804197 +vt 0.029163 0.777052 +vt 0.029163 0.804196 +vt 0.000207 0.777052 +vt 0.000207 0.804196 +vt 0.144989 0.804200 +vt 0.144990 0.777054 +vt 0.173947 0.804201 +vt 0.173948 0.777055 +vt 0.202905 0.804202 +vt 0.202906 0.777056 +vt 0.231863 0.804203 +vt 0.231864 0.777057 +vt 0.260822 0.804204 +vt 0.260822 0.777057 +vt 0.289780 0.804205 +vt 0.289781 0.777058 +vt 0.318740 0.804205 +vt 0.318740 0.777058 +vt 0.347700 0.804206 +vt 0.347700 0.777058 +vt 0.376660 0.804206 +vt 0.376659 0.777058 +vt 0.405620 0.804205 +vt 0.405620 0.777057 +vt 0.434581 0.804205 +vt 0.434580 0.777056 +vt 0.463543 0.804203 +vt 0.463541 0.777054 +vt 0.144991 0.634078 +vt 0.116033 0.606933 +vt 0.144991 0.606933 +vt 0.173949 0.634079 +vt 0.173949 0.606933 +vt 0.116034 0.634078 +vt 0.087076 0.606933 +vt 0.087076 0.634079 +vt 0.058118 0.606933 +vt 0.058118 0.634079 +vt 0.029160 0.606933 +vt 0.029160 0.634079 +vt 0.000202 0.606933 +vt 0.000202 0.634080 +vt 0.202907 0.634079 +vt 0.202907 0.606933 +vt 0.231864 0.634078 +vt 0.231864 0.606933 +vt 0.260822 0.634078 +vt 0.260822 0.606933 +vt 0.289780 0.634078 +vt 0.289780 0.606932 +vt 0.318738 0.634077 +vt 0.318737 0.606932 +vt 0.347696 0.634077 +vt 0.347695 0.606931 +vt 0.376653 0.634076 +vt 0.376652 0.606930 +vt 0.405611 0.634074 +vt 0.405609 0.606928 +vt 0.434569 0.634072 +vt 0.434567 0.606927 +vt 0.463527 0.634069 +vt 0.463524 0.606924 +vt 0.405621 0.833166 +vt 0.434582 0.860316 +vt 0.405620 0.860316 +vt 0.376660 0.833166 +vt 0.376659 0.860315 +vt 0.434582 0.833166 +vt 0.463545 0.860317 +vt 0.463544 0.833166 +vt 0.347699 0.833166 +vt 0.347698 0.860314 +vt 0.318739 0.833165 +vt 0.318738 0.860313 +vt 0.289780 0.833164 +vt 0.289778 0.860311 +vt 0.260820 0.833163 +vt 0.260819 0.860309 +vt 0.231862 0.833161 +vt 0.231860 0.860308 +vt 0.202903 0.833160 +vt 0.202902 0.860306 +vt 0.173946 0.833158 +vt 0.173944 0.860304 +vt 0.144988 0.833157 +vt 0.144987 0.860302 +vt 0.116031 0.833155 +vt 0.116029 0.860300 +vt 0.087074 0.833154 +vt 0.087073 0.860299 +vt 0.058118 0.833153 +vt 0.058116 0.860297 +vt 0.029162 0.833152 +vt 0.029161 0.860295 +vt 0.000206 0.833151 +vt 0.000205 0.860294 +vt 0.662141 0.076691 +vt 0.691099 0.103837 +vt 0.662141 0.103837 +vt 0.633183 0.076691 +vt 0.633183 0.103837 +vt 0.691099 0.076691 +vt 0.720057 0.103837 +vt 0.720058 0.076691 +vt 0.662141 0.019597 +vt 0.691100 0.019597 +vt 0.720058 0.019597 +vt 0.749016 0.076691 +vt 0.691100 0.000194 +vt 0.662142 0.000194 +vt 0.633183 0.019597 +vt 0.633183 0.000194 +vt 0.604225 0.019597 +vt 0.604225 0.076691 +vt 0.720058 0.000194 +vt 0.749016 0.019597 +vt 0.777974 0.019597 +vt 0.749016 0.000195 +vt 0.777974 0.076691 +vt 0.806932 0.019597 +vt 0.777974 0.000195 +vt 0.806932 0.076691 +vt 0.777974 0.103837 +vt 0.806932 0.103837 +vt 0.749016 0.103837 +vt 0.835890 0.103837 +vt 0.835890 0.076691 +vt 0.864848 0.076691 +vt 0.835890 0.019597 +vt 0.893806 0.076691 +vt 0.893806 0.103837 +vt 0.864848 0.103837 +vt 0.864848 0.019597 +vt 0.806932 0.000195 +vt 0.835890 0.000195 +vt 0.893806 0.019597 +vt 0.864848 0.000195 +vt 0.893806 0.000194 +vt 0.922764 0.019597 +vt 0.922764 0.076691 +vt 0.922764 0.000194 +vt 0.951722 0.019597 +vt 0.951722 0.076691 +vt 0.951722 0.103837 +vt 0.922764 0.103837 +vt 0.977169 0.019597 +vt 0.977169 0.076690 +vt 0.951722 0.000194 +vt 0.289780 0.663036 +vt 0.318739 0.690182 +vt 0.289781 0.690182 +vt 0.260822 0.663036 +vt 0.260823 0.690182 +vt 0.318739 0.663035 +vt 0.347698 0.690181 +vt 0.347697 0.663035 +vt 0.376656 0.690180 +vt 0.376655 0.663033 +vt 0.405615 0.690178 +vt 0.405613 0.663032 +vt 0.434574 0.690176 +vt 0.434571 0.663030 +vt 0.463533 0.690173 +vt 0.463530 0.663027 +vt 0.231865 0.663036 +vt 0.231865 0.690182 +vt 0.202907 0.663036 +vt 0.202907 0.690182 +vt 0.173949 0.663036 +vt 0.173949 0.690182 +vt 0.144991 0.663036 +vt 0.144991 0.690182 +vt 0.116034 0.663036 +vt 0.116034 0.690182 +vt 0.087076 0.663036 +vt 0.087076 0.690182 +vt 0.058118 0.663036 +vt 0.058119 0.690182 +vt 0.029161 0.663037 +vt 0.029162 0.690182 +vt 0.000203 0.663038 +vt 0.000205 0.690183 +vt 0.579762 0.491109 +vt 0.550803 0.463966 +vt 0.579760 0.463963 +vt 0.550805 0.491111 +vt 0.579767 0.548202 +vt 0.608720 0.491107 +vt 0.608724 0.548199 +vt 0.521845 0.463968 +vt 0.521847 0.491114 +vt 0.550809 0.548204 +vt 0.579768 0.567604 +vt 0.521852 0.548206 +vt 0.550811 0.567606 +vt 0.492890 0.491116 +vt 0.492888 0.463971 +vt 0.521853 0.567608 +vt 0.492895 0.548208 +vt 0.463933 0.491118 +vt 0.492896 0.567610 +vt 0.463938 0.548210 +vt 0.637682 0.548197 +vt 0.637683 0.567600 +vt 0.608726 0.567602 +vt 0.637678 0.491105 +vt 0.608718 0.463961 +vt 0.637676 0.463959 +vt 0.666636 0.491103 +vt 0.666635 0.463957 +vt 0.695594 0.491102 +vt 0.695595 0.548197 +vt 0.666637 0.548197 +vt 0.695593 0.463956 +vt 0.724553 0.491102 +vt 0.724554 0.548197 +vt 0.695596 0.567600 +vt 0.666637 0.567600 +vt 0.753512 0.548197 +vt 0.753512 0.567600 +vt 0.724554 0.567600 +vt 0.753512 0.491102 +vt 0.724553 0.463955 +vt 0.782471 0.548197 +vt 0.782471 0.567600 +vt 0.782471 0.491102 +vt 0.753512 0.463955 +vt 0.811429 0.548197 +vt 0.811429 0.567600 +vt 0.782471 0.463955 +vt 0.811430 0.491102 +vt 0.836877 0.491102 +vt 0.836877 0.548197 +vt 0.811430 0.463955 +vt 0.434558 0.463956 +vt 0.405603 0.463958 +vt 0.463514 0.463955 +vt 0.376647 0.463959 +vt 0.347691 0.463959 +vt 0.318735 0.463959 +vt 0.289779 0.463959 +vt 0.260822 0.463959 +vt 0.231865 0.463958 +vt 0.202908 0.463957 +vt 0.173950 0.463956 +vt 0.144992 0.463956 +vt 0.116034 0.463956 +vt 0.087076 0.463955 +vt 0.058118 0.463955 +vt 0.029160 0.463955 +vt 0.000202 0.463955 +vt 0.260815 0.918228 +vt 0.231856 0.918225 +vt 0.289774 0.918230 +vt 0.289777 0.889271 +vt 0.318734 0.918233 +vt 0.260817 0.889269 +vt 0.347695 0.918235 +vt 0.318737 0.889273 +vt 0.231858 0.889266 +vt 0.202900 0.889264 +vt 0.173942 0.889262 +vt 0.202897 0.918222 +vt 0.173939 0.918219 +vt 0.144984 0.889259 +vt 0.144982 0.918216 +vt 0.116028 0.889257 +vt 0.116025 0.918214 +vt 0.087071 0.889255 +vt 0.087069 0.918211 +vt 0.058115 0.889253 +vt 0.058113 0.918209 +vt 0.029159 0.889251 +vt 0.029157 0.918206 +vt 0.000204 0.889249 +vt 0.000202 0.918204 +vt 0.347697 0.889274 +vt 0.376658 0.889276 +vt 0.376656 0.918237 +vt 0.405618 0.918239 +vt 0.405619 0.889277 +vt 0.434580 0.918241 +vt 0.434581 0.889278 +vt 0.463543 0.918242 +vt 0.463544 0.889279 +vt 0.260823 0.748099 +vt 0.231864 0.748098 +vt 0.289781 0.748099 +vt 0.289781 0.719140 +vt 0.318740 0.748099 +vt 0.260823 0.719140 +vt 0.347699 0.748099 +vt 0.318740 0.719140 +vt 0.231865 0.719140 +vt 0.202907 0.719140 +vt 0.173949 0.719140 +vt 0.202906 0.748098 +vt 0.173948 0.748097 +vt 0.144991 0.719139 +vt 0.144991 0.748097 +vt 0.116034 0.719139 +vt 0.116033 0.748096 +vt 0.087076 0.719139 +vt 0.087076 0.748096 +vt 0.058119 0.719139 +vt 0.058119 0.748096 +vt 0.029162 0.719139 +vt 0.029163 0.748096 +vt 0.000206 0.719140 +vt 0.000207 0.748096 +vt 0.347698 0.719140 +vt 0.376657 0.719139 +vt 0.376659 0.748098 +vt 0.405618 0.748097 +vt 0.405617 0.719137 +vt 0.434578 0.748095 +vt 0.434576 0.719135 +vt 0.463539 0.748093 +vt 0.463536 0.719133 +vt 0.144991 0.577975 +vt 0.116033 0.577975 +vt 0.173949 0.577975 +vt 0.173949 0.549017 +vt 0.202907 0.577975 +vt 0.144991 0.549017 +vt 0.231864 0.577975 +vt 0.202907 0.549018 +vt 0.116034 0.549017 +vt 0.087076 0.549017 +vt 0.058118 0.549017 +vt 0.087076 0.577975 +vt 0.058118 0.577975 +vt 0.029160 0.549017 +vt 0.029160 0.577975 +vt 0.000202 0.549017 +vt 0.000202 0.577975 +vt 0.231864 0.549018 +vt 0.260822 0.549018 +vt 0.260822 0.577975 +vt 0.289779 0.577975 +vt 0.289779 0.549018 +vt 0.318736 0.577974 +vt 0.318736 0.549017 +vt 0.347694 0.577974 +vt 0.347693 0.549017 +vt 0.376651 0.577973 +vt 0.376650 0.549016 +vt 0.405608 0.577971 +vt 0.405606 0.549014 +vt 0.434565 0.577969 +vt 0.434563 0.549013 +vt 0.463521 0.577967 +vt 0.463519 0.549011 +vt 0.237437 0.289790 +vt 0.256842 0.260831 +vt 0.256841 0.289791 +vt 0.237435 0.318750 +vt 0.256839 0.318751 +vt 0.237438 0.260831 +vt 0.256843 0.231873 +vt 0.237440 0.231872 +vt 0.256844 0.202915 +vt 0.237441 0.202914 +vt 0.256845 0.173957 +vt 0.237443 0.173956 +vt 0.256846 0.145001 +vt 0.237444 0.145000 +vt 0.256847 0.116044 +vt 0.237446 0.116043 +vt 0.256848 0.087089 +vt 0.237447 0.087088 +vt 0.256849 0.058134 +vt 0.237449 0.058133 +vt 0.256850 0.029180 +vt 0.237450 0.029179 +vt 0.256852 0.000226 +vt 0.237452 0.000225 +vt 0.237433 0.347711 +vt 0.256839 0.347712 +vt 0.237432 0.376673 +vt 0.256838 0.376674 +vt 0.237431 0.405636 +vt 0.256837 0.405637 +vt 0.237430 0.434601 +vt 0.256837 0.434601 +vt 0.237429 0.463567 +vt 0.256838 0.463567 +vt 0.392072 0.116043 +vt 0.411472 0.087086 +vt 0.411474 0.116042 +vt 0.392074 0.144999 +vt 0.411476 0.144998 +vt 0.392071 0.087087 +vt 0.411469 0.058130 +vt 0.392068 0.058132 +vt 0.411467 0.029175 +vt 0.392066 0.029177 +vt 0.411463 0.000221 +vt 0.392064 0.000223 +vt 0.392076 0.173956 +vt 0.411478 0.173955 +vt 0.392077 0.202913 +vt 0.411480 0.202912 +vt 0.392079 0.231871 +vt 0.411481 0.231870 +vt 0.392080 0.260829 +vt 0.411483 0.260828 +vt 0.392082 0.289788 +vt 0.411485 0.289787 +vt 0.392084 0.318747 +vt 0.411488 0.318746 +vt 0.392086 0.347707 +vt 0.411490 0.347705 +vt 0.392089 0.376667 +vt 0.411493 0.376665 +vt 0.392093 0.405628 +vt 0.411497 0.405625 +vt 0.392097 0.434589 +vt 0.411501 0.434585 +vt 0.392102 0.463550 +vt 0.411507 0.463546 +vt 0.082827 0.058117 +vt 0.102232 0.029164 +vt 0.102228 0.058119 +vt 0.082823 0.087072 +vt 0.102224 0.087075 +vt 0.082831 0.029162 +vt 0.102236 0.000209 +vt 0.082835 0.000207 +vt 0.082819 0.116028 +vt 0.102221 0.116031 +vt 0.082815 0.144984 +vt 0.102217 0.144987 +vt 0.082811 0.173940 +vt 0.102213 0.173943 +vt 0.082806 0.202897 +vt 0.102209 0.202900 +vt 0.082802 0.231854 +vt 0.102204 0.231857 +vt 0.082797 0.260812 +vt 0.102200 0.260815 +vt 0.082791 0.289770 +vt 0.102194 0.289774 +vt 0.082785 0.318729 +vt 0.102189 0.318733 +vt 0.082779 0.347689 +vt 0.102183 0.347693 +vt 0.082772 0.376649 +vt 0.102177 0.376654 +vt 0.082764 0.405611 +vt 0.102170 0.405616 +vt 0.082755 0.434573 +vt 0.102162 0.434579 +vt 0.082745 0.463537 +vt 0.102153 0.463544 +vt 0.363131 0.405631 +vt 0.343729 0.434595 +vt 0.343726 0.405633 +vt 0.363129 0.376670 +vt 0.343724 0.376671 +vt 0.363135 0.434593 +vt 0.343733 0.463559 +vt 0.363139 0.463555 +vt 0.363126 0.347709 +vt 0.343722 0.347710 +vt 0.363124 0.318749 +vt 0.343720 0.318750 +vt 0.363123 0.289790 +vt 0.343719 0.289791 +vt 0.363122 0.260831 +vt 0.343718 0.260832 +vt 0.363121 0.231873 +vt 0.343718 0.231873 +vt 0.363120 0.202915 +vt 0.343717 0.202915 +vt 0.363118 0.173957 +vt 0.343716 0.173958 +vt 0.363117 0.145001 +vt 0.343716 0.145001 +vt 0.363116 0.116044 +vt 0.343715 0.116045 +vt 0.363115 0.087089 +vt 0.343714 0.087089 +vt 0.363114 0.058133 +vt 0.343713 0.058134 +vt 0.363112 0.029179 +vt 0.343712 0.029180 +vt 0.363110 0.000226 +vt 0.343711 0.000226 +vt 0.517748 0.144989 +vt 0.498349 0.173948 +vt 0.498346 0.144991 +vt 0.517745 0.116032 +vt 0.498343 0.116034 +vt 0.517751 0.173946 +vt 0.498352 0.202905 +vt 0.517754 0.202903 +vt 0.498355 0.231863 +vt 0.517757 0.231861 +vt 0.498358 0.260820 +vt 0.517760 0.260818 +vt 0.498361 0.289778 +vt 0.517763 0.289776 +vt 0.498364 0.318737 +vt 0.517767 0.318734 +vt 0.498367 0.347695 +vt 0.517770 0.347693 +vt 0.498371 0.376653 +vt 0.517774 0.376651 +vt 0.498375 0.405612 +vt 0.517778 0.405609 +vt 0.498379 0.434570 +vt 0.517782 0.434567 +vt 0.498384 0.463528 +vt 0.517787 0.463525 +vt 0.517742 0.087075 +vt 0.498340 0.087077 +vt 0.517739 0.058119 +vt 0.498337 0.058121 +vt 0.517735 0.029162 +vt 0.498333 0.029165 +vt 0.517731 0.000205 +vt 0.498329 0.000208 +vt 0.208499 0.000223 +vt 0.189096 0.029175 +vt 0.189099 0.000221 +vt 0.208496 0.029177 +vt 0.189093 0.058129 +vt 0.208494 0.058131 +vt 0.189091 0.087084 +vt 0.208492 0.087086 +vt 0.189088 0.116040 +vt 0.208490 0.116042 +vt 0.189086 0.144996 +vt 0.208488 0.144998 +vt 0.189083 0.173953 +vt 0.208486 0.173955 +vt 0.189081 0.202910 +vt 0.208483 0.202912 +vt 0.189078 0.231868 +vt 0.208481 0.231870 +vt 0.189076 0.260827 +vt 0.208479 0.260829 +vt 0.189073 0.289786 +vt 0.208477 0.289788 +vt 0.189070 0.318746 +vt 0.208474 0.318748 +vt 0.189067 0.347707 +vt 0.208472 0.347709 +vt 0.189063 0.376669 +vt 0.208469 0.376671 +vt 0.189060 0.405633 +vt 0.208467 0.405635 +vt 0.189056 0.434597 +vt 0.208464 0.434599 +vt 0.189053 0.463564 +vt 0.208462 0.463566 +vt 0.546692 0.029158 +vt 0.546688 0.000201 +vt 0.546696 0.058115 +vt 0.546699 0.087072 +vt 0.546702 0.116029 +vt 0.546705 0.144986 +vt 0.546709 0.173943 +vt 0.546712 0.202900 +vt 0.546715 0.231858 +vt 0.546718 0.260815 +vt 0.546721 0.289773 +vt 0.546725 0.318731 +vt 0.546728 0.347689 +vt 0.546732 0.376647 +vt 0.546736 0.405605 +vt 0.546740 0.434563 +vt 0.546744 0.463521 +vt 0.779682 0.749443 +vt 0.744378 0.806538 +vt 0.744377 0.749444 +vt 0.713049 0.806539 +vt 0.713048 0.749445 +vt 0.744376 0.682422 +vt 0.713047 0.682423 +vt 0.779683 0.806538 +vt 0.779681 0.682421 +vt 0.779683 0.825941 +vt 0.744379 0.825941 +vt 0.713050 0.825941 +vt 0.744378 0.869946 +vt 0.713050 0.869946 +vt 0.744378 0.894818 +vt 0.818664 0.869946 +vt 0.713050 0.894818 +vt 0.818664 0.894818 +vt 0.655778 0.806540 +vt 0.655777 0.749446 +vt 0.655775 0.682424 +vt 0.569547 0.749447 +vt 0.538217 0.682426 +vt 0.569546 0.682425 +vt 0.626817 0.682425 +vt 0.538218 0.749448 +vt 0.502912 0.682427 +vt 0.502914 0.806542 +vt 0.502913 0.749448 +vt 0.538218 0.806541 +vt 0.502915 0.825944 +vt 0.538219 0.825944 +vt 0.569547 0.806541 +vt 0.569547 0.825944 +vt 0.569546 0.869948 +vt 0.538218 0.869947 +vt 0.626818 0.749446 +vt 0.626819 0.806540 +vt 0.569546 0.894819 +vt 0.538218 0.894819 +vt 0.463933 0.894818 +vt 0.463933 0.869946 +vt 0.603794 0.116022 +vt 0.603790 0.087065 +vt 0.603797 0.144979 +vt 0.603801 0.173936 +vt 0.603804 0.202894 +vt 0.603808 0.231851 +vt 0.603811 0.260809 +vt 0.603814 0.289766 +vt 0.603818 0.318724 +vt 0.603822 0.347682 +vt 0.603825 0.376640 +vt 0.603829 0.405597 +vt 0.603833 0.434555 +vt 0.603837 0.463513 +vt 0.603787 0.058108 +vt 0.603783 0.029151 +vt 0.603779 0.000194 +vt 0.029149 0.999750 +vt 0.000194 0.999747 +vt 0.058105 0.999753 +vt 0.087060 0.999756 +vt 0.116016 0.999760 +vt 0.144972 0.999764 +vt 0.173929 0.999768 +vt 0.202887 0.999773 +vt 0.231845 0.999778 +vt 0.260805 0.999783 +vt 0.289765 0.999787 +vt 0.318726 0.999792 +vt 0.347687 0.999795 +vt 0.376649 0.999799 +vt 0.405612 0.999801 +vt 0.434575 0.999804 +vt 0.463537 0.999806 +vt 0.057370 0.144980 +vt 0.057374 0.116024 +vt 0.057379 0.087069 +vt 0.057365 0.173936 +vt 0.057361 0.202893 +vt 0.057355 0.231850 +vt 0.057350 0.260807 +vt 0.057344 0.289765 +vt 0.057338 0.318724 +vt 0.057331 0.347683 +vt 0.057323 0.376643 +vt 0.057314 0.405603 +vt 0.057305 0.434564 +vt 0.057294 0.463526 +vt 0.057383 0.058113 +vt 0.057387 0.029158 +vt 0.057391 0.000203 +vt 0.314758 0.000227 +vt 0.314758 0.029181 +vt 0.285805 0.000227 +vt 0.314758 0.058135 +vt 0.285804 0.029180 +vt 0.314759 0.087090 +vt 0.285804 0.058135 +vt 0.285803 0.087090 +vt 0.314759 0.116045 +vt 0.285803 0.116045 +vt 0.314759 0.145002 +vt 0.285802 0.145001 +vt 0.314759 0.173958 +vt 0.285802 0.173958 +vt 0.314759 0.202916 +vt 0.285802 0.202915 +vt 0.314759 0.231874 +vt 0.285801 0.231873 +vt 0.314760 0.260832 +vt 0.285801 0.260832 +vt 0.314760 0.289791 +vt 0.285800 0.289791 +vt 0.314760 0.318751 +vt 0.285800 0.318751 +vt 0.314761 0.347712 +vt 0.285800 0.347712 +vt 0.314762 0.376673 +vt 0.285800 0.376674 +vt 0.314764 0.405635 +vt 0.285801 0.405637 +vt 0.314766 0.434598 +vt 0.285802 0.434600 +vt 0.314769 0.463562 +vt 0.285804 0.463565 +vt 0.160145 0.000217 +vt 0.160142 0.029172 +vt 0.131191 0.000214 +vt 0.160138 0.058126 +vt 0.131187 0.029168 +vt 0.160135 0.087082 +vt 0.131183 0.058123 +vt 0.131180 0.087078 +vt 0.160132 0.116037 +vt 0.131176 0.116034 +vt 0.160129 0.144994 +vt 0.131173 0.144990 +vt 0.160126 0.173950 +vt 0.131170 0.173947 +vt 0.160123 0.202907 +vt 0.131166 0.202904 +vt 0.160120 0.231865 +vt 0.131162 0.231862 +vt 0.160117 0.260824 +vt 0.131158 0.260820 +vt 0.160113 0.289783 +vt 0.131154 0.289779 +vt 0.160109 0.318743 +vt 0.131149 0.318739 +vt 0.160105 0.347704 +vt 0.131144 0.347699 +vt 0.160101 0.376666 +vt 0.131138 0.376660 +vt 0.160096 0.405629 +vt 0.131132 0.405623 +vt 0.160091 0.434593 +vt 0.131126 0.434587 +vt 0.160085 0.463559 +vt 0.131119 0.463552 +vt 0.469373 0.000213 +vt 0.469377 0.029168 +vt 0.440418 0.000217 +vt 0.469381 0.058124 +vt 0.440421 0.029172 +vt 0.469384 0.087080 +vt 0.440425 0.058127 +vt 0.440428 0.087083 +vt 0.469387 0.116037 +vt 0.440430 0.116039 +vt 0.469389 0.144994 +vt 0.440433 0.144996 +vt 0.469392 0.173951 +vt 0.440435 0.173953 +vt 0.469394 0.202908 +vt 0.440437 0.202910 +vt 0.469397 0.231865 +vt 0.440439 0.231868 +vt 0.469400 0.260823 +vt 0.440442 0.260826 +vt 0.469402 0.289781 +vt 0.440444 0.289784 +vt 0.469405 0.318740 +vt 0.440447 0.318743 +vt 0.469409 0.347699 +vt 0.440450 0.347702 +vt 0.469412 0.376657 +vt 0.440453 0.376661 +vt 0.469416 0.405616 +vt 0.440457 0.405620 +vt 0.469421 0.434575 +vt 0.440461 0.434580 +vt 0.469426 0.463534 +vt 0.440467 0.463540 +vt 0.000206 0.434543 +vt 0.000194 0.463503 +vt 0.000217 0.405584 +vt 0.000226 0.376625 +vt 0.000235 0.347667 +vt 0.000244 0.318709 +vt 0.000251 0.289752 +vt 0.000258 0.260795 +vt 0.000264 0.231838 +vt 0.000270 0.202882 +vt 0.000276 0.173926 +vt 0.000281 0.144971 +vt 0.000285 0.116015 +vt 0.000290 0.087060 +vt 0.000294 0.058105 +vt 0.000299 0.029149 +vt 0.000303 0.000194 +vt 0.666640 0.558125 +vt 0.637681 0.558127 +vt 0.604225 0.133183 +vt 0.639530 0.104225 +vt 0.639530 0.133183 +vt 0.604225 0.104225 +vt 0.661494 0.463564 +vt 0.680897 0.434607 +vt 0.680897 0.463565 +vt 0.724902 0.434608 +vt 0.724902 0.463566 +vt 0.661495 0.434607 +vt 0.749775 0.434608 +vt 0.749774 0.463567 +vt 0.683535 0.104225 +vt 0.683535 0.133183 +vt 0.781104 0.434608 +vt 0.781104 0.463567 +vt 0.855393 0.434608 +vt 0.855393 0.463567 +vt 0.666641 0.593430 +vt 0.637683 0.593431 +vt 0.666643 0.624759 +vt 0.637685 0.624760 +vt 0.666646 0.682031 +vt 0.637688 0.682033 +vt 0.604225 0.463561 +vt 0.604227 0.434604 +vt 0.757821 0.133183 +vt 0.782694 0.104225 +vt 0.782694 0.133183 +vt 0.757821 0.104225 +s off +f 1/1 2/2 3/3 +f 4/4 1/1 3/3 +f 4/4 3/3 5/5 +f 1/1 6/6 2/2 +f 6/6 7/7 2/2 +f 6/6 8/8 7/7 +f 8/8 9/9 7/7 +f 8/8 10/10 9/9 +f 10/10 11/11 9/9 +f 10/10 12/12 11/11 +f 13/13 4/4 5/5 +f 13/13 5/5 14/14 +f 15/15 13/13 14/14 +f 15/15 14/14 16/16 +f 17/17 15/15 16/16 +f 17/17 16/16 18/18 +f 19/19 17/17 18/18 +f 19/19 18/18 20/20 +f 21/21 19/19 20/20 +f 21/21 20/20 22/22 +f 23/23 21/21 22/22 +f 23/23 22/22 24/24 +f 25/25 23/23 24/24 +f 25/25 24/24 26/26 +f 27/27 25/25 26/26 +f 27/27 26/26 28/28 +f 29/29 27/27 28/28 +f 29/29 28/28 30/30 +f 31/31 29/29 30/30 +f 31/31 30/30 32/32 +f 33/33 31/31 32/32 +f 33/33 32/32 34/34 +f 35/35 36/36 37/37 +f 38/38 35/35 37/37 +f 38/38 37/37 39/39 +f 35/35 40/40 36/36 +f 40/40 41/41 36/36 +f 40/40 42/42 41/41 +f 42/42 43/43 41/41 +f 42/42 44/44 43/43 +f 44/44 45/45 43/43 +f 44/44 46/46 45/45 +f 46/46 47/47 45/45 +f 46/46 48/48 47/47 +f 48/48 49/49 47/47 +f 48/48 50/50 49/49 +f 50/50 51/51 49/49 +f 50/50 52/52 51/51 +f 52/52 53/53 51/51 +f 52/52 54/54 53/53 +f 54/54 55/55 53/53 +f 54/54 56/56 55/55 +f 56/56 57/57 55/55 +f 56/56 58/58 57/57 +f 58/58 59/59 57/57 +f 58/58 60/60 59/59 +f 60/60 61/61 59/59 +f 60/60 62/62 61/61 +f 62/62 63/63 61/61 +f 62/62 64/64 63/63 +f 64/64 65/65 63/63 +f 64/64 66/66 65/65 +f 66/66 67/67 65/65 +f 66/66 68/68 67/67 +f 69/69 70/70 71/71 +f 72/72 69/69 71/71 +f 72/72 71/71 73/73 +f 69/69 74/74 70/70 +f 74/74 75/75 70/70 +f 74/74 76/76 75/75 +f 76/76 77/77 75/75 +f 76/76 78/78 77/77 +f 79/79 72/72 73/73 +f 79/79 73/73 80/80 +f 81/81 79/79 80/80 +f 81/81 80/80 82/82 +f 83/83 81/81 82/82 +f 83/83 82/82 84/84 +f 85/85 83/83 84/84 +f 85/85 84/84 86/86 +f 87/87 85/85 86/86 +f 87/87 86/86 88/88 +f 89/89 87/87 88/88 +f 89/89 88/88 90/90 +f 91/91 89/89 90/90 +f 91/91 90/90 92/92 +f 93/93 91/91 92/92 +f 93/93 92/92 94/94 +f 95/95 93/93 94/94 +f 95/95 94/94 96/96 +f 97/97 95/95 96/96 +f 97/97 96/96 98/98 +f 99/99 97/97 98/98 +f 99/99 98/98 100/100 +f 101/101 99/99 100/100 +f 101/101 100/100 102/102 +f 103/103 104/104 105/105 +f 106/106 103/103 105/105 +f 106/106 105/105 107/107 +f 103/103 108/108 104/104 +f 108/108 109/109 104/104 +f 108/108 110/110 109/109 +f 110/110 111/111 109/109 +f 110/110 112/112 111/111 +f 112/112 113/113 111/111 +f 112/112 114/114 113/113 +f 114/114 115/115 113/113 +f 114/114 116/116 115/115 +f 117/117 106/106 107/107 +f 117/117 107/107 118/118 +f 119/119 117/117 118/118 +f 119/119 118/118 120/120 +f 121/121 119/119 120/120 +f 121/121 120/120 122/122 +f 123/123 121/121 122/122 +f 123/123 122/122 124/124 +f 125/125 123/123 124/124 +f 125/125 124/124 126/126 +f 127/127 125/125 126/126 +f 127/127 126/126 128/128 +f 129/129 127/127 128/128 +f 129/129 128/128 130/130 +f 131/131 129/129 130/130 +f 131/131 130/130 132/132 +f 133/133 131/131 132/132 +f 133/133 132/132 134/134 +f 135/135 133/133 134/134 +f 135/135 134/134 136/136 +f 137/137 138/138 139/139 +f 140/140 137/137 139/139 +f 140/140 139/139 141/141 +f 137/137 142/142 138/138 +f 142/142 143/143 138/138 +f 142/142 144/144 143/143 +f 145/145 140/140 141/141 +f 145/145 141/141 146/146 +f 147/147 145/145 146/146 +f 147/147 146/146 148/148 +f 149/149 147/147 148/148 +f 149/149 148/148 150/150 +f 151/151 149/149 150/150 +f 151/151 150/150 152/152 +f 153/153 151/151 152/152 +f 153/153 152/152 154/154 +f 155/155 153/153 154/154 +f 155/155 154/154 156/156 +f 157/157 155/155 156/156 +f 157/157 156/156 158/158 +f 159/159 157/157 158/158 +f 159/159 158/158 160/160 +f 161/161 159/159 160/160 +f 161/161 160/160 162/162 +f 163/163 161/161 162/162 +f 163/163 162/162 164/164 +f 165/165 163/163 164/164 +f 165/165 164/164 166/166 +f 167/167 165/165 166/166 +f 167/167 166/166 168/168 +f 169/169 167/167 168/168 +f 169/169 168/168 170/170 +f 171/171 172/172 173/173 +f 68/174 171/171 173/173 +f 68/174 173/173 67/175 +f 171/171 174/176 172/172 +f 174/176 136/177 172/172 +f 174/176 135/178 136/177 +f 174/176 171/171 175/179 +f 174/176 175/179 176/180 +f 135/178 174/176 176/180 +f 135/178 176/180 177/181 +f 178/182 135/178 177/181 +f 177/181 176/180 179/183 +f 176/180 175/179 180/184 +f 176/180 180/184 179/183 +f 175/179 181/185 182/186 +f 175/179 182/186 180/184 +f 171/171 181/185 175/179 +f 171/171 68/174 181/185 +f 68/174 183/187 181/185 +f 68/174 184/188 183/187 +f 177/181 179/183 185/189 +f 178/182 177/181 186/190 +f 187/191 186/190 188/192 +f 189/193 178/182 186/190 +f 189/193 186/190 187/191 +f 190/194 187/191 191/195 +f 187/191 188/192 191/195 +f 192/196 189/193 187/191 +f 192/196 187/191 190/194 +f 178/182 189/193 193/197 +f 189/193 192/196 194/198 +f 189/193 194/198 193/197 +f 178/182 193/197 195/199 +f 192/196 102/200 194/198 +f 192/196 101/201 102/200 +f 101/201 192/196 190/194 +f 144/202 101/201 196/203 +f 101/201 190/194 196/203 +f 144/202 197/204 198/205 +f 144/202 198/205 143/206 +f 197/204 144/202 199/207 +f 144/202 196/203 199/207 +f 196/203 190/194 200/208 +f 196/203 200/208 201/209 +f 190/194 191/195 200/208 +f 202/210 199/207 203/211 +f 197/204 199/207 202/210 +f 202/210 203/211 204/212 +f 205/213 202/210 204/212 +f 206/214 197/204 202/210 +f 206/214 202/210 205/213 +f 205/213 204/212 207/215 +f 208/216 205/213 207/215 +f 33/217 206/214 205/213 +f 33/217 205/213 208/216 +f 206/214 33/217 34/218 +f 206/214 34/218 209/219 +f 197/204 206/214 209/219 +f 197/204 209/219 198/205 +f 33/217 208/216 210/220 +f 33/217 210/220 211/221 +f 208/216 207/215 212/222 +f 213/223 214/224 215/225 +f 216/226 213/223 215/225 +f 216/226 215/225 217/227 +f 213/223 218/228 214/224 +f 218/228 219/229 214/224 +f 218/228 220/230 219/229 +f 220/230 221/231 219/229 +f 220/230 222/232 221/231 +f 222/232 223/233 221/231 +f 222/232 224/234 223/233 +f 224/234 225/235 223/233 +f 224/234 226/236 225/235 +f 226/236 195/237 225/235 +f 226/236 178/238 195/237 +f 227/239 216/226 217/227 +f 227/239 217/227 228/240 +f 229/241 227/239 228/240 +f 229/241 228/240 230/242 +f 231/243 229/241 230/242 +f 231/243 230/242 232/244 +f 233/245 231/243 232/244 +f 233/245 232/244 234/246 +f 235/247 233/245 234/246 +f 235/247 234/246 236/248 +f 237/249 235/247 236/248 +f 237/249 236/248 238/250 +f 239/251 237/249 238/250 +f 239/251 238/250 240/252 +f 241/253 239/251 240/252 +f 241/253 240/252 242/254 +f 243/255 241/253 242/254 +f 243/255 242/254 244/256 +f 116/257 245/258 115/259 +f 116/257 246/260 245/258 +f 246/260 116/257 247/261 +f 116/257 243/262 248/263 +f 116/257 248/263 247/261 +f 246/260 249/264 245/258 +f 246/260 250/265 249/264 +f 250/265 246/260 251/266 +f 246/260 247/261 251/266 +f 251/266 247/261 252/267 +f 253/268 251/266 254/269 +f 251/266 252/267 254/269 +f 250/265 251/266 253/268 +f 250/265 38/270 39/271 +f 250/265 39/271 249/264 +f 38/270 250/265 253/268 +f 253/268 254/269 255/272 +f 256/273 253/268 255/272 +f 38/270 253/268 256/273 +f 257/274 38/270 256/273 +f 256/273 255/272 258/275 +f 257/274 256/273 259/276 +f 248/263 260/277 261/278 +f 248/263 261/278 262/279 +f 243/262 260/277 248/263 +f 243/262 263/280 260/277 +f 263/280 243/262 244/281 +f 263/280 244/281 264/282 +f 265/283 263/280 264/282 +f 265/283 264/282 266/284 +f 78/285 265/283 266/284 +f 265/283 78/285 267/286 +f 265/283 267/286 268/287 +f 78/285 266/284 77/288 +f 78/285 169/289 269/290 +f 78/285 269/290 267/286 +f 268/287 267/286 270/291 +f 268/287 270/291 271/292 +f 269/290 272/293 273/294 +f 269/290 273/294 274/295 +f 169/289 272/293 269/290 +f 275/296 169/289 170/297 +f 169/289 275/296 272/293 +f 272/293 276/298 277/299 +f 272/293 277/299 273/294 +f 275/296 276/298 272/293 +f 278/300 275/296 279/301 +f 275/296 170/297 279/301 +f 275/296 278/300 276/298 +f 276/298 280/302 281/303 +f 276/298 281/303 277/299 +f 278/300 280/302 276/298 +f 278/300 279/301 282/304 +f 12/305 278/300 282/304 +f 278/300 12/305 280/302 +f 280/302 12/305 283/306 +f 280/302 283/306 284/307 +f 12/305 282/304 11/308 +f 133/133 178/238 226/236 +f 131/131 133/133 226/236 +f 131/131 226/236 224/234 +f 133/133 135/135 178/238 +f 129/129 131/131 224/234 +f 129/129 224/234 222/232 +f 127/127 129/129 222/232 +f 127/127 222/232 220/230 +f 125/125 127/127 220/230 +f 125/125 220/230 218/228 +f 123/123 125/125 218/228 +f 123/123 218/228 213/223 +f 121/121 123/123 213/223 +f 121/121 213/223 216/226 +f 119/119 121/121 216/226 +f 119/119 216/226 227/239 +f 117/117 119/119 227/239 +f 117/117 227/239 229/241 +f 106/106 117/117 229/241 +f 106/106 229/241 231/243 +f 103/103 106/106 231/243 +f 103/103 231/243 233/245 +f 108/108 103/103 233/245 +f 108/108 233/245 235/247 +f 110/110 108/108 235/247 +f 110/110 235/247 237/249 +f 112/112 110/110 237/249 +f 112/112 237/249 239/251 +f 114/114 112/112 239/251 +f 114/114 239/251 241/253 +f 116/116 114/114 241/253 +f 116/116 241/253 243/255 +f 99/99 144/144 142/142 +f 97/97 99/99 142/142 +f 97/97 142/142 137/137 +f 99/99 101/101 144/144 +f 95/95 97/97 137/137 +f 95/95 137/137 140/140 +f 93/93 95/95 140/140 +f 93/93 140/140 145/145 +f 91/91 93/93 145/145 +f 91/91 145/145 147/147 +f 89/89 91/91 147/147 +f 89/89 147/147 149/149 +f 87/87 89/89 149/149 +f 87/87 149/149 151/151 +f 85/85 87/87 151/151 +f 85/85 151/151 153/153 +f 83/83 85/85 153/153 +f 83/83 153/153 155/155 +f 81/81 83/83 155/155 +f 81/81 155/155 157/157 +f 79/79 81/81 157/157 +f 79/79 157/157 159/159 +f 72/72 79/79 159/159 +f 72/72 159/159 161/161 +f 69/69 72/72 161/161 +f 69/69 161/161 163/163 +f 74/74 69/69 163/163 +f 74/74 163/163 165/165 +f 76/76 74/74 165/165 +f 76/76 165/165 167/167 +f 78/78 76/76 167/167 +f 78/78 167/167 169/169 +f 285/309 68/68 66/66 +f 286/310 285/309 66/66 +f 286/310 66/66 64/64 +f 285/309 184/311 68/68 +f 287/312 286/310 64/64 +f 287/312 64/64 62/62 +f 288/313 287/312 62/62 +f 288/313 62/62 60/60 +f 289/314 288/313 60/60 +f 289/314 60/60 58/58 +f 290/315 289/314 58/58 +f 290/315 58/58 56/56 +f 291/316 290/315 56/56 +f 291/316 56/56 54/54 +f 292/317 291/316 54/54 +f 292/317 54/54 52/52 +f 293/318 292/317 52/52 +f 293/318 52/52 50/50 +f 294/319 293/318 50/50 +f 294/319 50/50 48/48 +f 295/320 294/319 48/48 +f 295/320 48/48 46/46 +f 296/321 295/320 46/46 +f 296/321 46/46 44/44 +f 297/322 296/321 44/44 +f 297/322 44/44 42/42 +f 298/323 297/322 42/42 +f 298/323 42/42 40/40 +f 299/324 298/323 40/40 +f 299/324 40/40 35/35 +f 257/325 299/324 35/35 +f 257/325 35/35 38/38 +f 300/326 22/22 20/20 +f 301/327 300/326 20/20 +f 301/327 20/20 18/18 +f 300/326 302/328 22/22 +f 302/328 24/24 22/22 +f 303/329 304/330 302/328 +f 302/328 304/330 24/24 +f 305/331 303/329 302/328 +f 305/331 302/328 300/326 +f 304/330 26/26 24/24 +f 304/330 306/332 26/26 +f 307/333 306/332 304/330 +f 303/329 307/333 304/330 +f 152/152 150/150 303/329 +f 152/152 303/329 305/331 +f 150/150 307/333 303/329 +f 154/154 152/152 305/331 +f 154/154 305/331 308/334 +f 308/334 305/331 300/326 +f 156/156 154/154 308/334 +f 156/156 308/334 309/335 +f 309/335 308/334 301/327 +f 308/334 300/326 301/327 +f 158/158 156/156 309/335 +f 158/158 309/335 310/336 +f 309/335 301/327 311/337 +f 310/336 309/335 311/337 +f 311/337 301/327 18/18 +f 311/337 18/18 16/16 +f 310/336 311/337 312/338 +f 312/338 311/337 16/16 +f 160/160 158/158 310/336 +f 160/160 310/336 313/339 +f 313/339 310/336 312/338 +f 314/340 312/338 14/14 +f 312/338 16/16 14/14 +f 313/339 312/338 314/340 +f 315/341 313/339 314/340 +f 162/162 160/160 313/339 +f 162/162 313/339 315/341 +f 314/340 14/14 5/5 +f 315/341 314/340 316/342 +f 316/342 314/340 5/5 +f 164/164 162/162 315/341 +f 164/164 315/341 317/343 +f 317/343 315/341 316/342 +f 318/344 316/342 3/3 +f 316/342 5/5 3/3 +f 317/343 316/342 318/344 +f 166/166 164/164 317/343 +f 166/166 317/343 319/345 +f 319/345 317/343 318/344 +f 318/344 3/3 2/2 +f 319/345 318/344 320/346 +f 320/346 318/344 2/2 +f 168/168 166/166 319/345 +f 168/168 319/345 321/347 +f 321/347 319/345 320/346 +f 322/348 320/346 7/7 +f 320/346 2/2 7/7 +f 321/347 320/346 322/348 +f 170/170 168/168 321/347 +f 170/170 321/347 279/349 +f 279/349 321/347 322/348 +f 322/348 7/7 9/9 +f 279/349 322/348 282/350 +f 282/350 322/348 9/9 +f 282/350 9/9 11/11 +f 148/148 323/351 307/333 +f 150/150 148/148 307/333 +f 307/333 323/351 306/332 +f 148/148 146/146 323/351 +f 323/351 324/352 325/353 +f 323/351 325/353 306/332 +f 146/146 324/352 323/351 +f 306/332 325/353 28/28 +f 306/332 28/28 26/26 +f 325/353 326/354 30/30 +f 325/353 30/30 28/28 +f 324/352 326/354 325/353 +f 141/141 327/355 324/352 +f 324/352 327/355 326/354 +f 146/146 141/141 324/352 +f 327/355 328/356 326/354 +f 326/354 328/356 32/32 +f 326/354 32/32 30/30 +f 141/141 139/139 327/355 +f 139/139 329/357 327/355 +f 327/355 329/357 328/356 +f 328/356 209/358 34/34 +f 328/356 34/34 32/32 +f 329/357 209/358 328/356 +f 138/138 198/359 329/357 +f 139/139 138/138 329/357 +f 329/357 198/359 209/358 +f 138/138 143/143 198/359 +f 330/360 90/90 88/88 +f 331/361 330/360 88/88 +f 331/361 88/88 86/86 +f 330/360 332/362 90/90 +f 332/362 92/92 90/90 +f 333/363 334/364 332/362 +f 332/362 334/364 92/92 +f 335/365 333/363 332/362 +f 335/365 332/362 330/360 +f 334/364 94/94 92/92 +f 334/364 336/366 94/94 +f 337/367 336/366 334/364 +f 333/363 337/367 334/364 +f 217/227 215/225 333/363 +f 217/227 333/363 335/365 +f 215/225 337/367 333/363 +f 338/368 335/365 330/360 +f 228/240 217/227 335/365 +f 228/240 335/365 338/368 +f 230/242 228/240 338/368 +f 230/242 338/368 339/369 +f 338/368 330/360 331/361 +f 339/369 338/368 331/361 +f 232/244 230/242 339/369 +f 232/244 339/369 340/370 +f 339/369 331/361 341/371 +f 340/370 339/369 341/371 +f 341/371 331/361 86/86 +f 341/371 86/86 84/84 +f 340/370 341/371 342/372 +f 342/372 341/371 84/84 +f 234/246 232/244 340/370 +f 234/246 340/370 343/373 +f 343/373 340/370 342/372 +f 344/374 342/372 82/82 +f 342/372 84/84 82/82 +f 343/373 342/372 344/374 +f 236/248 234/246 343/373 +f 236/248 343/373 345/375 +f 345/375 343/373 344/374 +f 344/374 82/82 80/80 +f 345/375 344/374 346/376 +f 346/376 344/374 80/80 +f 238/250 236/248 345/375 +f 238/250 345/375 347/377 +f 347/377 345/375 346/376 +f 348/378 346/376 73/73 +f 346/376 80/80 73/73 +f 347/377 346/376 348/378 +f 240/252 238/250 347/377 +f 240/252 347/377 349/379 +f 349/379 347/377 348/378 +f 348/378 73/73 71/71 +f 349/379 348/378 350/380 +f 350/380 348/378 71/71 +f 242/254 240/252 349/379 +f 242/254 349/379 351/381 +f 351/381 349/379 350/380 +f 352/382 350/380 70/70 +f 350/380 71/71 70/70 +f 351/381 350/380 352/382 +f 244/256 242/254 351/381 +f 244/256 351/381 264/383 +f 264/383 351/381 352/382 +f 352/382 70/70 75/75 +f 264/383 352/382 266/384 +f 266/384 352/382 75/75 +f 266/384 75/75 77/77 +f 214/224 353/385 337/367 +f 215/225 214/224 337/367 +f 337/367 353/385 336/366 +f 214/224 219/229 353/385 +f 219/229 354/386 353/385 +f 353/385 354/386 355/387 +f 353/385 355/387 336/366 +f 336/366 355/387 96/96 +f 336/366 96/96 94/94 +f 355/387 356/388 98/98 +f 355/387 98/98 96/96 +f 354/386 356/388 355/387 +f 221/231 357/389 354/386 +f 219/229 221/231 354/386 +f 354/386 357/389 356/388 +f 357/389 358/390 356/388 +f 356/388 358/390 100/100 +f 356/388 100/100 98/98 +f 221/231 223/233 357/389 +f 223/233 359/391 357/389 +f 357/389 359/391 358/390 +f 358/390 194/392 102/102 +f 358/390 102/102 100/100 +f 359/391 194/392 358/390 +f 225/235 193/393 359/391 +f 223/233 225/235 359/391 +f 359/391 193/393 194/392 +f 225/235 195/237 193/393 +f 360/394 107/107 105/105 +f 361/395 360/394 105/105 +f 361/395 105/105 104/104 +f 360/394 362/396 107/107 +f 362/396 118/118 107/107 +f 363/397 364/398 362/396 +f 362/396 364/398 118/118 +f 365/399 363/397 362/396 +f 365/399 362/396 360/394 +f 364/398 120/120 118/118 +f 364/398 366/400 120/120 +f 367/401 366/400 364/398 +f 363/397 367/401 364/398 +f 45/45 47/47 363/397 +f 45/45 363/397 365/399 +f 47/47 367/401 363/397 +f 368/402 365/399 360/394 +f 43/43 45/45 365/399 +f 43/43 365/399 368/402 +f 41/41 43/43 368/402 +f 41/41 368/402 369/403 +f 368/402 360/394 361/395 +f 369/403 368/402 361/395 +f 36/36 41/41 369/403 +f 36/36 369/403 370/404 +f 369/403 361/395 371/405 +f 370/404 369/403 371/405 +f 371/405 361/395 104/104 +f 371/405 104/104 109/109 +f 370/404 371/405 372/406 +f 372/406 371/405 109/109 +f 37/37 36/36 370/404 +f 37/37 370/404 373/407 +f 373/407 370/404 372/406 +f 374/408 372/406 111/111 +f 372/406 109/109 111/111 +f 373/407 372/406 374/408 +f 39/39 37/37 373/407 +f 39/39 373/407 249/409 +f 249/409 373/407 374/408 +f 374/408 111/111 113/113 +f 249/409 374/408 245/410 +f 245/410 374/408 113/113 +f 245/410 113/113 115/115 +f 49/49 375/411 367/401 +f 47/47 49/49 367/401 +f 367/401 375/411 366/400 +f 49/49 51/51 375/411 +f 51/51 376/412 375/411 +f 375/411 376/412 377/413 +f 375/411 377/413 366/400 +f 366/400 377/413 122/122 +f 366/400 122/122 120/120 +f 377/413 378/414 124/124 +f 377/413 124/124 122/122 +f 376/412 378/414 377/413 +f 53/53 379/415 376/412 +f 51/51 53/53 376/412 +f 376/412 379/415 378/414 +f 379/415 380/416 378/414 +f 378/414 380/416 126/126 +f 378/414 126/126 124/124 +f 53/53 55/55 379/415 +f 55/55 381/417 379/415 +f 379/415 381/417 380/416 +f 380/416 382/418 128/128 +f 380/416 128/128 126/126 +f 381/417 382/418 380/416 +f 57/57 383/419 381/417 +f 55/55 57/57 381/417 +f 381/417 383/419 382/418 +f 383/419 384/420 382/418 +f 382/418 384/420 130/130 +f 382/418 130/130 128/128 +f 57/57 59/59 383/419 +f 383/419 385/421 384/420 +f 59/59 385/421 383/419 +f 384/420 386/422 132/132 +f 384/420 132/132 130/130 +f 385/421 386/422 384/420 +f 61/61 387/423 385/421 +f 385/421 387/423 386/422 +f 59/59 61/61 385/421 +f 387/423 388/424 386/422 +f 386/422 388/424 134/134 +f 386/422 134/134 132/132 +f 61/61 63/63 387/423 +f 63/63 389/425 387/423 +f 387/423 389/425 388/424 +f 388/424 172/426 136/136 +f 388/424 136/136 134/134 +f 389/425 172/426 388/424 +f 65/65 173/427 389/425 +f 63/63 65/65 389/425 +f 389/425 173/427 172/426 +f 65/65 67/67 173/427 +f 390/428 391/429 392/430 +f 393/431 390/428 392/430 +f 393/431 392/430 394/432 +f 390/428 395/433 391/429 +f 395/433 396/434 391/429 +f 395/433 397/435 396/434 +f 397/435 398/436 396/434 +f 397/435 399/437 398/436 +f 399/437 400/438 398/436 +f 399/437 401/439 400/438 +f 401/439 402/440 400/438 +f 401/439 403/441 402/440 +f 403/441 404/442 402/440 +f 403/441 405/443 404/442 +f 405/443 406/444 404/442 +f 405/443 407/445 406/444 +f 407/445 408/446 406/444 +f 407/445 409/447 408/446 +f 409/447 410/448 408/446 +f 409/447 411/449 410/448 +f 411/449 201/450 410/448 +f 411/449 196/451 201/450 +f 412/452 393/431 394/432 +f 412/452 394/432 413/453 +f 414/454 412/452 413/453 +f 414/454 413/453 415/455 +f 416/456 414/454 415/455 +f 416/456 415/455 417/457 +f 418/458 416/456 417/457 +f 418/458 417/457 419/459 +f 267/460 418/458 419/459 +f 267/460 419/459 270/461 +f 420/462 421/463 422/464 +f 423/465 420/462 422/464 +f 423/465 422/464 424/466 +f 420/462 425/467 421/463 +f 425/467 426/468 421/463 +f 425/467 427/469 426/468 +f 427/469 428/470 426/468 +f 427/469 429/471 428/470 +f 429/471 185/472 428/470 +f 429/471 177/473 185/472 +f 430/474 423/465 424/466 +f 430/474 424/466 431/475 +f 432/476 430/474 431/475 +f 432/476 431/475 433/477 +f 434/478 432/476 433/477 +f 434/478 433/477 435/479 +f 436/480 434/478 435/479 +f 436/480 435/479 437/481 +f 438/482 436/480 437/481 +f 438/482 437/481 439/483 +f 440/484 438/482 439/483 +f 440/484 439/483 441/485 +f 442/486 440/484 441/485 +f 442/486 441/485 443/487 +f 444/488 442/486 443/487 +f 444/488 443/487 445/489 +f 446/490 444/488 445/489 +f 446/490 445/489 447/491 +f 448/492 446/490 447/491 +f 448/492 447/491 449/493 +f 247/494 448/492 449/493 +f 247/494 449/493 252/495 +f 450/496 451/497 452/498 +f 453/499 450/496 452/498 +f 453/499 452/498 454/500 +f 450/496 455/501 451/497 +f 455/501 212/502 451/497 +f 455/501 208/503 212/502 +f 456/504 453/499 454/500 +f 456/504 454/500 457/505 +f 458/506 456/504 457/505 +f 458/506 457/505 459/507 +f 460/508 458/506 459/507 +f 460/508 459/507 461/509 +f 462/510 460/508 461/509 +f 462/510 461/509 463/511 +f 464/512 462/510 463/511 +f 464/512 463/511 465/513 +f 466/514 464/512 465/513 +f 466/514 465/513 467/515 +f 468/516 466/514 467/515 +f 468/516 467/515 469/517 +f 470/518 468/516 469/517 +f 470/518 469/517 471/519 +f 472/520 470/518 471/519 +f 472/520 471/519 473/521 +f 474/522 472/520 473/521 +f 474/522 473/521 475/523 +f 476/524 474/522 475/523 +f 476/524 475/523 477/525 +f 478/526 476/524 477/525 +f 478/526 477/525 479/527 +f 280/528 478/526 479/527 +f 280/528 479/527 281/529 +f 480/530 481/531 482/532 +f 483/533 480/530 482/532 +f 483/533 482/532 484/534 +f 480/530 485/535 481/531 +f 485/535 262/536 481/531 +f 485/535 248/537 262/536 +f 486/538 483/533 484/534 +f 486/538 484/534 487/539 +f 488/540 486/538 487/539 +f 488/540 487/539 489/541 +f 490/542 488/540 489/541 +f 490/542 489/541 491/543 +f 492/544 490/542 491/543 +f 492/544 491/543 493/545 +f 494/546 492/544 493/545 +f 494/546 493/545 495/547 +f 496/548 494/546 495/547 +f 496/548 495/547 497/549 +f 498/550 496/548 497/549 +f 498/550 497/549 499/551 +f 500/552 498/550 499/551 +f 500/552 499/551 501/553 +f 502/554 500/552 501/553 +f 502/554 501/553 503/555 +f 504/556 502/554 503/555 +f 504/556 503/555 505/557 +f 506/558 504/556 505/557 +f 506/558 505/557 507/559 +f 508/560 506/558 507/559 +f 508/560 507/559 509/561 +f 186/562 508/560 509/561 +f 186/562 509/561 188/563 +f 510/564 511/565 512/566 +f 513/567 510/564 512/566 +f 513/567 512/566 514/568 +f 510/564 515/569 511/565 +f 515/569 516/570 511/565 +f 515/569 517/571 516/570 +f 517/571 518/572 516/570 +f 517/571 519/573 518/572 +f 519/573 520/574 518/572 +f 519/573 521/575 520/574 +f 521/575 522/576 520/574 +f 521/575 523/577 522/576 +f 523/577 524/578 522/576 +f 523/577 525/579 524/578 +f 525/579 526/580 524/578 +f 525/579 527/581 526/580 +f 527/581 528/582 526/580 +f 527/581 529/583 528/582 +f 529/583 530/584 528/582 +f 529/583 531/585 530/584 +f 531/585 532/586 530/584 +f 531/585 533/587 532/586 +f 533/587 258/588 532/586 +f 533/587 256/589 258/588 +f 534/590 513/567 514/568 +f 534/590 514/568 535/591 +f 536/592 534/590 535/591 +f 536/592 535/591 537/593 +f 538/594 536/592 537/593 +f 538/594 537/593 539/595 +f 181/596 538/594 539/595 +f 181/596 539/595 182/597 +f 199/598 540/599 203/600 +f 199/598 541/601 540/599 +f 541/601 542/602 540/599 +f 541/601 543/603 542/602 +f 543/603 544/604 542/602 +f 543/603 545/605 544/604 +f 545/605 546/606 544/604 +f 545/605 547/607 546/606 +f 547/607 548/608 546/606 +f 547/607 549/609 548/608 +f 549/609 550/610 548/608 +f 549/609 551/611 550/610 +f 551/611 552/612 550/610 +f 551/611 553/613 552/612 +f 553/613 554/614 552/612 +f 553/613 555/615 554/614 +f 555/615 556/616 554/614 +f 555/615 557/617 556/616 +f 557/617 558/618 556/616 +f 557/617 559/619 558/618 +f 559/619 560/620 558/618 +f 559/619 561/621 560/620 +f 561/621 562/622 560/620 +f 561/621 563/623 562/622 +f 563/623 564/624 562/622 +f 563/623 565/625 564/624 +f 565/625 566/626 564/624 +f 565/625 567/627 566/626 +f 567/627 568/628 566/626 +f 567/627 569/629 568/628 +f 569/629 274/630 568/628 +f 569/629 269/631 274/630 +f 429/471 186/562 177/473 +f 429/471 508/560 186/562 +f 427/469 508/560 429/471 +f 427/469 506/558 508/560 +f 425/467 506/558 427/469 +f 425/467 504/556 506/558 +f 420/462 504/556 425/467 +f 420/462 502/554 504/556 +f 423/465 502/554 420/462 +f 423/465 500/552 502/554 +f 430/474 500/552 423/465 +f 430/474 498/550 500/552 +f 432/476 498/550 430/474 +f 432/476 496/548 498/550 +f 434/478 496/548 432/476 +f 434/478 494/546 496/548 +f 436/480 494/546 434/478 +f 436/480 492/544 494/546 +f 438/482 492/544 436/480 +f 438/482 490/542 492/544 +f 440/484 490/542 438/482 +f 440/484 488/540 490/542 +f 442/486 488/540 440/484 +f 442/486 486/538 488/540 +f 444/488 486/538 442/486 +f 444/488 483/533 486/538 +f 446/490 483/533 444/488 +f 446/490 480/530 483/533 +f 448/492 480/530 446/490 +f 448/492 485/535 480/530 +f 247/494 485/535 448/492 +f 247/494 248/537 485/535 +f 411/449 199/598 196/451 +f 411/449 541/601 199/598 +f 409/447 541/601 411/449 +f 409/447 543/603 541/601 +f 407/445 543/603 409/447 +f 407/445 545/605 543/603 +f 405/443 545/605 407/445 +f 405/443 547/607 545/605 +f 403/441 547/607 405/443 +f 403/441 549/609 547/607 +f 401/439 549/609 403/441 +f 401/439 551/611 549/609 +f 399/437 551/611 401/439 +f 399/437 553/613 551/611 +f 397/435 553/613 399/437 +f 397/435 555/615 553/613 +f 395/433 555/615 397/435 +f 395/433 557/617 555/615 +f 390/428 557/617 395/433 +f 390/428 559/619 557/617 +f 393/431 559/619 390/428 +f 393/431 561/621 559/619 +f 412/452 561/621 393/431 +f 412/452 563/623 561/621 +f 414/454 563/623 412/452 +f 414/454 565/625 563/623 +f 416/456 565/625 414/454 +f 416/456 567/627 565/625 +f 418/458 567/627 416/456 +f 418/458 569/629 567/627 +f 267/460 569/629 418/458 +f 267/460 269/631 569/629 +f 570/632 181/596 183/633 +f 570/632 538/594 181/596 +f 571/634 538/594 570/632 +f 571/634 536/592 538/594 +f 572/635 536/592 571/634 +f 572/635 534/590 536/592 +f 573/636 534/590 572/635 +f 573/636 513/567 534/590 +f 574/637 513/567 573/636 +f 574/637 510/564 513/567 +f 575/638 510/564 574/637 +f 575/638 515/569 510/564 +f 576/639 515/569 575/638 +f 576/639 517/571 515/569 +f 577/640 517/571 576/639 +f 577/640 519/573 517/571 +f 578/641 519/573 577/640 +f 578/641 521/575 519/573 +f 579/642 521/575 578/641 +f 579/642 523/577 521/575 +f 580/643 523/577 579/642 +f 580/643 525/579 523/577 +f 581/644 525/579 580/643 +f 581/644 527/581 525/579 +f 582/645 527/581 581/644 +f 582/645 529/583 527/581 +f 583/646 529/583 582/645 +f 583/646 531/585 529/583 +f 584/647 531/585 583/646 +f 584/647 533/587 531/585 +f 259/648 533/587 584/647 +f 259/648 256/589 533/587 +f 265/649 585/650 586/651 +f 586/651 585/650 587/652 +f 586/651 587/652 588/653 +f 265/649 586/651 589/654 +f 586/651 588/653 590/655 +f 586/651 590/655 589/654 +f 265/649 268/656 585/650 +f 265/649 589/654 591/657 +f 268/656 271/658 592/659 +f 268/656 592/659 585/650 +f 585/650 592/659 593/660 +f 593/660 592/659 594/661 +f 585/650 593/660 587/652 +f 593/660 594/661 595/662 +f 596/663 594/661 597/664 +f 595/662 594/661 596/663 +f 595/662 596/663 598/665 +f 596/663 597/664 599/666 +f 588/653 587/652 600/667 +f 590/655 588/653 601/668 +f 588/653 600/667 601/668 +f 590/655 601/668 602/669 +f 603/670 604/671 605/672 +f 603/670 605/672 606/673 +f 603/670 607/674 604/671 +f 607/674 608/675 604/671 +f 260/676 263/677 607/674 +f 260/676 607/674 609/678 +f 609/678 607/674 603/670 +f 607/674 263/677 608/675 +f 261/679 260/676 609/678 +f 261/679 609/678 610/680 +f 610/680 609/678 611/681 +f 609/678 603/670 611/681 +f 610/680 611/681 612/682 +f 610/680 612/682 613/683 +f 610/680 613/683 614/684 +f 611/681 603/670 615/685 +f 611/681 615/685 616/686 +f 603/670 606/673 615/685 +f 614/684 613/683 617/687 +f 614/684 617/687 618/688 +f 614/684 618/688 619/689 +f 614/684 619/689 620/690 +f 288/691 574/637 573/636 +f 287/692 288/691 573/636 +f 287/692 573/636 572/635 +f 288/691 289/693 574/637 +f 289/693 575/638 574/637 +f 289/693 290/694 575/638 +f 290/694 576/639 575/638 +f 290/694 291/695 576/639 +f 291/695 577/640 576/639 +f 291/695 292/696 577/640 +f 292/696 578/641 577/640 +f 292/696 293/697 578/641 +f 293/697 579/642 578/641 +f 293/697 294/698 579/642 +f 294/698 580/643 579/642 +f 294/698 295/699 580/643 +f 295/699 581/644 580/643 +f 295/699 296/700 581/644 +f 296/700 582/645 581/644 +f 296/700 297/701 582/645 +f 297/701 583/646 582/645 +f 297/701 298/702 583/646 +f 298/702 584/647 583/646 +f 298/702 299/703 584/647 +f 299/703 259/648 584/647 +f 299/703 257/704 259/648 +f 286/705 287/692 572/635 +f 286/705 572/635 571/634 +f 285/706 286/705 571/634 +f 285/706 571/634 570/632 +f 184/707 285/706 570/632 +f 184/707 570/632 183/633 +f 12/12 621/708 283/709 +f 12/12 10/10 621/708 +f 10/10 622/710 621/708 +f 10/10 8/8 622/710 +f 8/8 623/711 622/710 +f 8/8 6/6 623/711 +f 6/6 624/712 623/711 +f 6/6 1/1 624/712 +f 1/1 625/713 624/712 +f 1/1 4/4 625/713 +f 4/4 626/714 625/713 +f 4/4 13/13 626/714 +f 13/13 627/715 626/714 +f 13/13 15/15 627/715 +f 15/15 628/716 627/715 +f 15/15 17/17 628/716 +f 17/17 629/717 628/716 +f 17/17 19/19 629/717 +f 19/19 630/718 629/717 +f 19/19 21/21 630/718 +f 21/21 631/719 630/718 +f 21/21 23/23 631/719 +f 23/23 632/720 631/719 +f 23/23 25/25 632/720 +f 25/25 633/721 632/720 +f 25/25 27/27 633/721 +f 27/27 634/722 633/721 +f 27/27 29/29 634/722 +f 29/29 635/723 634/722 +f 29/29 31/31 635/723 +f 31/31 211/724 635/723 +f 31/31 33/33 211/724 +f 456/504 636/725 637/726 +f 453/499 456/504 637/726 +f 453/499 637/726 638/727 +f 456/504 458/506 636/725 +f 458/506 639/728 636/725 +f 458/506 460/508 639/728 +f 460/508 640/729 639/728 +f 460/508 462/510 640/729 +f 462/510 641/730 640/729 +f 462/510 464/512 641/730 +f 464/512 642/731 641/730 +f 464/512 466/514 642/731 +f 466/514 643/732 642/731 +f 466/514 468/516 643/732 +f 468/516 644/733 643/732 +f 468/516 470/518 644/733 +f 470/518 645/734 644/733 +f 470/518 472/520 645/734 +f 472/520 646/735 645/734 +f 472/520 474/522 646/735 +f 474/522 647/736 646/735 +f 474/522 476/524 647/736 +f 476/524 648/737 647/736 +f 476/524 478/526 648/737 +f 478/526 284/738 648/737 +f 478/526 280/528 284/738 +f 450/496 453/499 638/727 +f 450/496 638/727 649/739 +f 455/501 450/496 649/739 +f 455/501 649/739 650/740 +f 208/503 455/501 650/740 +f 208/503 650/740 210/741 +f 509/561 191/742 188/563 +f 509/561 651/743 191/742 +f 507/559 651/743 509/561 +f 651/743 200/744 191/742 +f 507/559 652/745 651/743 +f 651/743 653/746 200/744 +f 652/745 653/746 651/743 +f 505/557 652/745 507/559 +f 505/557 654/747 652/745 +f 652/745 655/748 653/746 +f 654/747 655/748 652/745 +f 653/746 410/448 201/450 +f 653/746 201/450 200/744 +f 655/748 410/448 653/746 +f 656/749 408/446 655/748 +f 655/748 408/446 410/448 +f 654/747 656/749 655/748 +f 503/555 657/750 654/747 +f 503/555 654/747 505/557 +f 657/750 656/749 654/747 +f 656/749 406/444 408/446 +f 657/750 658/751 656/749 +f 658/751 406/444 656/749 +f 501/553 659/752 657/750 +f 501/553 657/750 503/555 +f 659/752 658/751 657/750 +f 660/753 404/442 658/751 +f 658/751 404/442 406/444 +f 659/752 660/753 658/751 +f 499/551 661/754 659/752 +f 499/551 659/752 501/553 +f 661/754 660/753 659/752 +f 660/753 402/440 404/442 +f 661/754 662/755 660/753 +f 662/755 402/440 660/753 +f 497/549 663/756 661/754 +f 497/549 661/754 499/551 +f 663/756 662/755 661/754 +f 664/757 400/438 662/755 +f 662/755 400/438 402/440 +f 663/756 664/757 662/755 +f 665/758 664/757 663/756 +f 495/547 665/758 663/756 +f 495/547 663/756 497/549 +f 664/757 398/436 400/438 +f 665/758 666/759 664/757 +f 666/759 398/436 664/757 +f 493/545 667/760 665/758 +f 493/545 665/758 495/547 +f 667/760 666/759 665/758 +f 668/761 396/434 666/759 +f 666/759 396/434 398/436 +f 667/760 668/761 666/759 +f 491/543 669/762 667/760 +f 491/543 667/760 493/545 +f 669/762 668/761 667/760 +f 668/761 391/429 396/434 +f 669/762 670/763 668/761 +f 670/763 391/429 668/761 +f 489/541 671/764 669/762 +f 489/541 669/762 491/543 +f 671/764 670/763 669/762 +f 672/765 392/430 670/763 +f 670/763 392/430 391/429 +f 671/764 672/765 670/763 +f 487/539 673/766 671/764 +f 487/539 671/764 489/541 +f 673/766 672/765 671/764 +f 672/765 394/432 392/430 +f 673/766 674/767 672/765 +f 674/767 394/432 672/765 +f 484/534 675/768 673/766 +f 484/534 673/766 487/539 +f 675/768 674/767 673/766 +f 676/769 413/453 674/767 +f 674/767 413/453 394/432 +f 675/768 676/769 674/767 +f 482/532 677/770 675/768 +f 482/532 675/768 484/534 +f 677/770 676/769 675/768 +f 676/769 415/455 413/453 +f 677/770 678/771 676/769 +f 678/771 415/455 676/769 +f 481/531 679/772 677/770 +f 481/531 677/770 482/532 +f 679/772 678/771 677/770 +f 680/773 417/457 678/771 +f 678/771 417/457 415/455 +f 679/772 680/773 678/771 +f 262/536 261/774 679/772 +f 262/536 679/772 481/531 +f 261/774 680/773 679/772 +f 680/773 419/459 417/457 +f 261/774 271/775 680/773 +f 271/775 419/459 680/773 +f 271/775 270/461 419/459 +f 540/599 204/776 203/600 +f 540/599 681/777 204/776 +f 542/602 681/777 540/599 +f 681/777 207/778 204/776 +f 542/602 682/779 681/777 +f 681/777 683/780 207/778 +f 682/779 683/780 681/777 +f 544/604 682/779 542/602 +f 544/604 684/781 682/779 +f 682/779 685/782 683/780 +f 684/781 685/782 682/779 +f 683/780 451/497 212/502 +f 683/780 212/502 207/778 +f 685/782 451/497 683/780 +f 686/783 452/498 685/782 +f 685/782 452/498 451/497 +f 684/781 686/783 685/782 +f 687/784 686/783 684/781 +f 546/606 687/784 684/781 +f 546/606 684/781 544/604 +f 686/783 454/500 452/498 +f 687/784 688/785 686/783 +f 688/785 454/500 686/783 +f 548/608 689/786 687/784 +f 548/608 687/784 546/606 +f 689/786 688/785 687/784 +f 690/787 457/505 688/785 +f 688/785 457/505 454/500 +f 689/786 690/787 688/785 +f 550/610 691/788 689/786 +f 550/610 689/786 548/608 +f 691/788 690/787 689/786 +f 690/787 459/507 457/505 +f 691/788 692/789 690/787 +f 692/789 459/507 690/787 +f 552/612 693/790 691/788 +f 552/612 691/788 550/610 +f 693/790 692/789 691/788 +f 694/791 461/509 692/789 +f 692/789 461/509 459/507 +f 693/790 694/791 692/789 +f 554/614 695/792 693/790 +f 554/614 693/790 552/612 +f 695/792 694/791 693/790 +f 694/791 463/511 461/509 +f 695/792 696/793 694/791 +f 696/793 463/511 694/791 +f 556/616 697/794 695/792 +f 556/616 695/792 554/614 +f 697/794 696/793 695/792 +f 698/795 465/513 696/793 +f 697/794 698/795 696/793 +f 696/793 465/513 463/511 +f 558/618 699/796 697/794 +f 558/618 697/794 556/616 +f 699/796 698/795 697/794 +f 698/795 467/515 465/513 +f 699/796 700/797 698/795 +f 700/797 467/515 698/795 +f 560/620 701/798 699/796 +f 560/620 699/796 558/618 +f 701/798 700/797 699/796 +f 702/799 469/517 700/797 +f 700/797 469/517 467/515 +f 701/798 702/799 700/797 +f 703/800 702/799 701/798 +f 562/622 703/800 701/798 +f 562/622 701/798 560/620 +f 702/799 471/519 469/517 +f 703/800 704/801 702/799 +f 704/801 471/519 702/799 +f 564/624 705/802 703/800 +f 564/624 703/800 562/622 +f 705/802 704/801 703/800 +f 706/803 473/521 704/801 +f 704/801 473/521 471/519 +f 705/802 706/803 704/801 +f 566/626 707/804 705/802 +f 566/626 705/802 564/624 +f 707/804 706/803 705/802 +f 706/803 475/523 473/521 +f 707/804 708/805 706/803 +f 708/805 475/523 706/803 +f 568/628 709/806 707/804 +f 568/628 707/804 566/626 +f 709/806 708/805 707/804 +f 710/807 477/525 708/805 +f 708/805 477/525 475/523 +f 709/806 710/807 708/805 +f 274/630 273/808 709/806 +f 274/630 709/806 568/628 +f 273/808 710/807 709/806 +f 710/807 479/527 477/525 +f 273/808 277/809 710/807 +f 277/809 479/527 710/807 +f 277/809 281/529 479/527 +f 539/595 180/810 182/597 +f 539/595 711/811 180/810 +f 537/593 711/811 539/595 +f 711/811 179/812 180/810 +f 537/593 712/813 711/811 +f 711/811 713/814 179/812 +f 712/813 713/814 711/811 +f 535/591 712/813 537/593 +f 535/591 714/815 712/813 +f 712/813 715/816 713/814 +f 714/815 715/816 712/813 +f 713/814 428/470 185/472 +f 713/814 185/472 179/812 +f 715/816 428/470 713/814 +f 716/817 426/468 715/816 +f 715/816 426/468 428/470 +f 714/815 716/817 715/816 +f 717/818 716/817 714/815 +f 514/568 717/818 714/815 +f 514/568 714/815 535/591 +f 716/817 421/463 426/468 +f 717/818 718/819 716/817 +f 718/819 421/463 716/817 +f 512/566 719/820 717/818 +f 512/566 717/818 514/568 +f 719/820 718/819 717/818 +f 720/821 422/464 718/819 +f 718/819 422/464 421/463 +f 719/820 720/821 718/819 +f 511/565 721/822 719/820 +f 511/565 719/820 512/566 +f 721/822 720/821 719/820 +f 720/821 424/466 422/464 +f 721/822 722/823 720/821 +f 722/823 424/466 720/821 +f 516/570 723/824 721/822 +f 516/570 721/822 511/565 +f 723/824 722/823 721/822 +f 724/825 431/475 722/823 +f 722/823 431/475 424/466 +f 723/824 724/825 722/823 +f 518/572 725/826 723/824 +f 518/572 723/824 516/570 +f 725/826 724/825 723/824 +f 724/825 433/477 431/475 +f 725/826 726/827 724/825 +f 726/827 433/477 724/825 +f 520/574 727/828 725/826 +f 520/574 725/826 518/572 +f 727/828 726/827 725/826 +f 728/829 435/479 726/827 +f 727/828 728/829 726/827 +f 726/827 435/479 433/477 +f 522/576 729/830 727/828 +f 522/576 727/828 520/574 +f 729/830 728/829 727/828 +f 728/829 437/481 435/479 +f 729/830 730/831 728/829 +f 730/831 437/481 728/829 +f 524/578 731/832 729/830 +f 524/578 729/830 522/576 +f 731/832 730/831 729/830 +f 732/833 439/483 730/831 +f 730/831 439/483 437/481 +f 731/832 732/833 730/831 +f 733/834 732/833 731/832 +f 526/580 733/834 731/832 +f 526/580 731/832 524/578 +f 732/833 441/485 439/483 +f 733/834 734/835 732/833 +f 734/835 441/485 732/833 +f 528/582 735/836 733/834 +f 528/582 733/834 526/580 +f 735/836 734/835 733/834 +f 736/837 443/487 734/835 +f 734/835 443/487 441/485 +f 735/836 736/837 734/835 +f 530/584 737/838 735/836 +f 530/584 735/836 528/582 +f 737/838 736/837 735/836 +f 736/837 445/489 443/487 +f 737/838 738/839 736/837 +f 738/839 445/489 736/837 +f 532/586 739/840 737/838 +f 532/586 737/838 530/584 +f 739/840 738/839 737/838 +f 740/841 447/491 738/839 +f 738/839 447/491 445/489 +f 739/840 740/841 738/839 +f 258/588 255/842 739/840 +f 258/588 739/840 532/586 +f 255/842 740/841 739/840 +f 740/841 449/493 447/491 +f 255/842 254/843 740/841 +f 254/843 449/493 740/841 +f 254/843 252/495 449/493 +f 621/844 647/736 648/737 +f 283/845 621/844 648/737 +f 283/845 648/737 284/738 +f 621/844 622/846 647/736 +f 622/846 646/735 647/736 +f 622/846 623/847 646/735 +f 623/847 645/734 646/735 +f 623/847 624/848 645/734 +f 624/848 644/733 645/734 +f 624/848 625/849 644/733 +f 625/849 643/732 644/733 +f 625/849 626/850 643/732 +f 626/850 642/731 643/732 +f 626/850 627/851 642/731 +f 627/851 641/730 642/731 +f 627/851 628/852 641/730 +f 628/852 640/729 641/730 +f 628/852 629/853 640/729 +f 629/853 639/728 640/729 +f 629/853 630/854 639/728 +f 630/854 636/725 639/728 +f 630/854 631/855 636/725 +f 631/855 637/726 636/725 +f 631/855 632/856 637/726 +f 632/856 638/727 637/726 +f 632/856 633/857 638/727 +f 633/857 649/739 638/727 +f 633/857 634/858 649/739 +f 634/858 650/740 649/739 +f 634/858 635/859 650/740 +f 635/859 210/741 650/740 +f 635/859 211/860 210/741 +f 263/280 591/861 608/862 +f 263/280 265/283 591/861 +f 271/863 610/864 592/865 +f 271/863 261/866 610/864 +f 611/867 593/868 612/869 +f 612/869 593/868 595/870 +f 612/869 595/870 613/871 +f 611/867 587/872 593/868 +f 613/871 595/870 598/873 +f 613/871 598/873 617/874 +f 592/865 614/875 594/876 +f 592/865 610/864 614/875 +f 596/877 617/874 598/873 +f 596/877 618/878 617/874 +f 618/878 596/877 599/879 +f 618/878 599/879 619/880 +f 608/862 589/881 604/882 +f 604/882 589/881 590/883 +f 604/882 590/883 605/884 +f 608/862 591/861 589/881 +f 605/884 590/883 602/885 +f 605/884 602/885 606/886 +f 615/685 600/667 616/686 +f 615/685 601/668 600/667 +f 601/668 615/685 606/673 +f 601/668 606/673 602/669 +f 587/872 616/887 600/888 +f 587/872 611/867 616/887 +f 597/889 619/890 599/891 +f 597/889 620/892 619/890 +f 594/876 620/892 597/889 +f 594/876 614/875 620/892 diff --git a/mods/boats/models/boat.x b/mods/boats/models/boat.x deleted file mode 100644 index 581998e5..00000000 --- a/mods/boats/models/boat.x +++ /dev/null @@ -1,11110 +0,0 @@ -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/mods/boats/textures/boat_inventory.png b/mods/boats/textures/boats_boat_inventory.png old mode 100644 new mode 100755 similarity index 100% rename from mods/boats/textures/boat_inventory.png rename to mods/boats/textures/boats_boat_inventory.png diff --git a/mods/boats/textures/boat_wield.png b/mods/boats/textures/boats_boat_wield.png old mode 100644 new mode 100755 similarity index 100% rename from mods/boats/textures/boat_wield.png rename to mods/boats/textures/boats_boat_wield.png diff --git a/mods/boats/textures/boats_expert_race_inventory.png b/mods/boats/textures/boats_expert_race_inventory.png new file mode 100755 index 00000000..d39939a9 Binary files /dev/null and b/mods/boats/textures/boats_expert_race_inventory.png differ diff --git a/mods/boats/textures/boats_expert_race_wield.png b/mods/boats/textures/boats_expert_race_wield.png new file mode 100755 index 00000000..345dcd80 Binary files /dev/null and b/mods/boats/textures/boats_expert_race_wield.png differ diff --git a/mods/boats/textures/boats_inventory.png b/mods/boats/textures/boats_inventory.png new file mode 100755 index 00000000..e0756637 Binary files /dev/null and b/mods/boats/textures/boats_inventory.png differ diff --git a/mods/boats/textures/boats_moon.png b/mods/boats/textures/boats_moon.png new file mode 100755 index 00000000..09597aa4 Binary files /dev/null and b/mods/boats/textures/boats_moon.png differ diff --git a/mods/boats/textures/boats_moon_inventory.png b/mods/boats/textures/boats_moon_inventory.png new file mode 100755 index 00000000..38d89102 Binary files /dev/null and b/mods/boats/textures/boats_moon_inventory.png differ diff --git a/mods/boats/textures/boats_moon_wield.png b/mods/boats/textures/boats_moon_wield.png new file mode 100755 index 00000000..eb37ce24 Binary files /dev/null and b/mods/boats/textures/boats_moon_wield.png differ diff --git a/mods/boats/textures/boats_race_inventory.png b/mods/boats/textures/boats_race_inventory.png new file mode 100755 index 00000000..d2b2980c Binary files /dev/null and b/mods/boats/textures/boats_race_inventory.png differ diff --git a/mods/boats/textures/boats_race_wield.png b/mods/boats/textures/boats_race_wield.png new file mode 100755 index 00000000..385353f5 Binary files /dev/null and b/mods/boats/textures/boats_race_wield.png differ diff --git a/mods/boats/textures/boats_water_inventory.png b/mods/boats/textures/boats_water_inventory.png new file mode 100755 index 00000000..f744bae9 Binary files /dev/null and b/mods/boats/textures/boats_water_inventory.png differ diff --git a/mods/boats/textures/boats_water_wield.png b/mods/boats/textures/boats_water_wield.png new file mode 100755 index 00000000..b9196d9b Binary files /dev/null and b/mods/boats/textures/boats_water_wield.png differ diff --git a/mods/boats/textures/mboat_inventory.png b/mods/boats/textures/mboat_inventory.png new file mode 100755 index 00000000..e0756637 Binary files /dev/null and b/mods/boats/textures/mboat_inventory.png differ diff --git a/mods/boats/textures/mboat_wield.png b/mods/boats/textures/mboat_wield.png new file mode 100755 index 00000000..ca62b141 Binary files /dev/null and b/mods/boats/textures/mboat_wield.png differ diff --git a/mods/bones/README.txt b/mods/bones/README.txt deleted file mode 100644 index b0ebed8f..00000000 --- a/mods/bones/README.txt +++ /dev/null @@ -1,17 +0,0 @@ -Minetest 0.4 mod: bones -======================= - -License of source code: ------------------------ -Copyright (C) 2012 PilzAdam - -WTFPL - -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 ----------------------- -Bad_Command_ diff --git a/mods/bones/init.lua b/mods/bones/init.lua deleted file mode 100644 index 0f762573..00000000 --- a/mods/bones/init.lua +++ /dev/null @@ -1,170 +0,0 @@ --- Minetest 0.4 mod: bones --- See README.txt for licensing and other information. - -local function is_owner(pos, name) - local owner = minetest.get_meta(pos):get_string("owner") - if owner == "" or owner == name then - return true - end - return false -end - -minetest.register_node("bones:bones", { - description = "Bones", - tiles = { - "bones_top.png", - "bones_bottom.png", - "bones_side.png", - "bones_side.png", - "bones_rear.png", - "bones_front.png" - }, - paramtype2 = "facedir", - groups = {dig_immediate=2}, - sounds = default.node_sound_dirt_defaults({ - footstep = {name="default_gravel_footstep", gain=0.5}, - dug = {name="default_gravel_footstep", gain=1.0}, - }), - - can_dig = function(pos, player) - local inv = minetest.get_meta(pos):get_inventory() - return is_owner(pos, player:get_player_name()) and inv:is_empty("main") - end, - - allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) - if is_owner(pos, player:get_player_name()) then - return count - end - return 0 - end, - - allow_metadata_inventory_put = function(pos, listname, index, stack, player) - return 0 - end, - - allow_metadata_inventory_take = function(pos, listname, index, stack, player) - if is_owner(pos, player:get_player_name()) then - return stack:get_count() - end - return 0 - end, - - on_metadata_inventory_take = function(pos, listname, index, stack, player) - local meta = minetest.get_meta(pos) - if meta:get_inventory():is_empty("main") then - minetest.remove_node(pos) - end - end, - - on_punch = function(pos, node, player) - if(not is_owner(pos, player:get_player_name())) then - return - end - - local inv = minetest.get_meta(pos):get_inventory() - local player_inv = player:get_inventory() - local has_space = true - - for i=1,inv:get_size("main") do - local stk = inv:get_stack("main", i) - if player_inv:room_for_item("main", stk) then - inv:set_stack("main", i, nil) - player_inv:add_item("main", stk) - else - has_space = false - break - end - end - - -- remove bones if player emptied them - if has_space then - minetest.remove_node(pos) - end - end, - - on_timer = function(pos, elapsed) - local meta = minetest.get_meta(pos) - local time = meta:get_int("time")+elapsed - local publish = 1200 - if tonumber(minetest.setting_get("share_bones_time")) then - publish = tonumber(minetest.setting_get("share_bones_time")) - end - if publish == 0 then - return - end - if time >= publish then - meta:set_string("infotext", meta:get_string("owner").."'s old bones") - meta:set_string("owner", "") - else - return true - end - end, -}) - -minetest.register_on_dieplayer(function(player) - if minetest.setting_getbool("creative_mode") then - return - end - - local player_inv = player:get_inventory() - if player_inv:is_empty("main") and - player_inv:is_empty("craft") then - return - end - - local pos = player:getpos() - pos.x = math.floor(pos.x+0.5) - pos.y = math.floor(pos.y+0.5) - pos.z = math.floor(pos.z+0.5) - local param2 = minetest.dir_to_facedir(player:get_look_dir()) - local player_name = player:get_player_name() - local player_inv = player:get_inventory() - - local nn = minetest.get_node(pos).name - if minetest.registered_nodes[nn].can_dig and - not minetest.registered_nodes[nn].can_dig(pos, player) then - - -- drop items instead of delete - for i=1,player_inv:get_size("main") do - minetest.add_item(pos, player_inv:get_stack("main", i)) - end - for i=1,player_inv:get_size("craft") do - minetest.add_item(pos, player_inv:get_stack("craft", i)) - end - -- empty lists main and craft - player_inv:set_list("main", {}) - player_inv:set_list("craft", {}) - return - end - - minetest.dig_node(pos) - minetest.add_node(pos, {name="bones:bones", param2=param2}) - - local meta = minetest.get_meta(pos) - local inv = meta:get_inventory() - inv:set_size("main", 8*4) - inv:set_list("main", player_inv:get_list("main")) - - for i=1,player_inv:get_size("craft") do - local stack = player_inv:get_stack("craft", i) - if inv:room_for_item("main", stack) then - inv:add_item("main", stack) - else - --drop if no space left - minetest.add_item(pos, stack) - end - end - - player_inv:set_list("main", {}) - player_inv:set_list("craft", {}) - - 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", player_name.."'s fresh bones") - meta:set_string("owner", player_name) - meta:set_int("time", 0) - - local timer = minetest.get_node_timer(pos) - timer:start(10) -end) diff --git a/mods/bones/textures/bones_bottom.png b/mods/bones/textures/bones_bottom.png deleted file mode 100644 index ada72cea..00000000 Binary files a/mods/bones/textures/bones_bottom.png and /dev/null differ diff --git a/mods/bones/textures/bones_front.png b/mods/bones/textures/bones_front.png deleted file mode 100644 index 9dcbb97b..00000000 Binary files a/mods/bones/textures/bones_front.png and /dev/null differ diff --git a/mods/bones/textures/bones_rear.png b/mods/bones/textures/bones_rear.png deleted file mode 100644 index 8e1ac10b..00000000 Binary files a/mods/bones/textures/bones_rear.png and /dev/null differ diff --git a/mods/bones/textures/bones_side.png b/mods/bones/textures/bones_side.png deleted file mode 100644 index 3b4810c6..00000000 Binary files a/mods/bones/textures/bones_side.png and /dev/null differ diff --git a/mods/bones/textures/bones_top.png b/mods/bones/textures/bones_top.png deleted file mode 100644 index 61198647..00000000 Binary files a/mods/bones/textures/bones_top.png and /dev/null differ diff --git a/mods/bucket/README.txt b/mods/bucket/README.txt old mode 100644 new mode 100755 index 7dad6419..a6674b43 --- a/mods/bucket/README.txt +++ b/mods/bucket/README.txt @@ -1,4 +1,4 @@ -Minetest 0.4 mod: bucket +Minetest Game mod: bucket ========================= License of source code: diff --git a/mods/bucket/depends.txt b/mods/bucket/depends.txt old mode 100644 new mode 100755 diff --git a/mods/bucket/init.lua b/mods/bucket/init.lua old mode 100644 new mode 100755 index eeff992c..df8ea7ec --- a/mods/bucket/init.lua +++ b/mods/bucket/init.lua @@ -1,17 +1,16 @@ -- 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_acid", "bucket:bucket_acid") 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', ''}, + {'group:ingot', '', 'group:ingot'}, + {'', 'group:ingot', ''}, } }) @@ -32,12 +31,14 @@ local function check_protection(pos, name, text) 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) +-- 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) +-- name = text description of the bucket item +-- groups = (optional) groups of the bucket item, for example {water_bucket = 1} -- This function can be called from any mod (that depends on bucket). -function bucket.register_liquid(source, flowing, itemname, inventory_image, name) +function bucket.register_liquid(source, flowing, itemname, inventory_image, name, groups) bucket.liquids[source] = { source = source, flowing = flowing, @@ -51,13 +52,13 @@ function bucket.register_liquid(source, flowing, itemname, inventory_image, name inventory_image = inventory_image, stack_max = 1, liquids_pointable = true, - groups = {not_in_creative_inventory=1}, + groups = groups, 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 @@ -72,40 +73,20 @@ function bucket.register_liquid(source, flowing, itemname, inventory_image, name itemstack) or itemstack end - local place_liquid = function(pos, node, source, flowing, fullness) + local place_liquid = function(pos, node, source, flowing) 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 + minetest.add_node(pos, {name=source}) 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) + source, flowing) else -- not buildable to; place the liquid above -- check if the node above can be replaced @@ -113,7 +94,7 @@ function bucket.register_liquid(source, flowing, itemname, inventory_image, name if node and minetest.registered_nodes[node.name].buildable_to then place_liquid(pointed_thing.above, node, source, - flowing, fullness) + flowing) else -- do not remove the bucket with the liquid return @@ -125,10 +106,12 @@ function bucket.register_liquid(source, flowing, itemname, inventory_image, name end end +-- Empty Bucket code by Casimir. + minetest.register_craftitem("bucket:bucket_empty", { description = "Empty Bucket", inventory_image = "bucket.png", - stack_max = 1, + stack_max = 99, liquids_pointable = true, on_use = function(itemstack, user, pointed_thing) -- Must be pointing to node @@ -136,25 +119,43 @@ minetest.register_craftitem("bucket:bucket_empty", { 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 + local node = minetest.get_node(pointed_thing.under) + local liquiddef = bucket.liquids[node.name] + local item_count = user:get_wielded_item():get_count() + + if liquiddef ~= nil + and liquiddef.itemname ~= nil + and node.name == liquiddef.source then if check_protection(pointed_thing.under, user:get_player_name(), "take ".. node.name) then return end + -- default set to return filled bucket + local giving_back = liquiddef.itemname + + -- check if holding more than 1 empty bucket + if item_count > 1 then + + -- if space in inventory add filled bucked, otherwise drop as item + local inv = user:get_inventory() + if inv:room_for_item("main", {name=liquiddef.itemname}) then + inv:add_item("main", liquiddef.itemname) + else + local pos = user:getpos() + pos.y = math.floor(pos.y + 0.5) + core.add_item(pos, liquiddef.itemname) + end + + -- set to return empty buckets minus 1 + giving_back = "bucket:bucket_empty "..tostring(item_count-1) + + 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)}) + return ItemStack(giving_back) end end, }) @@ -164,7 +165,17 @@ bucket.register_liquid( "default:water_flowing", "bucket:bucket_water", "bucket_water.png", - "Water Bucket" + "Water Bucket", + {water_bucket = 1, not_in_creative_inventory = 1} +) + +bucket.register_liquid( + "default:river_water_source", + "default:river_water_flowing", + "bucket:bucket_river_water", + "bucket_river_water.png", + "River Water Bucket", + {water_bucket = 1, not_in_creative_inventory = 1} ) bucket.register_liquid( @@ -175,9 +186,36 @@ bucket.register_liquid( "Lava Bucket" ) +bucket.register_liquid( + "default:acid_source", + "default:acid_flowing", + "bucket:bucket_acid", + "bucket_acid.png", + "Acid Bucket", + {not_in_creative_inventory = 1} +) + +bucket.register_liquid( + "default:sand_source", + "default:sand_flowing", + "bucket:bucket_sand", + "bucket_sand.png", + "Sand Bucket", + {not_in_creative_inventory = 1} +) + minetest.register_craft({ type = "fuel", recipe = "bucket:bucket_lava", burntime = 60, replacements = {{"bucket:bucket_lava", "bucket:bucket_empty"}}, }) + +minetest.register_craft({ + output = "bucket:bucket_sand", + recipe = { + {"group:sand"}, + {"group:sand"}, + {"bucket:bucket_water"}, + }, +}) diff --git a/mods/bucket/textures/bucket.png b/mods/bucket/textures/bucket.png old mode 100644 new mode 100755 index 67795287..17b0c493 Binary files a/mods/bucket/textures/bucket.png and b/mods/bucket/textures/bucket.png differ diff --git a/mods/bucket/textures/bucket_acid.png b/mods/bucket/textures/bucket_acid.png new file mode 100755 index 00000000..86e58117 Binary files /dev/null and b/mods/bucket/textures/bucket_acid.png differ diff --git a/mods/bucket/textures/bucket_lava.png b/mods/bucket/textures/bucket_lava.png old mode 100644 new mode 100755 index d2baeb9b..ac6108d9 Binary files a/mods/bucket/textures/bucket_lava.png and b/mods/bucket/textures/bucket_lava.png differ diff --git a/mods/bucket/textures/bucket_river_water.png b/mods/bucket/textures/bucket_river_water.png new file mode 100755 index 00000000..d4648bb3 Binary files /dev/null and b/mods/bucket/textures/bucket_river_water.png differ diff --git a/mods/bucket/textures/bucket_sand.png b/mods/bucket/textures/bucket_sand.png new file mode 100755 index 00000000..efde998e Binary files /dev/null and b/mods/bucket/textures/bucket_sand.png differ diff --git a/mods/bucket/textures/bucket_water.png b/mods/bucket/textures/bucket_water.png old mode 100644 new mode 100755 index 877692a2..5af836bc Binary files a/mods/bucket/textures/bucket_water.png and b/mods/bucket/textures/bucket_water.png differ diff --git a/mods/creative/README.txt b/mods/creative/README.txt old mode 100644 new mode 100755 index 7d49b981..82357f30 --- a/mods/creative/README.txt +++ b/mods/creative/README.txt @@ -1,22 +1,12 @@ -Minetest 0.4 mod: creative -========================== +Minetest Game mod: creative +=========================== +See license.txt for license information. -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. +Authors of source code +---------------------- +Originally by Perttu Ahola (celeron55) (MIT) +Jean-Patrick G. (kilbith) (MIT) +Author of media (textures) +-------------------------- +Jean-Patrick G. (kilbith) (CC BY-SA 3.0) diff --git a/mods/creative/depends.txt b/mods/creative/depends.txt old mode 100644 new mode 100755 diff --git a/mods/creative/init.lua b/mods/creative/init.lua old mode 100644 new mode 100755 index 41282b18..cebbc2fa --- a/mods/creative/init.lua +++ b/mods/creative/init.lua @@ -1,13 +1,22 @@ -- minetest/creative/init.lua -creative_inventory = {} -creative_inventory.creative_inventory_size = 0 +creative = {} +local player_inventory = {} +local creative_mode = minetest.setting_getbool("creative_mode") -- Create detached creative inventory after loading all mods -minetest.after(0, function() - local inv = minetest.create_detached_inventory("creative", { +creative.init_creative_inventory = function(owner) + local owner_name = owner:get_player_name() + player_inventory[owner_name] = { + size = 0, + filter = "", + start_i = 1, + tab_id = 2, + } + + minetest.create_detached_inventory("creative_" .. owner_name, { allow_move = function(inv, from_list, from_index, to_list, to_index, count, player) - if minetest.setting_getbool("creative_mode") then + if creative_mode and not to_list == "main" then return count else return 0 @@ -17,7 +26,7 @@ minetest.after(0, function() return 0 end, allow_take = function(inv, listname, index, stack, player) - if minetest.setting_getbool("creative_mode") then + if creative_mode then return -1 else return 0 @@ -28,139 +37,232 @@ minetest.after(0, function() 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)) + local player_name, stack_name = player:get_player_name(), stack:get_name() + --print(player_name .. " takes item from creative inventory; listname = " .. listname .. ", index = " .. index .. ", stack = " .. dump(stack:to_table())) 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())) + minetest.log("action", player_name .. " takes " .. stack_name .. " from creative inventory") + --print("Stack name: " .. stack_name .. ", Stack count: " .. stack:get_count()) end end, }) + + creative.update_creative_inventory(owner_name) + --print("creative inventory size: " .. player_inventory[player_name].size) +end + +local function tab_category(tab_id) + local id_category = { + nil, -- Reserved for crafting tab. + minetest.registered_items, + minetest.registered_nodes, + minetest.registered_tools, + minetest.registered_craftitems + } + + -- If index out of range, show default ("All") page. + return id_category[tab_id] or id_category[2] +end + +function creative.update_creative_inventory(player_name) 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) + local player_inv = minetest.get_inventory({type = "detached", name = "creative_" .. player_name}) + local inv = player_inventory[player_name] + + for name, def in pairs(tab_category(inv.tab_id)) do + if not (def.groups.not_in_creative_inventory == 1) and + def.description and def.description ~= "" and + (def.name:find(inv.filter, 1, true) or + def.description:lower():find(inv.filter, 1, true)) then + creative_list[#creative_list+1] = 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) + player_inv:set_size("main", #creative_list) + player_inv:set_list("main", creative_list) + inv.size = #creative_list +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 + if 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, "") + on_put = function(inv, listname) + inv:set_list(listname, {}) end, }) trash:set_size("main", 1) +creative.formspec_add = "" -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) +creative.set_creative_formspec = function(player, start_i) + local player_name = player:get_player_name() + local inv = player_inventory[player_name] + local pagenum = math.floor(start_i / (3*8) + 1) + local pagemax = math.ceil(inv.size / (3*8)) + + player:set_inventory_formspec([[ + size[8,8.6] + image[4.06,3.4;0.8,0.8;creative_trash_icon.png] + list[current_player;main;0,4.7;8,1;] + list[current_player;main;0,5.85;8,3;8] + list[detached:creative_trash;main;4,3.3;1,1;] + listring[] + tablecolumns[color;text;color;text] + tableoptions[background=#00000000;highlight=#00000000;border=false] + button[5.4,3.2;0.8,0.9;creative_prev;<] + button[7.25,3.2;0.8,0.9;creative_next;>] + button[2.1,3.4;0.8,0.5;creative_search;?] + button[2.75,3.4;0.8,0.5;creative_clear;X] + tooltip[creative_search;Search] + tooltip[creative_clear;Reset] + listring[current_player;main] + ]] .. + "field[0.3,3.5;2.2,1;creative_filter;;" .. minetest.formspec_escape(inv.filter) .. "]" .. + "field_close_on_enter[creative_filter;false]" .. + "listring[detached:creative_" .. player_name .. ";main]" .. + "tabheader[0,0;creative_tabs;Crafting,All,Nodes,Tools,Items;" .. tostring(inv.tab_id) .. ";true;false]" .. + "list[detached:creative_" .. player_name .. ";main;0,0;8,3;" .. tostring(start_i) .. "]" .. + "table[6.05,3.35;1.15,0.5;pagenum;#FFFF00," .. tostring(pagenum) .. ",#FFFFFF,/ " .. tostring(pagemax) .. "]" .. + default.get_hotbar_bg(0,4.7) .. + default.gui_bg .. default.gui_bg_img .. default.gui_slots + .. creative.formspec_add ) end + +creative.set_crafting_formspec = function(player) + player:set_inventory_formspec([[ + size[8,8.6] + list[current_player;craft;2,0.75;3,3;] + list[current_player;craftpreview;6,1.75;1,1;] + list[current_player;main;0,4.7;8,1;] + list[current_player;main;0,5.85;8,3;8] + list[detached:creative_trash;main;0,2.75;1,1;] + image[0.06,2.85;0.8,0.8;creative_trash_icon.png] + image[5,1.75;1,1;gui_furnace_arrow_bg.png^[transformR270] + tabheader[0,0;creative_tabs;Crafting,All,Nodes,Tools,Items;1;true;false] + listring[current_player;main] + listring[current_player;craft] + ]] .. + default.get_hotbar_bg(0,4.7) .. + default.gui_bg .. default.gui_bg_img .. default.gui_slots + ) +end + minetest.register_on_joinplayer(function(player) -- If in creative mode, modify player's inventory forms - if not minetest.setting_getbool("creative_mode") then + if not creative_mode then return end - creative_inventory.set_creative_formspec(player, 0, 1) + creative.init_creative_inventory(player) + creative.set_creative_formspec(player, 0) end) + minetest.register_on_player_receive_fields(function(player, formname, fields) - if not minetest.setting_getbool("creative_mode") then + if formname ~= "" or not 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 + local player_name = player:get_player_name() + local inv = player_inventory[player_name] + + -- If creative is turned on mid game + if not inv then + creative.init_creative_inventory(player) + creative.set_creative_formspec(player, 0) + return 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 + if fields.quit then + if inv.tab_id == 1 then + creative.set_crafting_formspec(player) + end + elseif fields.creative_tabs then + local tab = tonumber(fields.creative_tabs) + inv.tab_id = tab + player_inventory[player_name].start_i = 1 - creative_inventory.set_creative_formspec(player, start_i, start_i / (6*4) + 1) + if tab == 1 then + creative.set_crafting_formspec(player) + else + creative.update_creative_inventory(player_name) + creative.set_creative_formspec(player, 0) + end + elseif fields.creative_clear then + player_inventory[player_name].start_i = 1 + inv.filter = "" + creative.update_creative_inventory(player_name) + creative.set_creative_formspec(player, 0) + elseif fields.creative_search or + fields.key_enter_field == "creative_filter" then + player_inventory[player_name].start_i = 1 + inv.filter = fields.creative_filter:lower() + creative.update_creative_inventory(player_name) + creative.set_creative_formspec(player, 0) + else + local start_i = player_inventory[player_name].start_i or 0 + + if fields.creative_prev then + start_i = start_i - 3*8 + if start_i < 0 then + start_i = inv.size - (inv.size % (3*8)) + if inv.size == start_i then + start_i = math.max(0, inv.size - (3*8)) + end + end + elseif fields.creative_next then + start_i = start_i + 3*8 + if start_i >= inv.size then + start_i = 0 + end + end + + player_inventory[player_name].start_i = start_i + creative.set_creative_formspec(player, start_i) + end end) -if minetest.setting_getbool("creative_mode") then +if creative_mode then local digtime = 0.5 + local caps = {times = {digtime, digtime, digtime}, uses = 0, maxlevel = 3} + minetest.register_item(":", { type = "none", wield_image = "wieldhand.png", - wield_scale = {x=1,y=1,z=2.5}, + 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}, + crumbly = caps, + cracky = caps, + snappy = caps, + choppy = caps, + oddly_breakable_by_hand = caps, }, damage_groups = {fleshy = 10}, } }) - + minetest.register_on_placenode(function(pos, newnode, placer, oldnode, itemstack) - return true + return 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 + for _, item in ipairs(drops) do item = ItemStack(item):get_name() if not inv:contains_item("main", item) then inv:add_item("main", item) @@ -168,5 +270,4 @@ if minetest.setting_getbool("creative_mode") then end end end - end diff --git a/mods/creative/license.txt b/mods/creative/license.txt new file mode 100644 index 00000000..4ad1d5ff --- /dev/null +++ b/mods/creative/license.txt @@ -0,0 +1,60 @@ +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2012-2016 Perttu Ahola (celeron55) +Copyright (C) 2015-2016 Jean-Patrick G. (kilbith) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT + + +Licenses of media (textures) +---------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2016 Jean-Patrick G. (kilbith) + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike — If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/mods/creative/textures/creative_trash_icon.png b/mods/creative/textures/creative_trash_icon.png new file mode 100644 index 00000000..e789ad63 Binary files /dev/null and b/mods/creative/textures/creative_trash_icon.png differ diff --git a/mods/default/README.txt b/mods/default/README.txt old mode 100644 new mode 100755 index 703f3dc9..d316f08e --- a/mods/default/README.txt +++ b/mods/default/README.txt @@ -1,106 +1,83 @@ -Minetest 0.4 mod: default +Minetest Game mod: default ========================== +See license.txt for license information. -License of source code: ------------------------ -Copyright (C) 2011-2012 celeron55, Perttu Ahola +Authors of source code +---------------------- +Originally by celeron55, Perttu Ahola (LGPL 2.1) +Various Minetest developers and contributors (LGPL 2.1) -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 ------------------------ +Authors of media (textures, models and sounds) +---------------------------------------------- Everything not listed in here: -Copyright (C) 2010-2012 celeron55, Perttu Ahola +celeron55, Perttu Ahola (CC BY-SA 3.0) -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 +Cisoun's texture pack (CC BY-SA 3.0): 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: +Cisoun's conifers mod (CC BY-SA 3.0): + default_pine_needles.png + +Originating from G4JC's Almost MC Texture Pack (CC BY-SA 3.0): default_torch.png default_torch_on_ceiling.png default_torch_on_floor.png -VanessaE's animated torches (WTFPL): +VanessaE's animated torches (CC BY-SA 3.0): 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): +RealBadAngel's animated water (CC BY-SA 3.0): 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 +VanessaE (CC BY-SA 3.0): default_desert_sand.png default_desert_stone.png - default_desert_stone_brick.png default_sand.png - default_sandstone_brick.png + default_mese_crystal.png + default_mese_crystal_fragment.png -Calinou (CC BY-SA): +Calinou (CC BY-SA 3.0): default_brick.png default_papyrus.png - default_copper_lump.png default_mineral_copper.png + default_glass_detail.png + default_tool_goldsword.png -MirceaKitsune (WTFPL): +MirceaKitsune (CC BY-SA 3.0): character.x Jordach (CC BY-SA 3.0): character.png -PilzAdam (WTFPL): +PilzAdam (CC BY-SA 3.0): 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): +jojoa1997 (CC BY-SA 3.0): default_obsidian.png -InfinityProject (WTFPL): +InfinityProject (CC BY-SA 3.0): default_mineral_diamond.png Splizard (CC BY-SA 3.0): default_snow.png default_snow_side.png - default_ice.png + default_pine_sapling.png Zeg9 (CC BY-SA 3.0): default_coal_block.png @@ -110,38 +87,130 @@ Zeg9 (CC BY-SA 3.0): default_gold_block.png paramat (CC BY-SA 3.0): - wieldhand.png, based on character.png by Jordach (CC BY-SA 3.0) + wieldhand.png -- Copied from character.png by Jordach (CC BY-SA 3.0) + default_pinetree.png + default_pinetree_top.png + default_pinewood.png + default_acacia_leaves.png + default_acacia_leaves_simple.png + default_acacia_sapling.png + default_acacia_tree.png + default_acacia_tree_top.png + default_acacia_wood.png + default_acacia_bush_stem.png + default_bush_stem.png + default_junglewood.png + default_jungletree_top.png + default_sandstone_brick.png + default_obsidian_brick.png + default_stone_brick.png + default_desert_stone_brick.png + default_sandstone_block.png + default_obsidian_block.png + default_stone_block.png + default_desert_stone_block.png + default_river_water.png + default_river_water_source_animated.png + default_river_water_flowing_animated.png + default_dry_grass.png + default_dry_grass_side.png + default_dry_grass_*.png + default_grass.png + default_grass_side.png + default_snow_side.png + default_mese_block.png + default_silver_sand.png 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_iron_ingot.png default_gold_ingot.png + default_tool_steelsword.png default_diamond.png - default_diamond_block.png + default_book.png default_tool_*.png default_lava_source_animated.png default_lava_flowing_animated.png - default_book.png - default_paper.png default_stick.png + default_chest_front.png + default_chest_lock.png + default_chest_side.png + default_chest_top.png + default_mineral_mese.png + default_meselamp.png bubble.png heart.png gui_*.png +Wuzzy (CC BY-SA 3.0): + default_bookshelf_slot.png (based on default_book.png) + +sofar (CC BY-SA 3.0): + default_book_written.png, based on default_book.png + default_aspen_sapling + default_aspen_leaves + default_aspen_tree + default_aspen_tree_top, derived from default_pine_tree_top (by paramat) + default_aspen_wood, derived from default_pine_wood (by paramat) + +sofar (WTFPL): + default_gravel.png -- Derived from Gambit's PixelBOX texture pack light gravel + +Neuromancer (CC BY-SA 2.0): + default_cobble.png, based on texture by Brane praefect + default_mossycobble.png, based on texture by Brane praefect + +Neuromancer (CC BY-SA 3.0): + default_dirt.png + default_furnace_*.png + +Gambit (CC BY-SA 3.0): + default_bronze_ingot.png + default_copper_ingot.png + default_copper_lump.png + default_iron_lump.png + default_gold_lump.png + default_clay_lump.png + default_coal.png + default_grass_*.png + default_paper.png + default_diamond_block.png + default_ladder_steel.png + default_sign_wall_wood.png + default_flint.png + default_snow.png + default_snow_side.png + default_snowball.png + +asl97 (CC BY-SA 3.0): + default_ice.png + +KevDoy (CC BY-SA 3.0) + heart.png + +Pithydon (CC BY-SA 3.0) + default_coral_brown.png + default_coral_orange.png + default_coral_skeleton.png + +Ferk (CC0 1.0) + default_item_smoke.png + default_item_smoke.ogg, based on sound by http://opengameart.org/users/bart + 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): +sonictechtonic (CC BY 3.0): +https://www.freesound.org/people/sonictechtonic/sounds/241872/ + player_damage.ogg + +Mito551 (sounds) (CC BY-SA 3.0): default_dig_choppy.ogg default_dig_cracky.ogg default_dig_crumbly.1.ogg diff --git a/mods/default/aliases.lua b/mods/default/aliases.lua old mode 100644 new mode 100755 index d80082e2..bd6f5925 --- a/mods/default/aliases.lua +++ b/mods/default/aliases.lua @@ -1,6 +1,7 @@ --- aliases (Minetest 0.4 mod) --- Provides alias for most default items +-- mods/default/aliases.lua +-- Aliases to support loading worlds using nodes following the old naming convention +-- These can also be helpful when using chat commands, for example /giveme minetest.register_alias("stone", "default:stone") minetest.register_alias("stone_with_coal", "default:stone_with_coal") minetest.register_alias("stone_with_iron", "default:stone_with_iron") @@ -22,7 +23,7 @@ minetest.register_alias("bookshelf", "default:bookshelf") minetest.register_alias("glass", "default:glass") minetest.register_alias("wooden_fence", "default:fence_wood") minetest.register_alias("rail", "default:rail") -minetest.register_alias("ladder", "default:ladder") +minetest.register_alias("ladder", "default:ladder_wood") minetest.register_alias("wood", "default:wood") minetest.register_alias("mese", "default:mese") minetest.register_alias("cloud", "default:cloud") @@ -31,15 +32,13 @@ minetest.register_alias("water_source", "default:water_source") minetest.register_alias("lava_flowing", "default:lava_flowing") minetest.register_alias("lava_source", "default:lava_source") minetest.register_alias("torch", "default:torch") -minetest.register_alias("sign_wall", "default:sign_wall") +minetest.register_alias("sign_wall", "default:sign_wall_wood") minetest.register_alias("furnace", "default:furnace") minetest.register_alias("chest", "default:chest") minetest.register_alias("locked_chest", "default:chest_locked") minetest.register_alias("cobble", "default:cobble") minetest.register_alias("mossycobble", "default:mossycobble") minetest.register_alias("steelblock", "default:steelblock") -minetest.register_alias("nyancat", "default:nyancat") -minetest.register_alias("nyancat_rainbow", "default:nyancat_rainbow") minetest.register_alias("sapling", "default:sapling") minetest.register_alias("apple", "default:apple") @@ -65,3 +64,37 @@ 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("snow", "default:snow") + +-- 'mese_block' was used for a while for the block form of mese +minetest.register_alias("default:mese_block", "default:mese") + +-- Aliases for corrected pine node names +minetest.register_alias("default:pinetree", "default:pine_tree") +minetest.register_alias("default:pinewood", "default:pine_wood") + +minetest.register_alias("default:ladder", "default:ladder_wood") +minetest.register_alias("default:sign_wall", "default:sign_wall_wood") + +-- Those lines are for moreores integration +minetest.register_alias("moreores:pick_silver", "default:pick_silver") +minetest.register_alias("moreores:pick_mithril", "default:pick_mithril") +minetest.register_alias("moreores:shovel_silver", "default:shovel_silver") +minetest.register_alias("moreores:shovel_mithril", "default:shovel_mithril") +minetest.register_alias("moreores:axe_silver", "default:axe_silver") +minetest.register_alias("moreores:axe_mithril", "default:axe_mithril") +minetest.register_alias("moreores:sword_silver", "default:sword_silver") +minetest.register_alias("moreores:sword_mithril", "default:sword_mithril") +minetest.register_alias("moreores:mineral_silver", "default:stone_with_silver") +minetest.register_alias("moreores:mineral_tin", "default:stone_with_tin") +minetest.register_alias("moreores:mineral_mithril", "default:stone_with_mithril") +minetest.register_alias("moreores:mithril_ingot", "default:mithril_ingot") +minetest.register_alias("moreores:silver_ingot", "default:silver_ingot") +minetest.register_alias("moreores:tin_ingot", "default:tin_ingot") +minetest.register_alias("moreores:mithril_lump", "default:mithril_lump") +minetest.register_alias("moreores:silver_lump", "default:silver_lump") +minetest.register_alias("moreores:tin_lump", "default:tin_lump") +minetest.register_alias("moreores:mithril_block", "default:mithrilblock") +minetest.register_alias("moreores:silver_block", "default:silverblock") +minetest.register_alias("moreores:tin_block", "default:tinblock") + diff --git a/mods/default/crafting.lua b/mods/default/crafting.lua old mode 100644 new mode 100755 index 113e1d50..05924117 --- a/mods/default/crafting.lua +++ b/mods/default/crafting.lua @@ -7,6 +7,13 @@ minetest.register_craft({ } }) +minetest.register_craft({ + output = 'default:cherry_plank 6', + recipe = { + {'default:cherry_log'}, + } +}) + minetest.register_craft({ output = 'default:junglewood 4', recipe = { @@ -15,22 +22,58 @@ minetest.register_craft({ }) minetest.register_craft({ - output = 'default:stick 4', + output = 'default:pine_wood 4', + recipe = { + {'default:pine_tree'}, + } +}) + +minetest.register_craft({ + output = 'default:acacia_wood 4', + recipe = { + {'default:acacia_tree'}, + } +}) + +minetest.register_craft({ + output = 'default:aspen_wood 4', + recipe = { + {'default:aspen_tree'}, + } +}) + +minetest.register_craft({ + output = 'default:wood', + recipe = { + {'default:bush_stem'}, + } +}) + +minetest.register_craft({ + output = 'default:acacia_wood', + recipe = { + {'default:acacia_bush_stem'}, + } +}) + +minetest.register_craft({ + output = 'default:stick 9', recipe = { {'group:wood'}, } }) minetest.register_craft({ - output = 'default:fence_wood 2', + output = 'default:sign_wall_steel 3', recipe = { - {'group:stick', 'group:stick', 'group:stick'}, - {'group:stick', 'group:stick', 'group:stick'}, + {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}, + {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}, + {'', 'group:stick', ''}, } }) minetest.register_craft({ - output = 'default:sign_wall', + output = 'default:sign_wall_wood 3', recipe = { {'group:wood', 'group:wood', 'group:wood'}, {'group:wood', 'group:wood', 'group:wood'}, @@ -82,6 +125,24 @@ minetest.register_craft({ } }) +minetest.register_craft({ + output = 'default:pick_silver', + recipe = { + {'default:silver_ingot', 'default:silver_ingot', 'default:silver_ingot'}, + {'', 'group:stick', ''}, + {'', 'group:stick', ''}, + } +}) + +minetest.register_craft({ + output = 'default:pick_gold', + recipe = { + {'default:gold_ingot', 'default:gold_ingot', 'default:gold_ingot'}, + {'', 'group:stick', ''}, + {'', 'group:stick', ''}, + } +}) + minetest.register_craft({ output = 'default:pick_mese', recipe = { @@ -91,6 +152,15 @@ minetest.register_craft({ } }) +minetest.register_craft({ + output = 'default:pick_mithril', + recipe = { + {'default:mithril_ingot', 'default:mithril_ingot', 'default:mithril_ingot'}, + {'', 'group:stick', ''}, + {'', 'group:stick', ''}, + } +}) + minetest.register_craft({ output = 'default:pick_diamond', recipe = { @@ -100,6 +170,15 @@ minetest.register_craft({ } }) +minetest.register_craft({ + output = 'default:pick_nyan', + recipe = { + {'default:nyancat', 'default:nyancat', 'default:nyancat'}, + {'', 'group:stick', ''}, + {'', 'group:stick', ''}, + } +}) + minetest.register_craft({ output = 'default:shovel_wood', recipe = { @@ -136,6 +215,24 @@ minetest.register_craft({ } }) +minetest.register_craft({ + output = 'default:shovel_silver', + recipe = { + {'default:silver_ingot'}, + {'group:stick'}, + {'group:stick'}, + } +}) + +minetest.register_craft({ + output = 'default:shovel_gold', + recipe = { + {'default:gold_ingot'}, + {'group:stick'}, + {'group:stick'}, + } +}) + minetest.register_craft({ output = 'default:shovel_mese', recipe = { @@ -145,6 +242,15 @@ minetest.register_craft({ } }) +minetest.register_craft({ + output = 'default:shovel_mithril', + recipe = { + {'default:mithril_ingot'}, + {'group:stick'}, + {'group:stick'}, + } +}) + minetest.register_craft({ output = 'default:shovel_diamond', recipe = { @@ -154,6 +260,15 @@ minetest.register_craft({ } }) +minetest.register_craft({ + output = "default:shovel_nyan", + recipe = { + {"default:nyancat"}, + {"group:stick"}, + {"group:stick"}, + } +}) + minetest.register_craft({ output = 'default:axe_wood', recipe = { @@ -190,6 +305,24 @@ minetest.register_craft({ } }) +minetest.register_craft({ + output = 'default:axe_silver', + recipe = { + {'default:silver_ingot', 'default:silver_ingot'}, + {'default:silver_ingot', 'group:stick'}, + {'', 'group:stick'}, + } +}) + +minetest.register_craft({ + output = "default:axe_gold", + recipe = { + {"default:gold_ingot", "default:gold_ingot"}, + {"default:gold_ingot", "group:stick"}, + {"", "group:stick"}, + } +}) + minetest.register_craft({ output = 'default:axe_mese', recipe = { @@ -199,6 +332,15 @@ minetest.register_craft({ } }) +minetest.register_craft({ + output = 'default:axe_mithril', + recipe = { + {'default:mithril_ingot', 'default:mithril_ingot'}, + {'default:mithril_ingot', 'group:stick'}, + {'', 'group:stick'}, + } +}) + minetest.register_craft({ output = 'default:axe_diamond', recipe = { @@ -208,12 +350,21 @@ minetest.register_craft({ } }) +minetest.register_craft({ + output = "default:axe_nyan", + recipe = { + {"default:nyancat", "default:nyancat"}, + {"default:nyancat", "group:stick"}, + {"", "group:stick"}, + } +}) + minetest.register_craft({ output = 'default:axe_wood', recipe = { {'group:wood', 'group:wood'}, - {'default:stick', 'group:wood'}, - {'default:stick',''}, + {'group:stick', 'group:wood'}, + {'group:stick',''}, } }) @@ -221,8 +372,8 @@ minetest.register_craft({ output = 'default:axe_stone', recipe = { {'group:stone', 'group:stone'}, - {'default:stick', 'group:stone'}, - {'default:stick', ''}, + {'group:stick', 'group:stone'}, + {'group:stick', ''}, } }) @@ -230,8 +381,8 @@ minetest.register_craft({ output = 'default:axe_steel', recipe = { {'default:steel_ingot', 'default:steel_ingot'}, - {'default:stick', 'default:steel_ingot'}, - {'default:stick', ''}, + {'group:stick', 'default:steel_ingot'}, + {'group:stick', ''}, } }) @@ -239,8 +390,26 @@ minetest.register_craft({ output = 'default:axe_bronze', recipe = { {'default:bronze_ingot', 'default:bronze_ingot'}, - {'default:stick', 'default:bronze_ingot'}, - {'default:stick', ''}, + {'group:stick', 'default:bronze_ingot'}, + {'group:stick', ''}, + } +}) + +minetest.register_craft({ + output = 'default:axe_silver', + recipe = { + {'default:silver_ingot', 'default:silver_ingot'}, + {'group:stick', 'default:silver_ingot'}, + {'group:stick', ''}, + } +}) + +minetest.register_craft({ + output = 'default:axe_gold', + recipe = { + {'default:gold_ingot', 'default:gold_ingot'}, + {'group:stick', 'default:gold_ingot'}, + {'group:stick', ''}, } }) @@ -248,8 +417,17 @@ minetest.register_craft({ output = 'default:axe_mese', recipe = { {'default:mese_crystal', 'default:mese_crystal'}, - {'default:stick', 'default:mese_crystal'}, - {'default:stick', ''}, + {'group:stick', 'default:mese_crystal'}, + {'group:stick', ''}, + } +}) + +minetest.register_craft({ + output = 'default:axe_mithril', + recipe = { + {'default:mithril_ingot', 'default:mithril_ingot'}, + {'group:stick', 'default:mithril_ingot'}, + {'group:stick', ''}, } }) @@ -257,8 +435,17 @@ minetest.register_craft({ output = 'default:axe_diamond', recipe = { {'default:diamond', 'default:diamond'}, - {'default:stick', 'default:diamond'}, - {'default:stick', ''}, + {'group:stick', 'default:diamond'}, + {'group:stick', ''}, + } +}) + +minetest.register_craft({ + output = 'default:axe_nyan', + recipe = { + {'default:nyancat', 'default:nyancat'}, + {'group:stick', 'default:nyancat'}, + {'group:stick', ''}, } }) @@ -298,6 +485,24 @@ minetest.register_craft({ } }) +minetest.register_craft({ + output = 'default:sword_silver', + recipe = { + {'default:silver_ingot'}, + {'default:silver_ingot'}, + {'group:stick'}, + } +}) + +minetest.register_craft({ + output = "default:sword_gold", + recipe = { + {"default:gold_ingot"}, + {"default:gold_ingot"}, + {"group:stick"}, + } +}) + minetest.register_craft({ output = 'default:sword_mese', recipe = { @@ -307,6 +512,15 @@ minetest.register_craft({ } }) +minetest.register_craft({ + output = 'default:sword_mithril', + recipe = { + {'default:mithril_ingot'}, + {'default:mithril_ingot'}, + {'group:stick'}, + } +}) + minetest.register_craft({ output = 'default:sword_diamond', recipe = { @@ -317,7 +531,26 @@ minetest.register_craft({ }) minetest.register_craft({ - output = 'default:rail 15', + output = "default:sword_nyan", + recipe = { + {"default:nyancat"}, + {"default:nyancat"}, + {"group:stick"}, + } +}) + + +minetest.register_craft({ -- Ultimate Warrior weapon + output = 'default:dungeon_master_s_blood_sword', + recipe = { + {"mobs:dungeon_master_blood", "nether:white", "mobs:dungeon_master_blood"}, + {"mobs:dungeon_master_blood", "mobs:dungeon_master_diamond", "mobs:dungeon_master_blood"}, + {"default:mithrilblock", "mobs:zombie_tibia", "default:mithrilblock"}, + } +}) + +minetest.register_craft({ + output = 'default:rail 24', recipe = { {'default:steel_ingot', '', 'default:steel_ingot'}, {'default:steel_ingot', 'group:stick', 'default:steel_ingot'}, @@ -338,11 +571,17 @@ minetest.register_craft({ output = 'default:chest_locked', recipe = { {'group:wood', 'group:wood', 'group:wood'}, - {'group:wood', 'default:steel_ingot', 'group:wood'}, + {'group:wood', 'group:ingot', 'group:wood'}, {'group:wood', 'group:wood', 'group:wood'}, } }) +minetest.register_craft({ + type = "shapeless", + output = "default:chest_locked", + recipe = {"default:chest", "group:ingot"}, +}) + minetest.register_craft({ output = 'default:furnace', recipe = { @@ -352,12 +591,37 @@ minetest.register_craft({ } }) +minetest.register_craft({ + output = "default:furnace_locked", + recipe = { + {"group:stone", "group:stone", "group:stone"}, + {"group:stone", "group:ingot", "group:stone"}, + {"group:stone", "group:stone", "group:stone"}, + }, +}) + +minetest.register_craft({ + type = "shapeless", + output = "default:furnace_locked", + recipe = {"default:furnace", "group:ingot"}, +}) + minetest.register_craft({ type = "shapeless", output = "default:bronze_ingot", recipe = {"default:steel_ingot", "default:copper_ingot"}, }) +minetest.register_craft({ + type = "shapeless", + output = "default:bronze_ingot 3", + recipe = { + "default:tin_ingot", + "default:copper_ingot", + "default:copper_ingot", + } +}) + minetest.register_craft({ output = 'default:coalblock', recipe = { @@ -406,6 +670,23 @@ minetest.register_craft({ } }) +minetest.register_craft({ + output = 'default:tinblock', + recipe = { + {'default:tin_ingot', 'default:tin_ingot', 'default:tin_ingot'}, + {'default:tin_ingot', 'default:tin_ingot', 'default:tin_ingot'}, + {'default:tin_ingot', 'default:tin_ingot', 'default:tin_ingot'}, + } +}) + +minetest.register_craft({ + output = 'default:tin_ingot 9', + recipe = { + {'default:tinblock'}, + } +}) + + minetest.register_craft({ output = 'default:bronzeblock', recipe = { @@ -422,6 +703,22 @@ minetest.register_craft({ } }) +minetest.register_craft({ + output = 'default:silverblock', + recipe = { + {'default:silver_ingot', 'default:silver_ingot', 'default:silver_ingot'}, + {'default:silver_ingot', 'default:silver_ingot', 'default:silver_ingot'}, + {'default:silver_ingot', 'default:silver_ingot', 'default:silver_ingot'}, + } +}) + +minetest.register_craft({ + output = 'default:silver_ingot 9', + recipe = { + {'default:silverblock'}, + } +}) + minetest.register_craft({ output = 'default:goldblock', recipe = { @@ -431,6 +728,22 @@ minetest.register_craft({ } }) +minetest.register_craft({ + output = 'default:mithrilblock', + recipe = { + {'default:mithril_ingot', 'default:mithril_ingot', 'default:mithril_ingot'}, + {'default:mithril_ingot', 'default:mithril_ingot', 'default:mithril_ingot'}, + {'default:mithril_ingot', 'default:mithril_ingot', 'default:mithril_ingot'}, + } +}) + +minetest.register_craft({ + output = 'default:mithril_ingot 9', + recipe = { + {'default:mithrilblock'}, + } +}) + minetest.register_craft({ output = 'default:gold_ingot 9', recipe = { @@ -455,10 +768,10 @@ minetest.register_craft({ }) minetest.register_craft({ - output = 'default:sandstone', + output = 'default:sandstone 2', recipe = { - {'group:sand', 'group:sand'}, - {'group:sand', 'group:sand'}, + {'default:sand', 'default:sand'}, + {'default:sand', 'default:sand'}, } }) @@ -477,6 +790,37 @@ minetest.register_craft({ } }) + +minetest.register_craft({ + output = "default:desert_sand", + recipe = { + {"default:sand"}, + } +}) + +minetest.register_craft({ + output = 'default:sandstone_block 9', + recipe = { + {'default:sandstone', 'default:sandstone', 'default:sandstone'}, + {'default:sandstone', 'default:sandstone', 'default:sandstone'}, + {'default:sandstone', 'default:sandstone', 'default:sandstone'}, + } +}) + +minetest.register_craft({ + output = "default:cactus 2", + recipe = { + {"default:cactus_spiky", "default:cactus_spiky"}, + }, +}) + +minetest.register_craft({ + output = "default:cactus_spiky 2", + recipe = { + {"default:cactus", "default:cactus"}, + }, +}) + minetest.register_craft({ output = 'default:clay', recipe = { @@ -485,6 +829,13 @@ minetest.register_craft({ } }) +minetest.register_craft({ + output = 'default:clay_lump 4', + recipe = { + {'default:clay'}, + } +}) + minetest.register_craft({ output = 'default:brick', recipe = { @@ -526,7 +877,7 @@ minetest.register_craft({ }) minetest.register_craft({ - output = 'default:ladder', + output = 'default:ladder_wood 3', recipe = { {'group:stick', '', 'group:stick'}, {'group:stick', 'group:stick', 'group:stick'}, @@ -534,6 +885,15 @@ minetest.register_craft({ } }) +minetest.register_craft({ + output = 'default:ladder_steel 15', + recipe = { + {'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:mese', recipe = { @@ -557,6 +917,52 @@ minetest.register_craft({ } }) +minetest.register_craft({ + output = "default:mese_crystal", + recipe = { + {"default:mese_crystal_fragment", "default:mese_crystal_fragment", "default:mese_crystal_fragment"}, + {"default:mese_crystal_fragment", "default:mese_crystal_fragment", "default:mese_crystal_fragment"}, + {"default:mese_crystal_fragment", "default:mese_crystal_fragment", "default:mese_crystal_fragment"}, + } +}) + +minetest.register_craft({ + output = "default:sand", + recipe = { + {"default:gravel"}, + } +}) + +minetest.register_craft({ + output = "default:dirt 4", + type = "shapeless", + recipe = {"default:gravel", "default:gravel", "default:gravel", "default:gravel"} +}) + +minetest.register_craft({ + output = "default:gravel", + recipe = { + {"default:cobble"}, + } +}) + +minetest.register_craft({ + output = "default:desert_stone 2", + recipe = { + {"default:desert_sand", "default:desert_sand"}, + {"default:desert_sand", "default:desert_sand"}, + } +}) + + +minetest.register_craft({ + output = 'default:meselamp 1', + recipe = { + {'', 'default:mese_crystal',''}, + {'default:mese_crystal', 'default:glass', 'default:mese_crystal'}, + } +}) + minetest.register_craft({ output = 'default:obsidian_shard 9', recipe = { @@ -573,6 +979,32 @@ minetest.register_craft({ } }) +minetest.register_craft({ + output = 'default:obsidianbrick 4', + recipe = { + {'default:obsidian', 'default:obsidian'}, + {'default:obsidian', 'default:obsidian'} + } +}) + +minetest.register_craft({ + output = 'default:obsidian_block 9', + recipe = { + {'default:obsidian', 'default:obsidian', 'default:obsidian'}, + {'default:obsidian', 'default:obsidian', 'default:obsidian'}, + {'default:obsidian', 'default:obsidian', 'default:obsidian'}, + } +}) + +minetest.register_craft({ + output = "default:ladder_obsidian 4", + recipe = { + {"default:obsidianbrick", "", "default:obsidianbrick"}, + {"default:obsidianbrick", "default:obsidianbrick", "default:obsidianbrick"}, + {"default:obsidianbrick", "", "default:obsidianbrick"} + } +}) + minetest.register_craft({ output = 'default:stonebrick 4', recipe = { @@ -581,6 +1013,15 @@ minetest.register_craft({ } }) +minetest.register_craft({ + output = 'default:stone_block 9', + recipe = { + {'default:stone', 'default:stone', 'default:stone'}, + {'default:stone', 'default:stone', 'default:stone'}, + {'default:stone', 'default:stone', 'default:stone'}, + } +}) + minetest.register_craft({ output = 'default:desert_stonebrick 4', recipe = { @@ -589,6 +1030,15 @@ minetest.register_craft({ } }) +minetest.register_craft({ + output = 'default:desert_stone_block 9', + recipe = { + {'default:desert_stone', 'default:desert_stone', 'default:desert_stone'}, + {'default:desert_stone', 'default:desert_stone', 'default:desert_stone'}, + {'default:desert_stone', 'default:desert_stone', 'default:desert_stone'}, + } +}) + minetest.register_craft({ output = 'default:snowblock', recipe = { @@ -605,6 +1055,12 @@ minetest.register_craft({ } }) +minetest.register_craft({ + output = "maptools:superapple", + type = "shapeless", + recipe = {"default:apple", "default:mese", "default:mese"}, +}) + -- -- Crafting (tool repair) -- @@ -635,6 +1091,12 @@ minetest.register_craft({ recipe = "default:cobble", }) +minetest.register_craft({ + type = "cooking", + output = "default:stone", + recipe = "default:mossycobble", +}) + minetest.register_craft({ type = "cooking", output = "default:desert_stone", @@ -655,16 +1117,57 @@ minetest.register_craft({ minetest.register_craft({ type = "cooking", - output = "default:gold_ingot", - recipe = "default:gold_lump", + output = "default:tin_ingot", + recipe = "default:tin_lump", }) minetest.register_craft({ type = "cooking", + output = "default:silver_ingot", + recipe = "default:silver_lump", +}) + +minetest.register_craft({ + type = "cooking", + output = "default:gold_ingot", + recipe = "default:gold_lump", +}) + + +-- +-- Fuels +-- + +-- Support use of group:tree +minetest.register_craft({ + type = "cooking", + output = "default:gold_ingot", + recipe = "default:gold_lump", +}) + +-- Burn time for all woods are in order of wood density, +-- which is also the order of wood colour darkness: +-- aspen, pine, apple, acacia, jungle + +minetest.register_craft({ + type = "cooking", + output = "default:mithril_ingot", + recipe = "default:mithril_lump", +}) + +minetest.register_craft({ + type = "cooking", + cooktime = 2, -- //MFF(Mg|07/24/15) output = "default:clay_brick", recipe = "default:clay_lump", }) +minetest.register_craft({ + type = "cooking", + output = "default:clay_burned", + recipe = "default:clay", +}) + -- -- Fuels -- @@ -672,72 +1175,162 @@ minetest.register_craft({ minetest.register_craft({ type = "fuel", recipe = "group:tree", - burntime = 30, + burntime = 40, +}) + + +-- Support use of group:wood +minetest.register_craft({ + type = "fuel", + recipe = "group:stick", + burntime = 1, }) 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", + recipe = "group:leaves", burntime = 4, }) minetest.register_craft({ type = "fuel", - recipe = "default:sign_wall", + recipe = "default:cactus", + burntime = 20, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:papyrus", + burntime = 3, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:bookshelf", + burntime = 50, +}) + + +-- Support use of group:sapling +minetest.register_craft({ + type = "fuel", + recipe = "default:fence_wood", + burntime = 4, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:fence_acacia_wood", + burntime = 15, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:fence_junglewood", + burntime = 15, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:fence_pine_wood", + burntime = 15, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:acacia_sapling", + burntime = 11, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:junglesapling", + burntime = 12, +}) + + +minetest.register_craft({ + type = "fuel", + recipe = "default:fence_aspen_wood", + burntime = 15, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:ladder_wood", + burntime = 3, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "group:wood", + burntime = 10, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:lava_source", + burntime = 80, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:torch", + burntime = 5, +}) + + +minetest.register_craft({ + type = "fuel", + recipe = "default:sign_wall_wood", + burntime = 15, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:bush_stem", + burntime = 7, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:acacia_bush_stem", + burntime = 8, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:chest", + burntime = 80, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:chest_locked", + burntime = 85, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:nyancat", + burntime = 7200, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:nyancat_rainbow", + burntime = 1200, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "group:sapling", burntime = 10, }) @@ -753,28 +1346,10 @@ minetest.register_craft({ 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, + burntime = 5, }) minetest.register_craft({ @@ -791,12 +1366,13 @@ minetest.register_craft({ minetest.register_craft({ type = "fuel", - recipe = "default:junglesapling", - burntime = 10, + recipe = "default:grass_1", + burntime = 3, }) minetest.register_craft({ type = "fuel", - recipe = "default:grass_1", + recipe = "default:dry_grass_1", burntime = 2, }) + diff --git a/mods/default/craftitems.lua b/mods/default/craftitems.lua old mode 100644 new mode 100755 index 026a31c0..626b4ef9 --- a/mods/default/craftitems.lua +++ b/mods/default/craftitems.lua @@ -2,23 +2,256 @@ minetest.register_craftitem("default:stick", { description = "Stick", + stack_max = 1000, inventory_image = "default_stick.png", - groups = {stick=1}, + groups = {stick = 1, flammable = 2}, }) minetest.register_craftitem("default:paper", { description = "Paper", inventory_image = "default_paper.png", + groups = {flammable = 3}, }) + +local lpp = 14 -- Lines per book's page +local function book_on_use(itemstack, user) + local player_name = user:get_player_name() + local data = minetest.deserialize(itemstack:get_metadata()) + local title, text, owner = "", "", player_name + local page, page_max, lines, string = 1, 1, {}, "" + + if data.owner then + title = data.title + text = data.text + owner = data.owner + + for str in (text .. "\n"):gmatch("([^\n]*)[\n]") do + lines[#lines+1] = str + end + + if data.page then + page = data.page + page_max = data.page_max + + for i = ((lpp * page) - lpp) + 1, lpp * page do + if not lines[i] then break end + string = string .. lines[i] .. "\n" + end + end + end + + local formspec + if owner == player_name then + formspec = "size[8,8]" .. default.gui_bg .. + default.gui_bg_img .. + "field[0.5,1;7.5,0;title;Title:;" .. + minetest.formspec_escape(title) .. "]" .. + "textarea[0.5,1.5;7.5,7;text;Contents:;" .. + minetest.formspec_escape(text) .. "]" .. + "button_exit[2.5,7.5;3,1;save;Save]" + else + formspec = "size[8,8]" .. default.gui_bg .. + default.gui_bg_img .. + "label[0.5,0.5;by " .. owner .. "]" .. + "tablecolumns[color;text]" .. + "tableoptions[background=#00000000;highlight=#00000000;border=false]" .. + "table[0.4,0;7,0.5;title;#FFFF00," .. minetest.formspec_escape(title) .. "]" .. + "textarea[0.5,1.5;7.5,7;;" .. + minetest.formspec_escape(string ~= "" and string or text) .. ";]" .. + "button[2.4,7.6;0.8,0.8;book_prev;<]" .. + "label[3.2,7.7;Page " .. page .. " of " .. page_max .. "]" .. + "button[4.9,7.6;0.8,0.8;book_next;>]" + end + + minetest.show_formspec(player_name, "default:book", formspec) +end + +local max_text_size = 10000 +local max_title_size = 80 +local short_title_size = 35 +minetest.register_on_player_receive_fields(function(player, formname, fields) + if formname ~= "default:book" then return end + local inv = player:get_inventory() + local stack = player:get_wielded_item() + + if fields.save and fields.title and fields.text + and fields.title ~= "" and fields.text ~= "" then + local new_stack, data + if stack:get_name() ~= "default:book_written" then + local count = stack:get_count() + if count == 1 then + stack:set_name("default:book_written") + else + stack:set_count(count - 1) + new_stack = ItemStack("default:book_written") + end + else + data = minetest.deserialize(stack:get_metadata()) + end + + if data and data.owner and data.owner ~= player:get_player_name() then + return + end + + if not data then data = {} end + data.title = fields.title:sub(1, max_title_size) + data.owner = player:get_player_name() + local short_title = data.title + -- Don't bother triming the title if the trailing dots would make it longer + if #short_title > short_title_size + 3 then + short_title = short_title:sub(1, short_title_size) .. "..." + end + data.description = "\""..short_title.."\" by "..data.owner + data.text = fields.text:sub(1, max_text_size) + data.page = 1 + data.page_max = math.ceil((#data.text:gsub("[^\n]", "") + 1) / lpp) + + if new_stack then + new_stack:set_metadata(minetest.serialize(data)) + if inv:room_for_item("main", new_stack) then + inv:add_item("main", new_stack) + else + minetest.add_item(player:getpos(), new_stack) + end + else + stack:set_metadata(minetest.serialize(data)) + end + + elseif fields.book_next or fields.book_prev then + local data + data = minetest.deserialize(stack:get_metadata()) + if not data or not data.page then + return + end + + data.page = tonumber(data.page) + data.page_max = tonumber(data.page_max) + + if fields.book_next then + data.page = data.page + 1 + if data.page > data.page_max then + data.page = 1 + end + else + data.page = data.page - 1 + if data.page == 0 then + data.page = data.page_max + end + end + + stack:set_metadata(minetest.serialize(data)) + stack = book_on_use(stack, player) + end + + -- Update stack + player:set_wielded_item(stack) +end) + minetest.register_craftitem("default:book", { description = "Book", inventory_image = "default_book.png", + groups = {book = 1, flammable = 3}, + on_use = book_on_use, +}) + +minetest.register_craftitem("default:book_written", { + description = "Book With Text", + inventory_image = "default_book_written.png", + groups = {book = 1, not_in_creative_inventory = 1, flammable = 3}, + stack_max = 1, + on_use = book_on_use, +}) + +minetest.register_craft({ + type = "shapeless", + output = "default:book_written", + recipe = {"default:book", "default:book_written"} +}) + +minetest.register_on_craft(function(itemstack, player, old_craft_grid, craft_inv) + if itemstack:get_name() ~= "default:book_written" then + return + end + + local original + local index + for i = 1, player:get_inventory():get_size("craft") do + if old_craft_grid[i]:get_name() == "default:book_written" then + original = old_craft_grid[i] + index = i + end + end + if not original then + return + end + local copymeta = original:get_meta():to_table() + -- copy of the book held by player's mouse cursor + itemstack:get_meta():from_table(copymeta) + -- put the book with metadata back in the craft grid + craft_inv:set_stack("craft", index, original) +end) + +minetest.register_craftitem("default:skeleton_key", { + description = "Skeleton Key", + inventory_image = "default_key_skeleton.png", + groups = {key = 1}, + on_use = function(itemstack, user, pointed_thing) + if pointed_thing.type ~= "node" then + return itemstack + end + + local pos = pointed_thing.under + local node = minetest.get_node(pos) + + if not node then + return itemstack + end + + local on_skeleton_key_use = minetest.registered_nodes[node.name].on_skeleton_key_use + if not on_skeleton_key_use then + return itemstack + end + + -- make a new key secret in case the node callback needs it + local random = math.random + local newsecret = string.format( + "%04x%04x%04x%04x", + random(2^16) - 1, random(2^16) - 1, + random(2^16) - 1, random(2^16) - 1) + + local secret, _, _ = on_skeleton_key_use(pos, user, newsecret) + + if secret then + local inv = minetest.get_inventory({type="player", name=user:get_player_name()}) + + -- update original itemstack + itemstack:take_item() + + -- finish and return the new key + local new_stack = ItemStack("default:key") + local meta = new_stack:get_meta() + meta:set_string("secret", secret) + meta:set_string("description", "Key to "..user:get_player_name().."'s " + ..minetest.registered_nodes[node.name].description) + + if itemstack:get_count() == 0 then + itemstack = new_stack + else + if inv:add_item("main", new_stack):get_count() > 0 then + minetest.add_item(user:getpos(), new_stack) + end -- else: added to inventory successfully + end + + return itemstack -- FIXME: See if this return is a problem + end + end }) minetest.register_craftitem("default:coal_lump", { description = "Coal Lump", inventory_image = "default_coal_lump.png", + groups = {coal = 1, flammable = 1} }) minetest.register_craftitem("default:iron_lump", { @@ -31,6 +264,16 @@ minetest.register_craftitem("default:copper_lump", { inventory_image = "default_copper_lump.png", }) +minetest.register_craftitem("default:tin_lump", { + description = "Tin Lump", + inventory_image = "default_tin_lump.png", +}) + +minetest.register_craftitem("default:silver_lump", { + description = "Silver Lump", + inventory_image = "default_silver_lump.png", +}) + minetest.register_craftitem("default:mese_crystal", { description = "Mese Crystal", inventory_image = "default_mese_crystal.png", @@ -41,6 +284,11 @@ minetest.register_craftitem("default:gold_lump", { inventory_image = "default_gold_lump.png", }) +minetest.register_craftitem("default:mithril_lump", { + description = "Mithril Lump", + inventory_image = "default_mithril_lump.png", +}) + minetest.register_craftitem("default:diamond", { description = "Diamond", inventory_image = "default_diamond.png", @@ -48,26 +296,43 @@ minetest.register_craftitem("default:diamond", { minetest.register_craftitem("default:clay_lump", { description = "Clay Lump", + stack_max = 200, inventory_image = "default_clay_lump.png", }) minetest.register_craftitem("default:steel_ingot", { description = "Steel Ingot", inventory_image = "default_steel_ingot.png", + groups = {ingot = 1}, }) minetest.register_craftitem("default:copper_ingot", { description = "Copper Ingot", inventory_image = "default_copper_ingot.png", + groups = {ingot = 1}, +}) + +minetest.register_craftitem("default:tin_ingot", { + description = "Tin Ingot", + inventory_image = "default_tin_ingot.png", + groups = {ingot = 1}, }) minetest.register_craftitem("default:bronze_ingot", { description = "Bronze Ingot", inventory_image = "default_bronze_ingot.png", + groups = {ingot = 1}, +}) + +minetest.register_craftitem("default:silver_ingot", { + description = "Silver Ingot", + inventory_image = "default_silver_ingot.png", + groups = {ingot = 1}, }) minetest.register_craftitem("default:gold_ingot", { description = "Gold Ingot", + groups = {ingot = 1}, inventory_image = "default_gold_ingot.png" }) @@ -76,12 +341,28 @@ minetest.register_craftitem("default:mese_crystal_fragment", { inventory_image = "default_mese_crystal_fragment.png", }) +minetest.register_craftitem("default:mithril_ingot", { + description = "Mithril Ingot", + groups = {ingot = 1}, + inventory_image = "default_mithril_ingot.png", +}) + minetest.register_craftitem("default:clay_brick", { description = "Clay Brick", inventory_image = "default_clay_brick.png", }) +minetest.register_craftitem("default:scorched_stuff", { + description = "Scorched Stuff", + inventory_image = "default_scorched_stuff.png", +}) + minetest.register_craftitem("default:obsidian_shard", { description = "Obsidian Shard", inventory_image = "default_obsidian_shard.png", }) + +minetest.register_craftitem("default:flint", { + description = "Flint", + inventory_image = "default_flint.png" +}) diff --git a/mods/default/depends.txt b/mods/default/depends.txt new file mode 100644 index 00000000..a3d73590 --- /dev/null +++ b/mods/default/depends.txt @@ -0,0 +1 @@ +_misc_init? diff --git a/mods/default/functions.lua b/mods/default/functions.lua old mode 100644 new mode 100755 index 6840c5d2..9cd091b2 --- a/mods/default/functions.lua +++ b/mods/default/functions.lua @@ -7,20 +7,20 @@ function default.node_sound_defaults(table) table = table or {} table.footstep = table.footstep or - {name="", gain=1.0} + {name = "", gain = 1.0} table.dug = table.dug or - {name="default_dug_node", gain=0.25} + {name = "default_dug_node", gain = 0.25} table.place = table.place or - {name="default_place_node_hard", gain=1.0} + {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} + {name = "default_hard_footstep", gain = 0.5} table.dug = table.dug or - {name="default_hard_footstep", gain=1.0} + {name = "default_hard_footstep", gain = 1.0} default.node_sound_defaults(table) return table end @@ -28,11 +28,11 @@ end function default.node_sound_dirt_defaults(table) table = table or {} table.footstep = table.footstep or - {name="default_dirt_footstep", gain=1.0} + {name = "default_dirt_footstep", gain = 1.0} table.dug = table.dug or - {name="default_dirt_footstep", gain=1.5} + {name = "default_dirt_footstep", gain = 1.5} table.place = table.place or - {name="default_place_node", gain=1.0} + {name = "default_place_node", gain = 1.0} default.node_sound_defaults(table) return table end @@ -40,11 +40,23 @@ end function default.node_sound_sand_defaults(table) table = table or {} table.footstep = table.footstep or - {name="default_sand_footstep", gain=0.5} + {name = "default_sand_footstep", gain = 0.12} table.dug = table.dug or - {name="default_sand_footstep", gain=1.0} + {name = "default_sand_footstep", gain = 0.24} table.place = table.place or - {name="default_place_node", gain=1.0} + {name = "default_place_node", gain = 1.0} + default.node_sound_defaults(table) + return table +end + +function default.node_sound_gravel_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name = "default_gravel_footstep", gain = 0.5} + table.dug = table.dug or + {name = "default_gravel_footstep", gain = 1.0} + table.place = table.place or + {name = "default_place_node", gain = 1.0} default.node_sound_defaults(table) return table end @@ -52,9 +64,9 @@ end function default.node_sound_wood_defaults(table) table = table or {} table.footstep = table.footstep or - {name="default_wood_footstep", gain=0.5} + {name = "default_wood_footstep", gain = 0.5} table.dug = table.dug or - {name="default_wood_footstep", gain=1.0} + {name = "default_wood_footstep", gain = 1.0} default.node_sound_defaults(table) return table end @@ -62,13 +74,13 @@ end function default.node_sound_leaves_defaults(table) table = table or {} table.footstep = table.footstep or - {name="default_grass_footstep", gain=0.35} + {name = "default_grass_footstep", gain = 0.35} table.dug = table.dug or - {name="default_grass_footstep", gain=0.85} + {name = "default_grass_footstep", gain = 0.7} table.dig = table.dig or - {name="default_dig_crumbly", gain=0.4} + {name = "default_dig_crumbly", gain = 0.4} table.place = table.place or - {name="default_place_node", gain=1.0} + {name = "default_place_node", gain = 1.0} default.node_sound_defaults(table) return table end @@ -76,196 +88,145 @@ end function default.node_sound_glass_defaults(table) table = table or {} table.footstep = table.footstep or - {name="default_glass_footstep", gain=0.5} + {name = "default_glass_footstep", gain = 0.5} table.dug = table.dug or - {name="default_break_glass", gain=1.0} + {name = "default_break_glass", gain = 1.0} + default.node_sound_defaults(table) + return table +end + +function default.node_sound_metal_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name = "default_metal_footstep", gain = 0.5} + table.dig = table.dig or + {name = "default_dig_metal", gain = 0.5} + table.dug = table.dug or + {name = "default_dug_metal", gain = 0.5} + table.place = table.place or + {name = "default_place_node_metal", gain = 0.5} 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 = 10, - chance = 50, - 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.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 = 10, - chance = 50, - 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.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}) +default.cool_lava = function(pos, node) + if node.name == "default:lava_source" then + minetest.set_node(pos, {name = "default:obsidian"}) + else -- Lava flowing + minetest.set_node(pos, {name = "default:stone"}) + end + minetest.sound_play("default_cool_lava", + {pos = pos, max_hear_distance = 16, gain = 0.25}) end minetest.register_abm({ - nodenames = {"default:lava_flowing"}, + label = "Lava cooling", + nodenames = {"default:lava_source", "default:lava_flowing"}, neighbors = {"group:water"}, interval = 1, chance = 1, - action = function(pos, node, active_object_count, active_object_count_wider) - default.cool_lava_flowing(pos, node, active_object_count, active_object_count_wider) + catch_up = false, + action = function(...) + default.cool_lava(...) end, }) -minetest.register_abm({ - nodenames = {"default:lava_source"}, - neighbors = {"group:water"}, - interval = 1, - chance = 1, - 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, -}) + +-- +-- optimized helper to put all items in an inventory into a drops list +-- + +function default.get_inventory_drops(pos, inventory, drops) + local inv = minetest.get_meta(pos):get_inventory() + local n = #drops + for i = 1, inv:get_size(inventory) do + local stack = inv:get_stack(inventory, i) + if stack:get_count() > 0 then + drops[n+1] = stack:to_table() + n = n + 1 + end + end +end -- -- Papyrus and cactus growing -- +-- wrapping the functions in abm action is necessary to make overriding them possible + +function default.grow_cactus(pos, node) + if node.param2 >= 4 then + return + end + pos.y = pos.y - 1 + local name = minetest.get_node(pos).name --MFF + if minetest.get_item_group(name, "sand") == 0 and name ~= "default:dirt_with_dry_grass" then --MFF + return + end + pos.y = pos.y + 1 + local height = 0 + while node.name == "default:cactus" and height < 4 do + height = height + 1 + pos.y = pos.y + 1 + node = minetest.get_node(pos) + end + if height == 4 or node.name ~= "air" then + return + end + minetest.set_node(pos, {name = "default:cactus"}) + return true +end + +function default.grow_papyrus(pos, node) + pos.y = pos.y - 1 + local name = minetest.get_node(pos).name + if name ~= "default:dirt_with_grass" and name ~= "default:dirt" and name ~= "default:sand" and name ~= "default:desert_sand" then --MFF + return + end + if not minetest.find_node_near(pos, 3, {"group:water"}) then + return + end + pos.y = pos.y + 1 + local height = 0 + while node.name == "default:papyrus" and height < 4 do + height = height + 1 + pos.y = pos.y + 1 + node = minetest.get_node(pos) + end + if height == 4 or node.name ~= "air" then + return + end + minetest.set_node(pos, {name = "default:papyrus"}) + return true +end + minetest.register_abm({ + label = "Grow cactus", 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 < 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:cactus"}) - end - end - end - end, + neighbors = {"group:sand", "default:dirt_with_dry_grass"}, --MFF + interval = 12, + chance = 83, + action = function(...) + default.grow_cactus(...) + end }) minetest.register_abm({ + label = "Grow papyrus", 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, + neighbors = {"default:dirt", "default:dirt_with_grass", "default:sand", "default:desert_sand"}, --MFF + interval = 14, + chance = 71, + action = function(...) + default.grow_papyrus(...) + end }) + -- -- dig upwards -- @@ -279,102 +240,250 @@ function default.dig_up(pos, node, digger) end end + +-- +-- Fence registration helper +-- + +function default.register_fence(name, def) + minetest.register_craft({ + output = name .. " 4", + recipe = { + { def.material, 'group:stick', def.material }, + { def.material, 'group:stick', def.material }, + } + }) + + local fence_texture = "default_fence_overlay.png^" .. def.texture .. + "^default_fence_overlay.png^[makealpha:255,126,126" + -- Allow almost everything to be overridden + local default_fields = { + paramtype = "light", + drawtype = "nodebox", + node_box = { + type = "connected", + fixed = {{-1/8, -1/2, -1/8, 1/8, 1/2, 1/8}}, + -- connect_top = + -- connect_bottom = + connect_front = {{-1/16,3/16,-1/2,1/16,5/16,-1/8}, + {-1/16,-5/16,-1/2,1/16,-3/16,-1/8}}, + connect_left = {{-1/2,3/16,-1/16,-1/8,5/16,1/16}, + {-1/2,-5/16,-1/16,-1/8,-3/16,1/16}}, + connect_back = {{-1/16,3/16,1/8,1/16,5/16,1/2}, + {-1/16,-5/16,1/8,1/16,-3/16,1/2}}, + connect_right = {{1/8,3/16,-1/16,1/2,5/16,1/16}, + {1/8,-5/16,-1/16,1/2,-3/16,1/16}}, + }, + connects_to = {"group:fence", "group:wood", "group:tree"}, + inventory_image = fence_texture, + wield_image = fence_texture, + tiles = {def.texture}, + sunlight_propagates = true, + is_ground_content = false, + groups = {}, + } + for k, v in pairs(default_fields) do + if not def[k] then + def[k] = v + end + end + + -- Always add to the fence group, even if no group provided + def.groups.fence = 1 + + def.texture = nil + def.material = nil + + minetest.register_node(name, def) +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 +-- Prevent decay of placed leaves -default.leafdecay_trunk_cache = {} -default.leafdecay_enable_cache = true --- Spread the load of finding trunks -default.leafdecay_trunk_find_allow_accumulator = 0 +default.after_place_leaves = function(pos, placer, itemstack, pointed_thing) + if placer and not placer:get_player_control().sneak then + local node = minetest.get_node(pos) + node.param2 = 1 + minetest.set_node(pos, node) + end +end -minetest.register_globalstep(function(dtime) - local finds_per_second = 5000 - default.leafdecay_trunk_find_allow_accumulator = - math.floor(dtime * finds_per_second) -end) +-- Leafdecay ABM minetest.register_abm({ + label = "Leaf decay", nodenames = {"group:leafdecay"}, - neighbors = {"air", "group:liquid"}, - -- A low interval and a high inverse chance spreads the load + neighbors = {"air"}, interval = 2, - chance = 5, + chance = 10, + catch_up = false, - 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") + action = function(pos, node, _, _) + -- Check if leaf is placed + if node.param2 ~= 0 then return end - local n0 = minetest.get_node(p0) - if n0.param2 ~= 0 then - --print("param2 ~= 0") + + local rad = minetest.registered_nodes[node.name].groups.leafdecay + -- Assume ignore is a trunk, to make this + -- work at the border of a loaded area + if minetest.find_node_near(pos, rad, {"ignore", "group:tree"}) then 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) + -- Drop stuff + local itemstacks = minetest.get_node_drops(node.name) + for _, itemname in ipairs(itemstacks) do + if itemname ~= node.name or + minetest.get_item_group(node.name, "leafdecay_drop") ~= 0 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 - if default.leafdecay_trunk_find_allow_accumulator <= 0 then + -- Remove node + minetest.remove_node(pos) + nodeupdate(pos) + end +}) + + +-- +-- Convert dirt to something that fits the environment +-- + +minetest.register_abm({ + label = "Grass spread", + nodenames = {"default:dirt"}, + neighbors = { + "default:dirt_with_grass", + "default:dirt_with_dry_grass", + "default:dirt_with_snow", + "group:grass", + "group:dry_grass", + "default:snow", + }, + interval = 6, + chance = 50, + catch_up = false, + action = function(pos, node) + -- Check for darkness: night, shadow or under a light-blocking node + -- Returns if ignore above + local above = {x = pos.x, y = pos.y + 1, z = pos.z} + if (minetest.get_node_light(above) or 0) < 13 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 + + -- Look for spreading dirt-type neighbours + local p2 = minetest.find_node_near(pos, 1, "group:spreading_dirt_type") + if p2 then + local n3 = minetest.get_node(p2) + minetest.set_node(pos, {name = n3.name}) + return 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) + + -- Else, any seeding nodes on top? + local name = minetest.get_node(above).name + -- Snow check is cheapest, so comes first + if name == "default:snow" then + minetest.set_node(pos, {name = "default:dirt_with_snow"}) + -- Most likely case first + elseif minetest.get_item_group(name, "grass") ~= 0 then + minetest.set_node(pos, {name = "default:dirt_with_grass"}) + elseif minetest.get_item_group(name, "dry_grass") ~= 0 then + minetest.set_node(pos, {name = "default:dirt_with_dry_grass"}) end end }) + +-- +-- Grass and dry grass removed in darkness +-- + +minetest.register_abm({ + label = "Grass covered", + nodenames = {"group:spreading_dirt_type"}, + interval = 8, + chance = 50, + catch_up = false, + 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 +}) + + +-- +-- Moss growth on cobble near water +-- + +minetest.register_abm({ + label = "Moss growth", + nodenames = {"default:cobble", "stairs:slab_cobble", "stairs:stair_cobble"}, + neighbors = {"group:water"}, + interval = 16, + chance = 200, + catch_up = false, + action = function(pos, node) + if node.name == "default:cobble" then + minetest.set_node(pos, {name = "default:mossycobble"}) + elseif node.name == "stairs:slab_cobble" then + minetest.set_node(pos, {name = "stairs:slab_mossycobble", param2 = node.param2}) + elseif node.name == "stairs:stair_cobble" then + minetest.set_node(pos, {name = "stairs:stair_mossycobble", param2 = node.param2}) + end + end +}) + + +-- +-- Checks if specified volume intersects a protected volume +-- + +function default.intersects_protection(minp, maxp, player_name, interval) + -- 'interval' is the largest allowed interval for the 3D lattice of checks + + -- Compute the optimal float step 'd' for each axis so that all corners and + -- borders are checked. 'd' will be smaller or equal to 'interval'. + -- Subtracting 1e-4 ensures that the max co-ordinate will be reached by the + -- for loop (which might otherwise not be the case due to rounding errors). + local d = {} + for _, c in pairs({"x", "y", "z"}) do + if maxp[c] > minp[c] then + d[c] = (maxp[c] - minp[c]) / math.ceil((maxp[c] - minp[c]) / interval) - 1e-4 + elseif maxp[c] == minp[c] then + d[c] = 1 -- Any value larger than 0 to avoid division by zero + else -- maxp[c] < minp[c], print error and treat as protection intersected + minetest.log("error", "maxp < minp in 'default.intersects_protection()'") + return true + end + end + + for zf = minp.z, maxp.z, d.z do + local z = math.floor(zf + 0.5) + for yf = minp.y, maxp.y, d.y do + local y = math.floor(yf + 0.5) + for xf = minp.x, maxp.x, d.x do + local x = math.floor(xf + 0.5) + if minetest.is_protected({x = x, y = y, z = z}, player_name) then + return true + end + end + end + end + + return false +end diff --git a/mods/default/furnace.lua b/mods/default/furnace.lua new file mode 100755 index 00000000..cd36f522 --- /dev/null +++ b/mods/default/furnace.lua @@ -0,0 +1,317 @@ + +-- +-- Formspecs +-- + +local function active_formspec(fuel_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-fuel_percent)..":default_furnace_fire_fg.png]".. + "image[3.75,1.5;1,1;gui_furnace_arrow_bg.png^[lowpart:".. + (item_percent)..":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]".. + "listring[current_name;dst]".. + "listring[current_player;main]".. + "listring[current_name;src]".. + "listring[current_player;main]".. + "listring[current_name;fuel]".. + "listring[current_player;main]".. + default.get_hotbar_bg(0, 4.25) + return formspec +end + +local 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]".. + "listring[current_name;dst]".. + "listring[current_player;main]".. + "listring[current_name;src]".. + "listring[current_player;main]".. + "listring[current_name;fuel]".. + "listring[current_player;main]".. + default.get_hotbar_bg(0, 4.25) + +-- +-- Node callback functions that are the same for active and inactive furnace +-- + +local function can_dig(pos, player) + local meta = minetest.get_meta(pos); + local inv = meta:get_inventory() + return inv:is_empty("fuel") and inv:is_empty("dst") and inv:is_empty("src") +end + +local function allow_metadata_inventory_put(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 + +local function allow_metadata_inventory_move(pos, from_list, from_index, to_list, to_index, count, player) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + local stack = inv:get_stack(from_list, from_index) + return allow_metadata_inventory_put(pos, to_list, to_index, stack, player) +end + +local function allow_metadata_inventory_take(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 + +local function furnace_node_timer(pos, elapsed) + -- + -- Inizialize metadata + -- + local meta = minetest.get_meta(pos) + local fuel_time = meta:get_float("fuel_time") or 0 + local src_time = meta:get_float("src_time") or 0 + local fuel_totaltime = meta:get_float("fuel_totaltime") or 0 + + local inv = meta:get_inventory() + local srclist = inv:get_list("src") + local fuellist = inv:get_list("fuel") + + -- + -- Cooking + -- + + -- Check if we have cookable content + local cooked, aftercooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist}) + local cookable = true + + if cooked.time == 0 then + cookable = false + end + + -- Check if we have enough fuel to burn + if fuel_time < fuel_totaltime then + -- The furnace is currently active and has enough fuel + fuel_time = fuel_time + 1 + + -- If there is a cookable item then check if it is ready yet + if cookable then + src_time = src_time + 1 + if src_time >= cooked.time then + -- Place result in dst list if possible + if inv:room_for_item("dst", cooked.item) then + inv:add_item("dst", cooked.item) + inv:set_stack("src", 1, aftercooked.items[1]) + src_time = 0 + end + end + end + else + -- Furnace ran out of fuel + if cookable then + -- We need to get new fuel + local fuel, afterfuel = minetest.get_craft_result({method = "fuel", width = 1, items = fuellist}) + + if fuel.time == 0 then + -- No valid fuel in fuel list + fuel_totaltime = 0 + fuel_time = 0 + src_time = 0 + else + -- Take fuel from fuel list + inv:set_stack("fuel", 1, afterfuel.items[1]) + + fuel_totaltime = fuel.time + fuel_time = 0 + end + else + -- We don't need to get new fuel since there is no cookable item + fuel_totaltime = 0 + fuel_time = 0 + src_time = 0 + end + end + + -- + -- Update formspec, infotext and node + -- + local formspec = inactive_formspec + local item_state + local item_percent = 0 + if cookable then + item_percent = math.floor(src_time / cooked.time * 100) + if item_percent > 100 then + item_state = "100% (output full)" + else + item_state = item_percent .. "%" + end + else + if srclist[1]:is_empty() then + item_state = "Empty" + else + item_state = "Not cookable" + end + end + + local fuel_state = "Empty" + local active = "inactive " + local result = false + + if fuel_time <= fuel_totaltime and fuel_totaltime ~= 0 then + active = "active " + local fuel_percent = math.floor(fuel_time / fuel_totaltime * 100) + fuel_state = fuel_percent .. "%" + formspec = active_formspec(fuel_percent, item_percent) + swap_node(pos, "default:furnace_active") + -- make sure timer restarts automatically + result = true + else + if not fuellist[1]:is_empty() then + fuel_state = "0%" + end + swap_node(pos, "default:furnace") + -- stop timer on the inactive furnace + local timer = minetest.get_node_timer(pos) + timer:stop() + end + + local infotext = "Furnace " .. active .. "(Item: " .. item_state .. "; Fuel: " .. fuel_state .. ")" + + -- + -- Set meta values + -- + meta:set_float("fuel_totaltime", fuel_totaltime) + meta:set_float("fuel_time", fuel_time) + meta:set_float("src_time", src_time) + meta:set_string("formspec", formspec) + meta:set_string("infotext", infotext) + + return result +end + +-- +-- Node definitions +-- + +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(), + + can_dig = can_dig, + + on_timer = furnace_node_timer, + + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", inactive_formspec) + local inv = meta:get_inventory() + inv:set_size('src', 1) + inv:set_size('fuel', 1) + inv:set_size('dst', 4) + end, + + on_metadata_inventory_move = function(pos) + local timer = minetest.get_node_timer(pos) + timer:start(1.0) + end, + on_metadata_inventory_put = function(pos) + -- start timer function, it will sort out whether furnace can burn or not. + local timer = minetest.get_node_timer(pos) + timer:start(1.0) + end, + on_blast = function(pos) + local drops = {} + default.get_inventory_drops(pos, "src", drops) + default.get_inventory_drops(pos, "fuel", drops) + default.get_inventory_drops(pos, "dst", drops) + drops[#drops+1] = "default:furnace" + minetest.remove_node(pos) + return drops + end, + + allow_metadata_inventory_put = allow_metadata_inventory_put, + allow_metadata_inventory_move = allow_metadata_inventory_move, + allow_metadata_inventory_take = allow_metadata_inventory_take, +}) + +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}, + legacy_facedir_simple = true, + is_ground_content = false, + sounds = default.node_sound_stone_defaults(), + on_timer = furnace_node_timer, + + can_dig = can_dig, + + allow_metadata_inventory_put = allow_metadata_inventory_put, + allow_metadata_inventory_move = allow_metadata_inventory_move, + allow_metadata_inventory_take = allow_metadata_inventory_take, +}) + diff --git a/mods/default/init.lua b/mods/default/init.lua old mode 100644 new mode 100755 index 7c3d077d..42dcab02 --- a/mods/default/init.lua +++ b/mods/default/init.lua @@ -1,16 +1,13 @@ -- 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 +-- The API documentation in here was moved into game_api.txt -- Definitions made by this mod that other mods can use too default = {} +default.LIGHT_MAX = 14 + -- GUI related stuff default.gui_bg = "bgcolor[#080808BB;true]" default.gui_bg_img = "background[5,5;1,1;gui_formbg.png;true]" @@ -24,7 +21,7 @@ function default.get_hotbar_bg(x,y) return out end -default.gui_suvival_form = "size[8,8.5]".. +default.gui_survival_form = "size[8,8.5]".. default.gui_bg.. default.gui_bg_img.. default.gui_slots.. @@ -33,15 +30,22 @@ default.gui_suvival_form = "size[8,8.5]".. "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]".. + "listring[current_player;main]".. + "listring[current_player;craft]".. 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") +local default_path = minetest.get_modpath("default") + +dofile(default_path.."/functions.lua") +dofile(default_path.."/trees.lua") +dofile(default_path.."/nodes.lua") +dofile(default_path.."/furnace.lua") +dofile(default_path.."/tools.lua") +--dofile(default_path.."/item_entity.lua") --remove due to crash and we have already builtin_item +dofile(default_path.."/craftitems.lua") +dofile(default_path.."/crafting.lua") +dofile(default_path.."/mapgen.lua") +dofile(default_path.."/player.lua") +dofile(default_path.."/aliases.lua") +dofile(default_path.."/legacy.lua") diff --git a/mods/default/item_entity.lua b/mods/default/item_entity.lua new file mode 100644 index 00000000..c34e60e9 --- /dev/null +++ b/mods/default/item_entity.lua @@ -0,0 +1,74 @@ +-- mods/default/item_entity.lua + +local builtin_item = minetest.registered_entities["__builtin:item"] + +local item = { + set_item = function(self, itemstring) + builtin_item.set_item(self, itemstring) + + local stack = ItemStack(itemstring) + local itemdef = minetest.registered_items[stack:get_name()] + if itemdef and itemdef.groups.flammable ~= 0 then + self.flammable = itemdef.groups.flammable + end + end, + + burn_up = function(self) + -- disappear in a smoke puff + self.object:remove() + local p = self.object:getpos() + minetest.sound_play("default_item_smoke", { + pos = p, + max_hear_distance = 8, + }) + minetest.add_particlespawner({ + amount = 3, + time = 0.1, + minpos = {x = p.x - 0.1, y = p.y + 0.1, z = p.z - 0.1 }, + maxpos = {x = p.x + 0.1, y = p.y + 0.2, z = p.z + 0.1 }, + minvel = {x = 0, y = 2.5, z = 0}, + maxvel = {x = 0, y = 2.5, z = 0}, + minacc = {x = -0.15, y = -0.02, z = -0.15}, + maxacc = {x = 0.15, y = -0.01, z = 0.15}, + minexptime = 4, + maxexptime = 6, + minsize = 5, + maxsize = 5, + collisiondetection = true, + texture = "default_item_smoke.png" + }) + end, + + on_step = function(self, dtime) + builtin_item.on_step(self, dtime) + + if self.flammable then + -- flammable, check for igniters + self.ignite_timer = (self.ignite_timer or 0) + dtime + if self.ignite_timer > 10 then + self.ignite_timer = 0 + + local node = minetest.get_node_or_nil(self.object:getpos()) + if not node then + return + end + + -- Immediately burn up flammable items in lava + if minetest.get_item_group(node.name, "lava") > 0 then + self:burn_up() + else + -- otherwise there'll be a chance based on its igniter value + local burn_chance = self.flammable + * minetest.get_item_group(node.name, "igniter") + if burn_chance > 0 and math.random(0, burn_chance) ~= 0 then + self:burn_up() + end + end + end + end + end, +} + +-- set defined item as new __builtin:item, with the old one as fallback table +setmetatable(item, builtin_item) +minetest.register_entity(":__builtin:item", item) diff --git a/mods/default/legacy.lua b/mods/default/legacy.lua new file mode 100755 index 00000000..a8c8ad56 --- /dev/null +++ b/mods/default/legacy.lua @@ -0,0 +1,25 @@ +-- mods/default/legacy.lua + +-- Horrible stuff to support old code registering falling nodes +-- 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 + +function default.spawn_falling_node(p, nodename) + spawn_falling_node(p, nodename) +end + +-- Liquids +WATER_ALPHA = minetest.registered_nodes["default:water_source"].alpha +WATER_VISC = minetest.registered_nodes["default:water_source"].liquid_viscosity +LAVA_VISC = minetest.registered_nodes["default:lava_source"].liquid_viscosity +LIGHT_MAX = default.LIGHT_MAX + +-- Formspecs +default.gui_suvival_form = default.gui_survival_form diff --git a/mods/default/license.txt b/mods/default/license.txt new file mode 100644 index 00000000..137923c8 --- /dev/null +++ b/mods/default/license.txt @@ -0,0 +1,171 @@ +License of source code +---------------------- + +GNU Lesser General Public License, version 2.1 +Copyright (C) 2011-2016 celeron55, Perttu Ahola +Copyright (C) 2011-2016 Various Minetest developers and contributors + +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: +https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html + + +Licenses of media (textures, models and sounds) +----------------------------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2010-2016: + celeron55, Perttu Ahola + Cisoun + G4JC + VanessaE + RealBadAngel + Calinou + MirceaKitsune + Jordach + PilzAdam + jojoa1997 + InfinityProject + Splizard + Zeg9 + paramat + BlockMen + sofar + Neuromancer + Gambit + asl97 + KevDoy + Mito551 + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike — If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ + +----------------------- + +Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) +Copyright (C) 2014-2016 brunob.santos + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike — If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/4.0/ + +----------------------- + +Attribution-ShareAlike 2.0 Generic (CC BY-SA 2.0) +Copyright (C) 2014-2016 Neuromancer + + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike — If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/2.0/ + +----------------------- + +Attribution 3.0 Unported (CC BY 3.0) +Copyright (C) 2009 cmusounddesign +Copyright (C) 2010 Tomlija +Copyright (C) 2010 lsprice +Copyright (C) 2014 sonictechtonic + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by/3.0/ diff --git a/mods/default/mapgen.lua b/mods/default/mapgen.lua old mode 100644 new mode 100755 index 4907cf7b..5c12d5b0 --- a/mods/default/mapgen.lua +++ b/mods/default/mapgen.lua @@ -1,513 +1,1838 @@ --- mods/default/mapgen.lua - -- -- Aliases for map generator outputs -- minetest.register_alias("mapgen_stone", "default:stone") +minetest.register_alias("mapgen_dirt", "default:dirt") +minetest.register_alias("mapgen_dirt_with_grass", "default:dirt_with_grass") +minetest.register_alias("mapgen_sand", "default:sand") +minetest.register_alias("mapgen_water_source", "default:water_source") +minetest.register_alias("mapgen_river_water_source", "default:river_water_source") +minetest.register_alias("mapgen_lava_source", "default:lava_source") +minetest.register_alias("mapgen_gravel", "default:gravel") +minetest.register_alias("mapgen_desert_stone", "default:desert_stone") +minetest.register_alias("mapgen_desert_sand", "default:desert_sand") +minetest.register_alias("mapgen_dirt_with_snow", "default:dirt_with_snow") +minetest.register_alias("mapgen_snowblock", "default:snowblock") +minetest.register_alias("mapgen_snow", "default:snow") +minetest.register_alias("mapgen_ice", "default:ice") +minetest.register_alias("mapgen_sandstone", "default:sandstone") + +-- Flora + 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_jungletree", "default:jungletree") 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_pine_tree", "default:pine_tree") +minetest.register_alias("mapgen_pine_needles", "default:pine_needles") + +-- Dungeons + +minetest.register_alias("mapgen_cobble", "default:cobble") minetest.register_alias("mapgen_stair_cobble", "stairs:stair_cobble") +minetest.register_alias("mapgen_mossycobble", "default:mossycobble") +minetest.register_alias("mapgen_sandstonebrick", "default:sandstonebrick") +minetest.register_alias("mapgen_stair_sandstonebrick", "stairs:stair_sandstonebrick") + -- --- Ore generation +-- Register ores -- -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, -}) +function default.register_ores() + -- Blob ores + -- These first to avoid other ores in blobs -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", -}) + -- Clay + -- This first to avoid clay in sand blobs -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 = "blob", + ore = "default:clay", + wherein = {"default:sand"}, + clust_scarcity = 24 * 24 * 24, + clust_size = 7, + y_min = -15, + y_max = 0, + noise_threshold = 0.0, + noise_params = { + offset = 0.5, + scale = 0.2, + spread = {x = 5, y = 5, z = 5}, + seed = -316, + octaves = 1, + persist = 0.0 + }, + }) -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, -}) + -- Sand -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 = "blob", + ore = "default:sand", + wherein = {"default:stone", "default:sandstone", + "default:desert_stone"}, + clust_scarcity = 24 * 24 * 24, + clust_size = 7, + y_min = -63, + y_max = 4, + noise_threshold = 0.0, + noise_params = { + offset = 0.5, + scale = 0.2, + spread = {x = 5, y = 5, z = 5}, + seed = 2316, + octaves = 1, + persist = 0.0 + }, + }) -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", -}) + -- Dirt -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 = "blob", + ore = "default:dirt", + wherein = {"default:stone", "default:sandstone"}, + clust_scarcity = 24 * 24 * 24, + clust_size = 7, + y_min = -63, + y_max = 31000, + noise_threshold = 0.0, + noise_params = { + offset = 0.5, + scale = 0.2, + spread = {x = 5, y = 5, z = 5}, + seed = 17676, + octaves = 1, + persist = 0.0 + }, + }) -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", -}) + -- Gravel -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 = "blob", + ore = "default:gravel", + wherein = {"default:stone"}, + clust_scarcity = 24 * 24 * 24, + clust_size = 7, + y_min = -31000, + y_max = 31000, + noise_threshold = 0.0, + noise_params = { + offset = 0.5, + scale = 0.2, + spread = {x = 5, y = 5, z = 5}, + seed = 766, + octaves = 1, + persist = 0.0 + }, + }) -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", -}) + -- Scatter ores -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", -}) + -- Coal -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, + ore = "default:stone_with_coal", wherein = "default:stone", - clust_scarcity = 40*40*40, + clust_scarcity = 9 * 9 * 9, clust_num_ores = 8, clust_size = 3, - height_min = 100, - height_max = 31000, + y_min = -30000, + y_max = 64, }) minetest.register_ore({ + ore_type = "scatter", + ore = "default:desert_stone_with_coal", + wherein = "default:desert_stone", + clust_scarcity = 9 * 9 * 9, + clust_num_ores = 10, + clust_size = 3, + y_min = 0, + y_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, + y_min = -30000, + y_max = 0, + flags = "absheight", + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_coal", + wherein = "default:stone", + clust_scarcity = 32 * 32 * 32, + clust_num_ores = 40, + clust_size = 4, + y_max = 64, + y_min = -30000, + }) + + -- Iron + + 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, + y_min = -15, + y_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, + y_min = -63, + y_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, + y_min = -30000, + y_max = -64, + }) + + 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, + y_min = -30000, + y_max = -64, + }) + + -- Copper + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_iron", + wherein = "default:stone", + clust_scarcity = 48 * 48 * 48, + clust_num_ores = 40, + clust_size = 4, + y_max = 64, + y_min = -30000, + }) + + 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, + y_min = -255, + y_max = -128, + }) + + 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, + y_min = -1024, + y_max = -256, + }) + + -- Gold + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:mese", + wherein = "default:stone", + clust_scarcity = 20 * 20 * 20, + clust_num_ores = 3, + clust_size = 2, + y_min = -30000, + y_max = -1024, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:mese", + wherein = "default:stone", + clust_scarcity = 40 * 40 * 40, + clust_num_ores = 3, + clust_size = 2, + y_min = -1024, + y_max = 64, + flags = "absheight", + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:mese", + wherein = "default:desert_stone", + clust_scarcity = 40 * 40 * 40, + clust_num_ores = 3, + clust_size = 2, + y_min = -1024, + y_max = 64, + flags = "absheight", + }) + + -- Beware of Meze + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:meze", + wherein = "default:stone", + clust_scarcity = 40 * 40 * 40, + clust_num_ores = 3, + clust_size = 2, + y_min = 0, + y_max = 64, + flags = "absheight", + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:meze", + wherein = "default:desert_stone", + clust_scarcity = 40 * 40 * 40, + clust_num_ores = 3, + clust_size = 2, + y_min = 0, + y_max = 64, + flags = "absheight", + }) + + + -- Tin + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_tin", + wherein = "default:stone", + clust_scarcity = 7 * 7 * 7, + clust_num_ores = 3, + clust_size = 7, + y_min = -31000, + y_max = 12, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:desert_stone_with_tin", + wherein = "default:desert_stone", + clust_scarcity = 7 * 7 * 7, + clust_num_ores = 3, + clust_size = 7, + y_min = -31000, + y_max = 12, + }) + + -- Silver + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_silver", + wherein = "default:stone", + clust_scarcity = 11 * 11 * 11, + clust_num_ores = 4, + clust_size = 11, + y_min = -31000, + y_max = -12, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:desert_stone_with_silver", + wherein = "default:desert_stone", + clust_scarcity = 11 * 11 * 11, + clust_num_ores = 4, + clust_size = 11, + y_min = -31000, + y_max = -12, + }) + + -- Mithril + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_mithril", + wherein = "default:stone", + clust_scarcity = 11 * 11 * 11, + clust_num_ores = 1, + clust_size = 11, + y_min = -31000, + y_max = -1024, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_mithril", + wherein = "default:stone", + clust_scarcity = 15 * 15 * 15, + clust_num_ores = 2, + clust_size = 3, + y_min = -31000, + y_max = -2048, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_mithril", + wherein = "default:stone", + clust_scarcity = 22 * 22 * 22, + clust_num_ores = 5, + clust_size = 5, + y_min = -31000, + y_max = -4096, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_mithril", + wherein = "default:stone", + clust_scarcity = 28 * 28 * 28, + clust_num_ores = 20, + clust_size = 7, + y_min = -31000, + y_max = -12288, + }) + + -- Gold + + 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, + y_min = -255, + y_max = -64, + }) + + 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, + y_min = -30000, + y_max = -256, + }) + + -- Diamond + + 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, + y_min = -512, + y_max = -256, + }) + + 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, + y_min = -30000, + y_max = -512, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_diamond", + wherein = "default:stone", + clust_scarcity = 30 * 30 * 30, + clust_num_ores = 32, + clust_size = 5, + y_max = -4096, + y_min = -30000, + }) + + -- Copper + + 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, + y_min = -63, + y_max = -16, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:desert_stone_with_copper", + wherein = "default:desert_stone", + clust_scarcity = 11 * 11 * 11, + clust_num_ores = 6, + clust_size = 3, + y_min = 0, + y_max = 64, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_copper", + wherein = "default:stone", + clust_scarcity = 10 * 10 * 10, + clust_num_ores = 5, + clust_size = 3, + y_min = -30000, + y_max = -64, + }) + + -- Gold Coins + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_coin", + wherein = "default:stone", + clust_scarcity = 26 * 26 * 26, + clust_num_ores = 1, + clust_size = 1, + y_min = -30000, + y_max = 0, + flags = "absheight", + }) + + -- Super Apples + + minetest.register_ore({ + ore_type = "scatter", + ore = "maptools:superapple", + wherein = "default:apple", + clust_scarcity = 6 * 6 * 6, + clust_num_ores = 5, + clust_size = 2, + y_min = 0, + y_max = 64, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "maptools:superapple", + wherein = "default:jungleleaves", + clust_scarcity = 16 * 16 * 16, + clust_num_ores = 5, + clust_size = 2, + y_min = 0, + y_max = 64, + }) + + -- Underground springs: + + -- The fissures noise from watershed mapgen. Used to avoid liquid ores near fissures, that would sink for hundreds of nodes below. + local noise_fissure = { + offset = 0, + scale = 1, + spread = {x=256,y=512,z=256}, + persist = 0.5, + octaves = 5, + seed = 20099, + } + + -- Inverted fissure noise to generate ores on both sides of the fissures + local noise_fissure_inv = table.copy(noise_fissure) + noise_fissure_inv.scale = - noise_fissure.scale + + local threshold = 0.08 + + local function register_liquid_ore(oredef) + local neworedef = table.copy(oredef) -- Do not modify original table + neworedef.noise_params = noise_fissure -- Fissure noise + neworedef.noise_threshold = threshold + minetest.register_ore(neworedef) + + neworedef = table.copy(neworedef) + neworedef.noise_params = noise_fissure_inv -- Inverted fissure noise + minetest.register_ore(neworedef) + end + + register_liquid_ore({ + ore_type = "scatter", + ore = "default:water_source", + ore_param2 = 128, + wherein = "default:stone", + clust_scarcity = 20 * 20 * 20, + clust_num_ores = 10, + clust_size = 4, + y_min = -10000, + y_max = -10, + }) + + register_liquid_ore({ ore_type = "scatter", ore = "default:lava_source", ore_param2 = 128, wherein = "default:stone", - clust_scarcity = 50*50*50, + clust_scarcity = 32 * 32 * 32, clust_num_ores = 5, clust_size = 2, - height_min = 10000, - height_max = 31000, + y_min = -30000, + y_max = -100, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:dirt", + wherein = "default:stone", + clust_scarcity = 16 * 16 * 16, + clust_num_ores = 64, + clust_size = 5, + y_max = 64, + y_min = -4096, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:gravel", + wherein = "default:stone", + clust_scarcity = 16 * 16 * 16, + clust_num_ores = 64, + clust_size = 5, + y_max = 64, + y_min = -30000, }) minetest.register_ore({ ore_type = "scatter", ore = "default:sand", wherein = "default:stone", - clust_scarcity = 20*20*20, - clust_num_ores = 5*5*3, + clust_scarcity = 24 * 24 * 24, + clust_num_ores = 32, + clust_size = 4, + y_max = 64, + y_min = -1024, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:clay", + wherein = "default:stone", + clust_scarcity = 32 * 32 * 32, + clust_num_ores = 32, + clust_size = 4, + y_max = 64, + y_min = -1024, + }) + + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:cobble", + wherein = "default:stone", + clust_scarcity = 40 * 40 * 40, + clust_num_ores = 512, + clust_size = 9, + y_max = 64, + y_min = -4096, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:desert_cobble", + wherein = "default:desert_stone", + clust_scarcity = 40 * 40 * 40, + clust_num_ores = 512, + clust_size = 9, + y_max = 64, + y_min = 0, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:clay", + wherein = "default:sand", + clust_scarcity = 14 * 14 * 14, + clust_num_ores = 64, clust_size = 5, - height_min = 500, - height_max = 31000, + y_max = 4, + y_min = -8, }) - -- 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, - }) + -- Air rooms in dirt: 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, + ore = "air", + wherein = "default:dirt", + clust_scarcity = 24 * 24 * 24, + clust_num_ores = 200, + clust_size = 7, + y_min = -30000, + y_max = 64, + }) + + -- Acid lakes in gravel: + + register_liquid_ore({ + ore_type = "scatter", + ore = "default:acid_source", + wherein = "default:gravel", + clust_scarcity = 26 * 26 * 26, + clust_num_ores = 64, + clust_size = 5, + y_min = -30000, + y_max = 64, }) 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") +-- +-- Register biomes +-- - 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 pr = PseudoRandom(seed) - 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 = pr:next(y_min, y_max-chunk_size+1) - if y0 >= height_min and y0 <= height_max then - local x0 = pr:next(minp.x, maxp.x-chunk_size+1) - local z0 = pr:next(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 pr:next(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") +-- All mapgens except mgv6 and singlenode + +function default.register_biomes() + minetest.clear_registered_biomes() + + -- Permanent ice + + minetest.register_biome({ + name = "glacier", + node_dust = "default:snowblock", + node_top = "default:snowblock", + depth_top = 1, + node_filler = "default:snowblock", + depth_filler = 3, + node_stone = "default:ice", + node_water_top = "default:ice", + depth_water_top = 10, + --node_water = "", + node_river_water = "default:ice", + node_riverbed = "default:gravel", + depth_riverbed = 2, + y_min = -8, + y_max = 31000, + heat_point = 0, + humidity_point = 50, + }) + + minetest.register_biome({ + name = "glacier_ocean", + node_dust = "default:snowblock", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + y_min = -112, + y_max = -9, + heat_point = 0, + humidity_point = 50, + }) + + -- Cold + + minetest.register_biome({ + name = "tundra", + --node_dust = "", + node_top = "default:dirt_with_snow", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 1, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:gravel", + depth_riverbed = 2, + y_min = 2, + y_max = 31000, + heat_point = 15, + humidity_point = 35, + }) + + minetest.register_biome({ + name = "tundra_beach", + --node_dust = "", + node_top = "default:gravel", + depth_top = 1, + node_filler = "default:gravel", + depth_filler = 2, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:gravel", + depth_riverbed = 2, + y_min = -3, + y_max = 1, + heat_point = 15, + humidity_point = 35, + }) + + minetest.register_biome({ + name = "tundra_ocean", + --node_dust = "", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:gravel", + depth_riverbed = 2, + y_min = -112, + y_max = -4, + heat_point = 15, + humidity_point = 35, + }) + + + minetest.register_biome({ + name = "taiga", + node_dust = "default:snow", + node_top = "default:dirt_with_snow", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = 2, + y_max = 31000, + heat_point = 15, + humidity_point = 65, + }) + + minetest.register_biome({ + name = "taiga_ocean", + --node_dust = "", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = -112, + y_max = 1, + heat_point = 15, + humidity_point = 65, + }) + + -- Temperate + + minetest.register_biome({ + name = "stone_grassland", + --node_dust = "", + node_top = "default:dirt_with_grass", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 1, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = 6, + y_max = 31000, + heat_point = 40, + humidity_point = 35, + }) + + minetest.register_biome({ + name = "stone_grassland_dunes", + --node_dust = "", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 2, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = 5, + y_max = 5, + heat_point = 40, + humidity_point = 35, + }) + + minetest.register_biome({ + name = "stone_grassland_ocean", + --node_dust = "", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = -112, + y_max = 4, + heat_point = 40, + humidity_point = 35, + }) + + + minetest.register_biome({ + name = "coniferous_forest", + --node_dust = "", + node_top = "default:dirt_with_grass", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = 6, + y_max = 31000, + heat_point = 40, + humidity_point = 65, + }) + + minetest.register_biome({ + name = "coniferous_forest_dunes", + --node_dust = "", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = 5, + y_max = 5, + heat_point = 40, + humidity_point = 65, + }) + + minetest.register_biome({ + name = "coniferous_forest_ocean", + --node_dust = "", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = -112, + y_max = 4, + heat_point = 40, + humidity_point = 65, + }) + + + minetest.register_biome({ + name = "sandstone_grassland", + --node_dust = "", + node_top = "default:dirt_with_grass", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 1, + node_stone = "default:sandstone", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = 6, + y_max = 31000, + heat_point = 60, + humidity_point = 35, + }) + + minetest.register_biome({ + name = "sandstone_grassland_dunes", + --node_dust = "", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 2, + node_stone = "default:sandstone", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = 5, + y_max = 5, + heat_point = 60, + humidity_point = 35, + }) + + minetest.register_biome({ + name = "sandstone_grassland_ocean", + --node_dust = "", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + node_stone = "default:sandstone", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = -112, + y_max = 4, + heat_point = 60, + humidity_point = 35, + }) + + + minetest.register_biome({ + name = "deciduous_forest", + --node_dust = "", + node_top = "default:dirt_with_grass", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = 1, + y_max = 31000, + heat_point = 60, + humidity_point = 65, + }) + + minetest.register_biome({ + name = "deciduous_forest_swamp", + --node_dust = "", + node_top = "default:dirt", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = -3, + y_max = 0, + heat_point = 60, + humidity_point = 65, + }) + + minetest.register_biome({ + name = "deciduous_forest_ocean", + --node_dust = "", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = -112, + y_max = -4, + heat_point = 60, + humidity_point = 65, + }) + + -- Hot + + minetest.register_biome({ + name = "desert", + --node_dust = "", + node_top = "default:desert_sand", + depth_top = 1, + node_filler = "default:desert_sand", + depth_filler = 1, + node_stone = "default:desert_stone", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = 5, + y_max = 31000, + heat_point = 85, + humidity_point = 20, + }) + + minetest.register_biome({ + name = "desert_ocean", + --node_dust = "", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + node_stone = "default:desert_stone", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = -112, + y_max = 4, + heat_point = 85, + humidity_point = 20, + }) + + + minetest.register_biome({ + name = "savanna", + --node_dust = "", + node_top = "default:dirt_with_dry_grass", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 1, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = 1, + y_max = 31000, + heat_point = 85, + humidity_point = 50, + }) + + minetest.register_biome({ + name = "savanna_swamp", + --node_dust = "", + node_top = "default:dirt", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = -3, + y_max = 0, + heat_point = 85, + humidity_point = 50, + }) + + minetest.register_biome({ + name = "savanna_ocean", + --node_dust = "", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = -112, + y_max = -4, + heat_point = 85, + humidity_point = 50, + }) + + + minetest.register_biome({ + name = "rainforest", + --node_dust = "", + node_top = "default:dirt_with_grass", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = 1, + y_max = 31000, + heat_point = 85, + humidity_point = 80, + }) + + minetest.register_biome({ + name = "rainforest_swamp", + --node_dust = "", + node_top = "default:dirt", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = -3, + y_max = 0, + heat_point = 85, + humidity_point = 80, + }) + + minetest.register_biome({ + name = "rainforest_ocean", + --node_dust = "", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = -112, + y_max = -4, + heat_point = 85, + humidity_point = 80, + }) + + -- Underground + + minetest.register_biome({ + name = "underground", + --node_dust = "", + --node_top = "", + --depth_top = , + --node_filler = "", + --depth_filler = , + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + y_min = -31000, + y_max = -113, + heat_point = 50, + humidity_point = 50, + }) 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 + +-- +-- Register decorations +-- + +-- Mgv6 + +function default.register_mgv6_decorations() + minetest.clear_registered_decorations() + + -- Papyrus + + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = -0.3, + scale = 0.7, + spread = {x = 100, y = 100, z = 100}, + seed = 354, + octaves = 3, + persist = 0.7 + }, + y_min = 1, + y_max = 1, + decoration = "default:papyrus", + height = 2, + height_max = 4, + spawn_by = "default:water_source", + num_spawn_by = 1, + }) + + -- Cacti + + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:desert_sand"}, + sidelen = 16, + noise_params = { + offset = -0.012, + scale = 0.024, + spread = {x = 100, y = 100, z = 100}, + seed = 230, + octaves = 3, + persist = 0.6 + }, + y_min = 1, + y_max = 30, + decoration = "default:cactus", + height = 3, + height_max = 4, + }) + + -- Long grasses + + for length = 1, 5 do + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = 0.007, + spread = {x = 100, y = 100, z = 100}, + seed = 329, + octaves = 3, + persist = 0.6 + }, + y_min = 1, + y_max = 30, + decoration = "default:grass_"..length, + }) end + + -- Dry shrubs + + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:desert_sand", "default:dirt_with_snow"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = 0.035, + spread = {x = 100, y = 100, z = 100}, + seed = 329, + octaves = 3, + persist = 0.6 + }, + y_min = 1, + y_max = 30, + decoration = "default:dry_shrub", + }) + + -- Cherry tree + minetest.register_decoration({ + deco_type = "simple", + place_on = "default:dirt_with_grass", + sidelen = 16, + noise_params = { + offset = 0, + scale = 0.005, + spread = {x=100, y=100, z=100}, + seed = 278, + octaves = 2, + persist = 0.7 + }, + decoration = "default:mg_cherry_sapling", + height = 1, + }) 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 +-- All mapgens except mgv6 and singlenode + +local function register_grass_decoration(offset, scale, length) + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass", "default:sand"}, + sidelen = 16, + noise_params = { + offset = offset, + scale = scale, + spread = {x = 200, y = 200, z = 200}, + seed = 329, + octaves = 3, + persist = 0.6 + }, + biomes = {"stone_grassland", "sandstone_grassland", + "deciduous_forest", "coniferous_forest", + "stone_grassland_dunes", "sandstone_grassland_dunes", + "coniferous_forest_dunes"}, + y_min = 1, + y_max = 31000, + decoration = "default:grass_"..length, + }) 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 +local function register_dry_grass_decoration(offset, scale, length) + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_dry_grass"}, + sidelen = 16, + noise_params = { + offset = offset, + scale = scale, + spread = {x = 200, y = 200, z = 200}, + seed = 329, + octaves = 3, + persist = 0.6 + }, + biomes = {"savanna"}, + y_min = 1, + y_max = 31000, + decoration = "default:dry_grass_"..length, + }) 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 pr:next(0, 1000) == 0 then - local x0 = pr:next(minp.x, maxp.x) - local y0 = pr:next(minp.y, maxp.y) - local z0 = pr:next(minp.z, maxp.z) - local p0 = {x=x0, y=y0, z=z0} - default.make_nyancat(p0, pr:next(0,3), pr:next(3,15)) - end - end +function default.register_decorations() + minetest.clear_registered_decorations() + + -- Apple tree and log + + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0.036, + scale = 0.022, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = {"deciduous_forest"}, + y_min = 1, + y_max = 31000, + schematic = minetest.get_modpath("default").."/schematics/apple_tree.mts", + flags = "place_center_x, place_center_z", + }) + + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0.0018, + scale = 0.0011, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = {"deciduous_forest"}, + y_min = 1, + y_max = 31000, + schematic = { + size = {x = 3, y = 3, z = 1}, + data = { + {name = "air", prob = 0}, + {name = "air", prob = 0}, + {name = "air", prob = 0}, + {name = "default:tree", param2 = 12, prob = 191}, + {name = "default:tree", param2 = 12}, + {name = "default:tree", param2 = 12, prob = 127}, + {name = "air", prob = 0}, + {name = "flowers:mushroom_brown", prob = 63}, + {name = "air", prob = 0}, + }, + }, + flags = "place_center_x", + rotation = "random", + }) + + -- Jungle tree and log + + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt_with_grass", "default:dirt"}, + sidelen = 80, + fill_ratio = 0.1, + biomes = {"rainforest", "rainforest_swamp"}, + y_min = 0, + y_max = 31000, + schematic = minetest.get_modpath("default").."/schematics/jungle_tree.mts", + flags = "place_center_x, place_center_z", + rotation = "random", + }) + + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt_with_grass", "default:dirt"}, + sidelen = 80, + fill_ratio = 0.005, + biomes = {"rainforest", "rainforest_swamp"}, + y_min = 1, + y_max = 31000, + schematic = { + size = {x = 3, y = 3, z = 1}, + data = { + {name = "air", prob = 0}, + {name = "air", prob = 0}, + {name = "air", prob = 0}, + {name = "default:jungletree", param2 = 12, prob = 191}, + {name = "default:jungletree", param2 = 12}, + {name = "default:jungletree", param2 = 12, prob = 127}, + {name = "air", prob = 0}, + {name = "flowers:mushroom_brown", prob = 127}, + {name = "air", prob = 0}, + }, + }, + flags = "place_center_x", + rotation = "random", + }) + + -- Taiga and temperate coniferous forest pine tree and log + + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt_with_snow", "default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0.036, + scale = 0.022, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = {"taiga", "coniferous_forest"}, + y_min = 2, + y_max = 31000, + schematic = minetest.get_modpath("default").."/schematics/pine_tree.mts", + flags = "place_center_x, place_center_z", + }) + + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt_with_snow", "default:dirt_with_grass"}, + sidelen = 80, + noise_params = { + offset = 0.0018, + scale = 0.0011, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = {"taiga", "coniferous_forest"}, + y_min = 1, + y_max = 31000, + schematic = { + size = {x = 3, y = 3, z = 1}, + data = { + {name = "air", prob = 0}, + {name = "air", prob = 0}, + {name = "air", prob = 0}, + {name = "default:pine_tree", param2 = 12, prob = 191}, + {name = "default:pine_tree", param2 = 12}, + {name = "default:pine_tree", param2 = 12, prob = 127}, + {name = "air", prob = 0}, + {name = "flowers:mushroom_red", prob = 63}, + {name = "air", prob = 0}, + }, + }, + flags = "place_center_x", + rotation = "random", + }) + + -- Acacia tree and log + + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt_with_dry_grass"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = 0.002, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = {"savanna"}, + y_min = 1, + y_max = 31000, + schematic = minetest.get_modpath("default").."/schematics/acacia_tree.mts", + flags = "place_center_x, place_center_z", + rotation = "random", + }) + + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt_with_dry_grass"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = 0.001, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = {"savanna"}, + y_min = 1, + y_max = 31000, + schematic = { + size = {x = 3, y = 2, z = 1}, + data = { + {name = "air", prob = 0}, + {name = "air", prob = 0}, + {name = "air", prob = 0}, + {name = "default:acacia_tree", param2 = 12, prob = 191}, + {name = "default:acacia_tree", param2 = 12}, + {name = "default:acacia_tree", param2 = 12, prob = 127}, + }, + }, + flags = "place_center_x", + rotation = "random", + }) + + -- Aspen tree and log + + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0.0, + scale = -0.015, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = {"deciduous_forest"}, + y_min = 1, + y_max = 31000, + schematic = minetest.get_modpath("default").."/schematics/aspen_tree.mts", + flags = "place_center_x, place_center_z", + }) + + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0.0, + scale = -0.0008, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = {"deciduous_forest"}, + y_min = 1, + y_max = 31000, + schematic = { + size = {x = 3, y = 3, z = 1}, + data = { + {name = "air", prob = 0}, + {name = "air", prob = 0}, + {name = "air", prob = 0}, + {name = "default:aspen_tree", param2 = 12}, + {name = "default:aspen_tree", param2 = 12}, + {name = "default:aspen_tree", param2 = 12, prob = 127}, + {name = "flowers:mushroom_red", prob = 63}, + {name = "flowers:mushroom_brown", prob = 63}, + {name = "air", prob = 0}, + }, + }, + flags = "place_center_x", + rotation = "random", + }) + -- Large cactus + + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:desert_sand"}, + sidelen = 16, + noise_params = { + offset = -0.0003, + scale = 0.0009, + spread = {x = 200, y = 200, z = 200}, + seed = 230, + octaves = 3, + persist = 0.6 + }, + biomes = {"desert"}, + y_min = 5, + y_max = 31000, + schematic = minetest.get_modpath("default").."/schematics/large_cactus.mts", + flags = "place_center_x", + rotation = "random", + }) + + -- Cactus + + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:desert_sand"}, + sidelen = 16, + noise_params = { + offset = -0.0003, + scale = 0.0009, + spread = {x = 200, y = 200, z = 200}, + seed = 230, + octaves = 3, + persist = 0.6 + }, + biomes = {"desert"}, + y_min = 5, + y_max = 31000, + decoration = "default:cactus", + height = 2, + height_max = 5, + }) + + -- Papyrus + + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt"}, + sidelen = 16, + noise_params = { + offset = -0.3, + scale = 0.7, + spread = {x = 200, y = 200, z = 200}, + seed = 354, + octaves = 3, + persist = 0.7 + }, + biomes = {"savanna_swamp"}, + y_min = 0, + y_max = 0, + schematic = minetest.get_modpath("default").."/schematics/papyrus.mts", + }) + + -- Grasses + + register_grass_decoration(-0.03, 0.09, 5) + register_grass_decoration(-0.015, 0.075, 4) + register_grass_decoration(0, 0.06, 3) + register_grass_decoration(0.015, 0.045, 2) + register_grass_decoration(0.03, 0.03, 1) + + -- Dry grasses + + register_dry_grass_decoration(0.01, 0.05, 5) + register_dry_grass_decoration(0.03, 0.03, 4) + register_dry_grass_decoration(0.05, 0.01, 3) + register_dry_grass_decoration(0.07, -0.01, 2) + register_dry_grass_decoration(0.09, -0.03, 1) + + -- Junglegrass + + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 80, + fill_ratio = 0.1, + biomes = {"rainforest"}, + y_min = 1, + y_max = 31000, + decoration = "default:junglegrass", + }) + + -- Dry shrub + + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:desert_sand", "default:dirt_with_snow"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = 0.02, + spread = {x = 200, y = 200, z = 200}, + seed = 329, + octaves = 3, + persist = 0.6 + }, + biomes = {"desert", "tundra"}, + y_min = 2, + y_max = 31000, + decoration = "default:dry_shrub", + }) 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 = pr:next(x0, x1) - local z = pr:next(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}, pr:next(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 = 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 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}, pr:next(3, 4)) - 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 = 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 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_"..pr:next(1, 5)}) - end - end - end - - end - end - end - end - - -- Generate nyan cats - generate_nyancats(seed, minp, maxp) -end) +-- +-- Detect mapgen to select functions +-- +local mg_params = minetest.get_mapgen_params() --(1) MFF IMPORTANT for mt <= 0.14.4 stable +if mg_params.mgname == "v6" then --(1) +--local mg_name = minetest.get_mapgen_setting("mg_name") --(2) for mt > 0.14.4 stable +--if mg_name == "v6" then--(2) + default.register_ores() + default.register_mgv6_decorations() +else + --default.register_biomes() -- MFF + default.register_ores() + --default.register_decorations() MFF: Causes extremely dense forests everywhere (since biomes are not used, decorations are generated everywhere). +end diff --git a/mods/default/models/character.b3d b/mods/default/models/character.b3d new file mode 100755 index 00000000..bc9d9273 Binary files /dev/null and b/mods/default/models/character.b3d differ diff --git a/mods/default/models/character.blend b/mods/default/models/character.blend deleted file mode 100644 index 34c56240..00000000 Binary files a/mods/default/models/character.blend and /dev/null differ diff --git a/mods/default/models/character.x b/mods/default/models/character.x deleted file mode 100644 index 8326095b..00000000 --- a/mods/default/models/character.x +++ /dev/null @@ -1,7457 +0,0 @@ -xof 0303txt 0032 - -template XSkinMeshHeader { - <3cf169ce-ff7c-44ab-93c0-f78f62d172e2> - WORD nMaxSkinWeightsPerVertex; - WORD nMaxSkinWeightsPerFace; - WORD nBones; -} - -template SkinWeights { - <6f0d123b-bad2-4167-a0d0-80224f25fabb> - STRING transformNodeName; - DWORD nWeights; - array DWORD vertexIndices[nWeights]; - array float weights[nWeights]; - Matrix4x4 matrixOffset; -} - -Frame Root { - FrameTransformMatrix { - 1.000000, 0.000000, 0.000000, 0.000000, - 0.000000,-0.000000, 1.000000, 0.000000, - 0.000000, 1.000000, 0.000000, 0.000000, - 0.000000, 0.000000, 0.000000, 1.000000;; - } - Frame Armature { - FrameTransformMatrix { - 1.000000, 0.000000, 0.000000, 0.000000, - 0.000000, 1.000000, 0.000000, 0.000000, - 0.000000, 0.000000, 1.000000, 0.000000, - 0.000000, 0.000000,-10.000000, 1.000000;; - } - Frame Armature_Body { - FrameTransformMatrix { - 1.000000, 0.000000, 0.000000, 0.000000, - 0.000000, 0.000000, 1.000000, 0.000000, - 0.000000,-1.000000, 0.000000, 0.000000, - -0.000000, 0.000000, 6.750000, 1.000000;; - } - Frame Armature_Arm_Left { - FrameTransformMatrix { - 0.989214,-0.143886,-0.027450, 0.000000, - -0.143940,-0.989586,-0.000000, 0.000000, - -0.027164, 0.003951,-0.999623, 0.000000, - -2.000000, 6.750000,-0.000000, 1.000000;; - } - } // End of Armature_Arm_Left - Frame Armature_Arm_Right { - FrameTransformMatrix { - 0.989214, 0.143886, 0.027450, 0.000000, - 0.143940,-0.989586,-0.000000, 0.000000, - 0.027164, 0.003951,-0.999623, 0.000000, - 2.000000, 6.750000,-0.000000, 1.000000;; - } - } // End of Armature_Arm_Right - Frame Armature_Cape { - FrameTransformMatrix { - 1.000000,-0.000000,-0.000000, 0.000000, - 0.000000,-1.000000, 0.000002, 0.000000, - -0.000000,-0.000002,-1.000000, 0.000000, - 0.000000, 6.750000, 0.976707, 1.000000;; - } - } // End of Armature_Cape - Frame Armature_Head { - FrameTransformMatrix { - -1.000000,-0.000000, 0.000000, 0.000000, - 0.000000, 1.000000, 0.000000, 0.000000, - -0.000000, 0.000000,-1.000000, 0.000000, - 0.000000, 6.750000,-0.000000, 1.000000;; - } - } // End of Armature_Head - Frame Armature_Leg_Left { - FrameTransformMatrix { - 1.000000, 0.000000,-0.000000, 0.000000, - -0.000000,-1.000000,-0.000000, 0.000000, - -0.000000, 0.000000,-1.000000, 0.000000, - -1.000000, 0.000000,-0.000001, 1.000000;; - } - } // End of Armature_Leg_Left - Frame Armature_Leg_Right { - FrameTransformMatrix { - 1.000000, 0.000000,-0.000000, 0.000000, - -0.000000,-1.000000,-0.000000, 0.000000, - -0.000000, 0.000000,-1.000000, 0.000000, - 1.000000, 0.000000,-0.000001, 1.000000;; - } - } // End of Armature_Leg_Right - } // End of Armature_Body - Frame Player { - FrameTransformMatrix { - 1.000000, 0.000000, 0.000000, 0.000000, - 0.000000, 1.000000, 0.000000, 0.000000, - 0.000000, 0.000000, 1.000000, 0.000000, - 0.000000, 0.000000, 0.000000, 1.000000;; - } - Mesh { // Player mesh - 192; - 2.000000;-1.000000;13.500000;, - -2.000000;-1.000000;13.500000;, - -2.000000;-1.000000; 6.750000;, - 2.000000;-1.000000; 6.750000;, - -2.000000;-1.000000;13.500000;, - -2.000000; 1.000000;13.500000;, - -2.000000; 1.000000; 6.750000;, - -2.000000;-1.000000; 6.750000;, - -2.000000; 1.000000;13.500000;, - 2.000000; 1.000000;13.500000;, - 2.000000; 1.000000; 6.750000;, - -2.000000; 1.000000; 6.750000;, - 2.000000; 1.000000; 6.750000;, - 2.000000;-1.000000; 6.750000;, - -2.000000;-1.000000; 6.750000;, - -2.000000; 1.000000; 6.750000;, - -2.000000; 1.000000;13.500000;, - -2.000000;-1.000000;13.500000;, - 2.000000;-1.000000;13.500000;, - 2.000000; 1.000000;13.500000;, - 0.000000; 1.000000; 6.750000;, - 0.000000; 1.000000; 0.000000;, - 0.000000;-1.000000; 0.000000;, - 0.000000;-1.000000; 6.750000;, - -2.000000;-1.000000;13.500000;, - -4.000000;-1.000000;13.500000;, - -4.000000;-1.000000; 6.750000;, - -2.000000;-1.000000; 6.750000;, - -2.000000; 1.000000;13.500000;, - -2.000000;-1.000000;13.500000;, - -2.000000;-1.000000; 6.750000;, - -2.000000; 1.000000; 6.750000;, - 0.000000; 1.000000; 0.000000;, - -0.000000;-1.000000; 0.000000;, - -2.000000;-1.000000; 0.000000;, - -2.000000; 1.000000; 0.000000;, - -2.000000;-1.000000; 6.750000;, - -2.000000; 1.000000; 6.750000;, - -2.000000; 1.000000; 0.000000;, - -2.000000;-1.000000; 0.000000;, - 2.000000;-2.000000;17.500000;, - -2.000000;-2.000000;17.500000;, - -2.000000;-2.000000;13.500000;, - 2.000000;-2.000000;13.500000;, - -2.000000;-2.000000;17.500000;, - -2.000000; 2.000000;17.500000;, - -2.000000; 2.000000;13.500000;, - -2.000000;-2.000000;13.500000;, - -2.000000; 2.000000;17.500000;, - 2.000000; 2.000000;17.500000;, - 2.000000; 2.000000;13.500000;, - -2.000000; 2.000000;13.500000;, - 2.000000; 2.000000;13.500000;, - 2.000000;-2.000000;13.500000;, - -2.000000;-2.000000;13.500000;, - -2.000000; 2.000000;13.500000;, - -2.000000; 2.000000;17.500000;, - -2.000000;-2.000000;17.500000;, - 2.000000;-2.000000;17.500000;, - 2.000000; 2.000000;17.500000;, - 0.000000;-1.000000; 6.750000;, - -2.000000;-1.000000; 6.750000;, - -2.000000;-1.000000; 0.000000;, - -0.000000;-1.000000; 0.000000;, - 2.000000; 1.000000; 6.750000;, - 2.000000; 1.000000; 0.000000;, - 0.000000; 1.000000; 0.000000;, - 0.000000; 1.000000; 6.750000;, - -2.000000; 1.000000; 6.750000;, - 0.000000; 1.000000; 6.750000;, - 0.000000; 1.000000; 0.000000;, - -2.000000; 1.000000; 0.000000;, - 2.000000; 1.000000; 6.750000;, - 4.000000; 1.000000; 6.750000;, - 4.000000;-1.000000; 6.750000;, - 2.000000;-1.000000; 6.750000;, - 4.000000; 1.000000;13.500000;, - 2.000000; 1.000000;13.500000;, - 2.000000;-1.000000;13.500000;, - 4.000000;-1.000000;13.500000;, - 0.000000;-1.000000; 6.750000;, - 0.000000;-1.000000; 0.000000;, - 2.000000;-1.000000; 0.000000;, - 2.000000;-1.000000; 6.750000;, - 0.000000; 1.000000; 6.750000;, - 0.000000;-1.000000; 6.750000;, - -0.000000;-1.000000; 0.000000;, - 0.000000; 1.000000; 0.000000;, - 2.000000;-1.000000; 6.750000;, - 2.000000;-1.000000; 0.000000;, - 2.000000; 1.000000; 0.000000;, - 2.000000; 1.000000; 6.750000;, - 2.000000;-1.000000;13.500000;, - 2.000000;-1.000000; 6.750000;, - 2.000000; 1.000000; 6.750000;, - 2.000000; 1.000000;13.500000;, - 2.000000;-2.000000;17.500000;, - 2.000000;-2.000000;13.500000;, - 2.000000; 2.000000;13.500000;, - 2.000000; 2.000000;17.500000;, - -2.000000; 1.000000; 6.750000;, - -2.000000;-1.000000; 6.750000;, - 0.000000;-1.000000; 6.750000;, - 0.000000; 1.000000; 6.750000;, - -4.000000; 1.000000;13.500000;, - -2.000000; 1.000000;13.500000;, - -2.000000; 1.000000; 6.750000;, - -4.000000; 1.000000; 6.750000;, - -4.000000;-1.000000;13.500000;, - -4.000000; 1.000000;13.500000;, - -4.000000; 1.000000; 6.750000;, - -4.000000;-1.000000; 6.750000;, - 4.000000;-1.000000;13.500000;, - 4.000000;-1.000000; 6.750000;, - 4.000000; 1.000000; 6.750000;, - 4.000000; 1.000000;13.500000;, - -4.000000; 1.000000;13.500000;, - -4.000000;-1.000000;13.500000;, - -2.000000;-1.000000;13.500000;, - -2.000000; 1.000000;13.500000;, - 4.000000; 1.000000;13.500000;, - 4.000000; 1.000000; 6.750000;, - 2.000000; 1.000000; 6.750000;, - 2.000000; 1.000000;13.500000;, - 0.000000; 1.000000; 0.000000;, - 2.000000; 1.000000; 0.000000;, - 2.000000;-1.000000; 0.000000;, - 0.000000;-1.000000; 0.000000;, - 2.000000; 1.000000;13.500000;, - 2.000000; 1.000000; 6.750000;, - 2.000000;-1.000000; 6.750000;, - 2.000000;-1.000000;13.500000;, - -2.000000; 1.000000; 6.750000;, - -2.000000;-1.000000; 6.750000;, - -4.000000;-1.000000; 6.750000;, - -4.000000; 1.000000; 6.750000;, - 2.000000;-1.000000;13.500000;, - 2.000000;-1.000000; 6.750000;, - 4.000000;-1.000000; 6.750000;, - 4.000000;-1.000000;13.500000;, - 2.000000; 1.000000; 6.750000;, - 0.000000; 1.000000; 6.750000;, - 0.000000;-1.000000; 6.750000;, - 2.000000;-1.000000; 6.750000;, - 2.200000;-2.200000;17.702990;, - -2.200000;-2.200000;17.702990;, - -2.200000;-2.200000;13.302996;, - 2.200000;-2.200000;13.302996;, - -2.200000;-2.200000;17.702990;, - -2.200000; 2.200000;17.702990;, - -2.200000; 2.200000;13.302996;, - -2.200000;-2.200000;13.302996;, - -2.200000; 2.200000;17.702990;, - 2.200000; 2.200000;17.702990;, - 2.200000; 2.200000;13.302996;, - -2.200000; 2.200000;13.302996;, - 2.200000; 2.200000;13.302996;, - 2.200000;-2.200000;13.302996;, - -2.200000;-2.200000;13.302996;, - -2.200000; 2.200000;13.302996;, - -2.200000; 2.200000;17.702990;, - -2.200000;-2.200000;17.702990;, - 2.200000;-2.200000;17.702990;, - 2.200000; 2.200000;17.702990;, - 2.200000;-2.200000;17.702990;, - 2.200000;-2.200000;13.302996;, - 2.200000; 2.200000;13.302996;, - 2.200000; 2.200000;17.702990;, - 2.000000;-1.364403;13.500000;, - -2.000000;-1.364403;13.500000;, - -2.000000;-1.364403; 6.750000;, - 2.000000;-1.364403; 6.750000;, - 2.000000;-1.000000;13.500000;, - 2.000000;-1.000000; 6.750000;, - -2.000000;-1.000000; 6.750000;, - -2.000000;-1.000000;13.500000;, - -2.000000;-1.364403;13.500000;, - 2.000000;-1.364403;13.500000;, - 2.000000;-1.000000;13.500000;, - -2.000000;-1.000000;13.500000;, - 2.000000;-1.364403;13.500000;, - 2.000000;-1.364403; 6.750000;, - 2.000000;-1.000000; 6.750000;, - 2.000000;-1.000000;13.500000;, - -2.000000;-1.364403; 6.750000;, - -2.000000;-1.364403;13.500000;, - -2.000000;-1.000000;13.500000;, - -2.000000;-1.000000; 6.750000;, - 2.000000;-1.364403; 6.750000;, - -2.000000;-1.364403; 6.750000;, - -2.000000;-1.000000; 6.750000;, - 2.000000;-1.000000; 6.750000;; - 48; - 4;3,2,1,0;, - 4;7,6,5,4;, - 4;11,10,9,8;, - 4;15,14,13,12;, - 4;19,18,17,16;, - 4;23,22,21,20;, - 4;27,26,25,24;, - 4;31,30,29,28;, - 4;35,34,33,32;, - 4;39,38,37,36;, - 4;43,42,41,40;, - 4;47,46,45,44;, - 4;51,50,49,48;, - 4;55,54,53,52;, - 4;59,58,57,56;, - 4;63,62,61,60;, - 4;67,66,65,64;, - 4;71,70,69,68;, - 4;75,74,73,72;, - 4;79,78,77,76;, - 4;83,82,81,80;, - 4;87,86,85,84;, - 4;91,90,89,88;, - 4;95,94,93,92;, - 4;99,98,97,96;, - 4;103,102,101,100;, - 4;107,106,105,104;, - 4;111,110,109,108;, - 4;115,114,113,112;, - 4;119,118,117,116;, - 4;123,122,121,120;, - 4;127,126,125,124;, - 4;131,130,129,128;, - 4;135,134,133,132;, - 4;139,138,137,136;, - 4;143,142,141,140;, - 4;147,146,145,144;, - 4;151,150,149,148;, - 4;155,154,153,152;, - 4;159,158,157,156;, - 4;163,162,161,160;, - 4;167,166,165,164;, - 4;171,170,169,168;, - 4;175,174,173,172;, - 4;179,178,177,176;, - 4;183,182,181,180;, - 4;187,186,185,184;, - 4;191,190,189,188;; - MeshNormals { // Player normals - 48; - -0.000000;-1.000000; 0.000000;, - -1.000000; 0.000000; 0.000000;, - 0.000000; 1.000000; 0.000000;, - 0.000000; 0.000000;-1.000000;, - 0.000000; 0.000000; 1.000000;, - -1.000000; 0.000000; 0.000000;, - 0.000000;-1.000000; 0.000000;, - 1.000000; 0.000000;-0.000000;, - 0.000000; 0.000000;-1.000000;, - -1.000000; 0.000000; 0.000000;, - 0.000000;-1.000000; 0.000000;, - -1.000000; 0.000000; 0.000000;, - 0.000000; 1.000000;-0.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; 0.000000;-1.000000;, - 0.000000;-0.000000; 1.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; 1.000000; 0.000000;, - -1.000000; 0.000000; 0.000000;, - 1.000000; 0.000000; 0.000000;, - 0.000000; 0.000000; 1.000000;, - 0.000000; 1.000000; 0.000000;, - 0.000000; 0.000000;-1.000000;, - -1.000000; 0.000000; 0.000000;, - 0.000000; 0.000000;-1.000000;, - -0.000000;-1.000000; 0.000000;, - 0.000000;-0.000000; 1.000000;, - 0.000000;-1.000000; 0.000000;, - -1.000000; 0.000000; 0.000000;, - 0.000000; 1.000000;-0.000000;, - 0.000000; 0.000000;-1.000000;, - 0.000000; 0.000000; 1.000000;, - 1.000000; 0.000000; 0.000000;, - 0.000000;-1.000000; 0.000000;, - -0.000000; 1.000000; 0.000000;, - 0.000000; 0.000000; 1.000000;, - 1.000000; 0.000000; 0.000000;, - -1.000000;-0.000000; 0.000000;, - 0.000000;-0.000000;-1.000000;; - 48; - 4;0,0,0,0;, - 4;1,1,1,1;, - 4;2,2,2,2;, - 4;3,3,3,3;, - 4;4,4,4,4;, - 4;5,5,5,5;, - 4;6,6,6,6;, - 4;7,7,7,7;, - 4;8,8,8,8;, - 4;9,9,9,9;, - 4;10,10,10,10;, - 4;11,11,11,11;, - 4;12,12,12,12;, - 4;13,13,13,13;, - 4;14,14,14,14;, - 4;15,15,15,15;, - 4;16,16,16,16;, - 4;17,17,17,17;, - 4;18,18,18,18;, - 4;19,19,19,19;, - 4;20,20,20,20;, - 4;21,21,21,21;, - 4;22,22,22,22;, - 4;23,23,23,23;, - 4;24,24,24,24;, - 4;25,25,25,25;, - 4;26,26,26,26;, - 4;27,27,27,27;, - 4;28,28,28,28;, - 4;29,29,29,29;, - 4;30,30,30,30;, - 4;31,31,31,31;, - 4;32,32,32,32;, - 4;33,33,33,33;, - 4;34,34,34,34;, - 4;35,35,35,35;, - 4;36,36,36,36;, - 4;37,37,37,37;, - 4;38,38,38,38;, - 4;39,39,39,39;, - 4;40,40,40,40;, - 4;41,41,41,41;, - 4;42,42,42,42;, - 4;43,43,43,43;, - 4;44,44,44,44;, - 4;45,45,45,45;, - 4;46,46,46,46;, - 4;47,47,47,47;; - } // End of Player normals - MeshTextureCoords { // Player UV coordinates - 192; - 0.625000; 0.625000;, - 0.500000; 0.625000;, - 0.500000; 1.000000;, - 0.625000; 1.000000;, - 0.500000; 0.625000;, - 0.437500; 0.625000;, - 0.437500; 1.000000;, - 0.500000; 1.000000;, - 0.437500; 0.625000;, - 0.312500; 0.625000;, - 0.312500; 1.000000;, - 0.437500; 1.000000;, - 0.562500; 0.625000;, - 0.562500; 0.500000;, - 0.437500; 0.500000;, - 0.437500; 0.625000;, - 0.437500; 0.625000;, - 0.437500; 0.500000;, - 0.312500; 0.500000;, - 0.312500; 0.625000;, - 0.187500; 0.625000;, - 0.187500; 1.000000;, - 0.125000; 1.000000;, - 0.125000; 0.625000;, - 0.812500; 0.625000;, - 0.875000; 0.625000;, - 0.875000; 1.000000;, - 0.812500; 1.000000;, - 0.750000; 0.625000;, - 0.812500; 0.625000;, - 0.812500; 1.000000;, - 0.750000; 1.000000;, - 0.187500; 0.625000;, - 0.187500; 0.500000;, - 0.125000; 0.500000;, - 0.125000; 0.625000;, - 0.000000; 0.625000;, - 0.062500; 0.625000;, - 0.062500; 1.000000;, - 0.000000; 1.000000;, - 0.500000; 0.250000;, - 0.375000; 0.250000;, - 0.375000; 0.500000;, - 0.500000; 0.500000;, - 0.375000; 0.250000;, - 0.250000; 0.250000;, - 0.250000; 0.500000;, - 0.375000; 0.500000;, - 0.250000; 0.250000;, - 0.125000; 0.250000;, - 0.125000; 0.500000;, - 0.250000; 0.500000;, - 0.375000; 0.250000;, - 0.375000; 0.000000;, - 0.250000; 0.000000;, - 0.250000; 0.250000;, - 0.250000; 0.250000;, - 0.250000; 0.000000;, - 0.125000; 0.000000;, - 0.125000; 0.250000;, - 0.250000; 0.625000;, - 0.187500; 0.625000;, - 0.187500; 1.000000;, - 0.250000; 1.000000;, - 0.125000; 0.625000;, - 0.125000; 1.000000;, - 0.062500; 1.000000;, - 0.062500; 0.625000;, - 0.125000; 0.625000;, - 0.062500; 0.625000;, - 0.062500; 1.000000;, - 0.125000; 1.000000;, - 0.750000; 0.625000;, - 0.812500; 0.625000;, - 0.812500; 0.500000;, - 0.750000; 0.500000;, - 0.687500; 0.625000;, - 0.750000; 0.625000;, - 0.750000; 0.500000;, - 0.687500; 0.500000;, - 0.250000; 0.625000;, - 0.250000; 1.000000;, - 0.187500; 1.000000;, - 0.187500; 0.625000;, - 0.187500; 0.625000;, - 0.125000; 0.625000;, - 0.125000; 1.000000;, - 0.187500; 1.000000;, - 0.000000; 0.625000;, - 0.000000; 1.000000;, - 0.062500; 1.000000;, - 0.062500; 0.625000;, - 0.250000; 0.625000;, - 0.250000; 1.000000;, - 0.312500; 1.000000;, - 0.312500; 0.625000;, - 0.000000; 0.250000;, - 0.000000; 0.500000;, - 0.125000; 0.500000;, - 0.125000; 0.250000;, - 0.125000; 0.625000;, - 0.125000; 0.500000;, - 0.062500; 0.500000;, - 0.062500; 0.625000;, - 0.687500; 0.625000;, - 0.750000; 0.625000;, - 0.750000; 1.000000;, - 0.687500; 1.000000;, - 0.687500; 0.625000;, - 0.625000; 0.625000;, - 0.625000; 1.000000;, - 0.687500; 1.000000;, - 0.687500; 0.625000;, - 0.687500; 1.000000;, - 0.625000; 1.000000;, - 0.625000; 0.625000;, - 0.687500; 0.625000;, - 0.687500; 0.500000;, - 0.750000; 0.500000;, - 0.750000; 0.625000;, - 0.687500; 0.625000;, - 0.687500; 1.000000;, - 0.750000; 1.000000;, - 0.750000; 0.625000;, - 0.187500; 0.625000;, - 0.125000; 0.625000;, - 0.125000; 0.500000;, - 0.187500; 0.500000;, - 0.750000; 0.625000;, - 0.750000; 1.000000;, - 0.812500; 1.000000;, - 0.812500; 0.625000;, - 0.750000; 0.625000;, - 0.750000; 0.500000;, - 0.812500; 0.500000;, - 0.812500; 0.625000;, - 0.812500; 0.625000;, - 0.812500; 1.000000;, - 0.875000; 1.000000;, - 0.875000; 0.625000;, - 0.125000; 0.625000;, - 0.062500; 0.625000;, - 0.062500; 0.500000;, - 0.125000; 0.500000;, - 1.000000; 0.250000;, - 0.875000; 0.250000;, - 0.875000; 0.500000;, - 1.000000; 0.500000;, - 0.875000; 0.250000;, - 0.750000; 0.250000;, - 0.750000; 0.500000;, - 0.875000; 0.500000;, - 0.750000; 0.250000;, - 0.625000; 0.250000;, - 0.625000; 0.500000;, - 0.750000; 0.500000;, - 0.875000; 0.250000;, - 0.875000; 0.000000;, - 0.750000; 0.000000;, - 0.750000; 0.250000;, - 0.750000; 0.250000;, - 0.750000; 0.000000;, - 0.625000; 0.000000;, - 0.625000; 0.250000;, - 0.500000; 0.250000;, - 0.500000; 0.500000;, - 0.625000; 0.500000;, - 0.625000; 0.250000;, - 1.000000; 0.625000;, - 0.875000; 0.625000;, - 0.875000; 1.000000;, - 1.000000; 1.000000;, - 1.000000; 0.625000;, - 1.000000; 1.000000;, - 0.875000; 1.000000;, - 0.875000; 0.625000;, - 0.875000; 0.625000;, - 1.000000; 0.625000;, - 1.000000; 0.656250;, - 0.875000; 0.656250;, - 1.000000; 0.625000;, - 1.000000; 1.000000;, - 0.984375; 1.000000;, - 0.984375; 0.625000;, - 0.875000; 1.000000;, - 0.875000; 0.625000;, - 0.890625; 0.625000;, - 0.890625; 1.000000;, - 1.000000; 1.000000;, - 0.875000; 1.000000;, - 0.875000; 0.968750;, - 1.000000; 0.968750;; - } // End of Player UV coordinates - MeshMaterialList { // Player material list - 1; - 48; - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 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 Character { - 0.640000; 0.640000; 0.640000; 1.000000;; - 96.078431; - 0.000000; 0.000000; 0.000000;; - 0.000000; 0.000000; 0.000000;; - TextureFilename {"character.png";} - } - } // End of Player material list - XSkinMeshHeader { - 2; - 6; - 7; - } - SkinWeights { - "Armature_Arm_Right"; - 24; - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 112, - 113, - 114, - 115, - 120, - 121, - 122, - 123, - 128, - 129, - 130, - 131, - 136, - 137, - 138, - 139; - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000; - 0.989214, 0.143940, 0.027164, 0.000000, - -0.027450,-0.000000, 0.999623, 0.000000, - 0.143886,-0.989587, 0.003951, 0.000000, - -3.920884,13.071539,-0.107668, 1.000000;; - } // End of Armature_Arm_Right skin weights - SkinWeights { - "Armature_Arm_Left"; - 24; - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 116, - 117, - 118, - 119, - 132, - 133, - 134, - 135; - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000; - 0.989214,-0.143940,-0.027164, 0.000000, - 0.027450,-0.000000, 0.999623, 0.000000, - -0.143886,-0.989587, 0.003951, 0.000000, - 3.920884,13.071539,-0.107668, 1.000000;; - } // End of Armature_Arm_Left skin weights - SkinWeights { - "Armature_Cape"; - 24; - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191; - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000; - 1.000000, 0.000000,-0.000000, 0.000000, - 0.000000,-0.000002, 1.000000, 0.000000, - -0.000000,-1.000000,-0.000002, 0.000000, - 0.000000,13.499997, 0.976740, 1.000000;; - } // End of Armature_Cape skin weights - SkinWeights { - "Armature_Head"; - 48; - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 96, - 97, - 98, - 99, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167; - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000; - -1.000000, 0.000000,-0.000000, 0.000000, - -0.000000,-0.000000, 1.000000, 0.000000, - 0.000000, 1.000000, 0.000000, 0.000000, - -0.000000,-13.500000,-0.000002, 1.000000;; - } // End of Armature_Head skin weights - SkinWeights { - "Armature_Leg_Left"; - 24; - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 60, - 61, - 62, - 63, - 68, - 69, - 70, - 71, - 84, - 85, - 86, - 87, - 100, - 101, - 102, - 103; - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000; - 1.000000,-0.000000,-0.000000, 0.000000, - 0.000000, 0.000000, 1.000000, 0.000000, - -0.000000,-1.000000, 0.000000, 0.000000, - 1.000000, 6.750001,-0.000001, 1.000000;; - } // End of Armature_Leg_Left skin weights - SkinWeights { - "Armature_Body"; - 129; - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 33, - 34, - 36, - 37, - 39, - 60, - 61, - 62, - 63, - 64, - 67, - 68, - 69, - 72, - 73, - 74, - 75, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 88, - 89, - 91, - 92, - 93, - 94, - 95, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 116, - 117, - 118, - 119, - 121, - 122, - 123, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191; - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000; - 1.000000, 0.000000, 0.000000, 0.000000, - 0.000000, 0.000000,-1.000000, 0.000000, - 0.000000, 1.000000, 0.000000, 0.000000, - 0.000000,-6.750000,-0.000001, 1.000000;; - } // End of Armature_Body skin weights - SkinWeights { - "Armature_Leg_Right"; - 24; - 20, - 21, - 22, - 23, - 64, - 65, - 66, - 67, - 80, - 81, - 82, - 83, - 88, - 89, - 90, - 91, - 124, - 125, - 126, - 127, - 140, - 141, - 142, - 143; - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000; - 1.000000,-0.000000,-0.000000, 0.000000, - 0.000000, 0.000000, 1.000000, 0.000000, - -0.000000,-1.000000, 0.000000, 0.000000, - -1.000000, 6.750001,-0.000001, 1.000000;; - } // End of Armature_Leg_Right skin weights - } // End of Player mesh - } // End of Player - } // End of Armature -} // End of Root -AnimationSet ArmatureAction { - Animation { - {Armature} - AnimationKey { // Rotation - 0; - 221; - 0;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 1;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 2;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 3;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 4;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 5;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 6;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 7;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 8;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 9;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 10;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 11;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 12;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 13;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 14;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 15;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 16;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 17;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 18;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 19;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 20;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 21;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 22;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 23;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 24;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 25;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 26;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 27;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 28;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 29;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 30;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 31;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 32;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 33;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 34;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 35;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 36;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 37;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 38;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 39;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 40;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 41;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 42;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 43;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 44;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 45;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 46;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 47;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 48;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 49;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 50;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 51;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 52;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 53;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 54;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 55;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 56;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 57;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 58;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 59;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 60;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 61;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 62;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 63;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 64;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 65;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 66;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 67;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 68;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 69;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 70;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 71;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 72;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 73;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 74;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 75;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 76;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 77;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 78;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 79;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 80;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 81;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 82;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 83;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 84;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 85;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 86;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 87;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 88;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 89;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 90;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 91;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 92;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 93;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 94;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 95;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 96;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 97;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 98;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 99;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 100;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 101;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 102;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 103;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 104;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 105;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 106;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 107;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 108;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 109;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 110;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 111;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 112;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 113;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 114;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 115;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 116;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 117;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 118;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 119;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 120;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 121;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 122;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 123;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 124;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 125;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 126;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 127;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 128;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 129;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 130;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 131;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 132;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 133;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 134;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 135;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 136;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 137;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 138;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 139;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 140;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 141;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 142;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 143;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 144;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 145;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 146;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 147;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 148;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 149;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 150;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 151;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 152;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 153;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 154;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 155;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 156;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 157;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 158;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 159;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 160;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 161;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 162;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 163;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 164;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 165;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 166;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 167;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 168;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 169;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 170;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 171;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 172;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 173;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 174;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 175;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 176;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 177;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 178;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 179;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 180;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 181;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 182;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 183;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 184;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 185;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 186;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 187;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 188;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 189;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 190;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 191;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 192;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 193;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 194;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 195;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 196;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 197;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 198;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 199;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 200;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 201;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 202;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 203;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 204;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 205;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 206;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 207;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 208;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 209;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 210;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 211;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 212;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 213;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 214;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 215;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 216;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 217;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 218;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 219;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 220;4;-1.000000, 0.000000, 0.000000, 0.000000;;; - } - AnimationKey { // Scale - 1; - 221; - 0;3; 1.000000, 1.000000, 1.000000;;, - 1;3; 1.000000, 1.000000, 1.000000;;, - 2;3; 1.000000, 1.000000, 1.000000;;, - 3;3; 1.000000, 1.000000, 1.000000;;, - 4;3; 1.000000, 1.000000, 1.000000;;, - 5;3; 1.000000, 1.000000, 1.000000;;, - 6;3; 1.000000, 1.000000, 1.000000;;, - 7;3; 1.000000, 1.000000, 1.000000;;, - 8;3; 1.000000, 1.000000, 1.000000;;, - 9;3; 1.000000, 1.000000, 1.000000;;, - 10;3; 1.000000, 1.000000, 1.000000;;, - 11;3; 1.000000, 1.000000, 1.000000;;, - 12;3; 1.000000, 1.000000, 1.000000;;, - 13;3; 1.000000, 1.000000, 1.000000;;, - 14;3; 1.000000, 1.000000, 1.000000;;, - 15;3; 1.000000, 1.000000, 1.000000;;, - 16;3; 1.000000, 1.000000, 1.000000;;, - 17;3; 1.000000, 1.000000, 1.000000;;, - 18;3; 1.000000, 1.000000, 1.000000;;, - 19;3; 1.000000, 1.000000, 1.000000;;, - 20;3; 1.000000, 1.000000, 1.000000;;, - 21;3; 1.000000, 1.000000, 1.000000;;, - 22;3; 1.000000, 1.000000, 1.000000;;, - 23;3; 1.000000, 1.000000, 1.000000;;, - 24;3; 1.000000, 1.000000, 1.000000;;, - 25;3; 1.000000, 1.000000, 1.000000;;, - 26;3; 1.000000, 1.000000, 1.000000;;, - 27;3; 1.000000, 1.000000, 1.000000;;, - 28;3; 1.000000, 1.000000, 1.000000;;, - 29;3; 1.000000, 1.000000, 1.000000;;, - 30;3; 1.000000, 1.000000, 1.000000;;, - 31;3; 1.000000, 1.000000, 1.000000;;, - 32;3; 1.000000, 1.000000, 1.000000;;, - 33;3; 1.000000, 1.000000, 1.000000;;, - 34;3; 1.000000, 1.000000, 1.000000;;, - 35;3; 1.000000, 1.000000, 1.000000;;, - 36;3; 1.000000, 1.000000, 1.000000;;, - 37;3; 1.000000, 1.000000, 1.000000;;, - 38;3; 1.000000, 1.000000, 1.000000;;, - 39;3; 1.000000, 1.000000, 1.000000;;, - 40;3; 1.000000, 1.000000, 1.000000;;, - 41;3; 1.000000, 1.000000, 1.000000;;, - 42;3; 1.000000, 1.000000, 1.000000;;, - 43;3; 1.000000, 1.000000, 1.000000;;, - 44;3; 1.000000, 1.000000, 1.000000;;, - 45;3; 1.000000, 1.000000, 1.000000;;, - 46;3; 1.000000, 1.000000, 1.000000;;, - 47;3; 1.000000, 1.000000, 1.000000;;, - 48;3; 1.000000, 1.000000, 1.000000;;, - 49;3; 1.000000, 1.000000, 1.000000;;, - 50;3; 1.000000, 1.000000, 1.000000;;, - 51;3; 1.000000, 1.000000, 1.000000;;, - 52;3; 1.000000, 1.000000, 1.000000;;, - 53;3; 1.000000, 1.000000, 1.000000;;, - 54;3; 1.000000, 1.000000, 1.000000;;, - 55;3; 1.000000, 1.000000, 1.000000;;, - 56;3; 1.000000, 1.000000, 1.000000;;, - 57;3; 1.000000, 1.000000, 1.000000;;, - 58;3; 1.000000, 1.000000, 1.000000;;, - 59;3; 1.000000, 1.000000, 1.000000;;, - 60;3; 1.000000, 1.000000, 1.000000;;, - 61;3; 1.000000, 1.000000, 1.000000;;, - 62;3; 1.000000, 1.000000, 1.000000;;, - 63;3; 1.000000, 1.000000, 1.000000;;, - 64;3; 1.000000, 1.000000, 1.000000;;, - 65;3; 1.000000, 1.000000, 1.000000;;, - 66;3; 1.000000, 1.000000, 1.000000;;, - 67;3; 1.000000, 1.000000, 1.000000;;, - 68;3; 1.000000, 1.000000, 1.000000;;, - 69;3; 1.000000, 1.000000, 1.000000;;, - 70;3; 1.000000, 1.000000, 1.000000;;, - 71;3; 1.000000, 1.000000, 1.000000;;, - 72;3; 1.000000, 1.000000, 1.000000;;, - 73;3; 1.000000, 1.000000, 1.000000;;, - 74;3; 1.000000, 1.000000, 1.000000;;, - 75;3; 1.000000, 1.000000, 1.000000;;, - 76;3; 1.000000, 1.000000, 1.000000;;, - 77;3; 1.000000, 1.000000, 1.000000;;, - 78;3; 1.000000, 1.000000, 1.000000;;, - 79;3; 1.000000, 1.000000, 1.000000;;, - 80;3; 1.000000, 1.000000, 1.000000;;, - 81;3; 1.000000, 1.000000, 1.000000;;, - 82;3; 1.000000, 1.000000, 1.000000;;, - 83;3; 1.000000, 1.000000, 1.000000;;, - 84;3; 1.000000, 1.000000, 1.000000;;, - 85;3; 1.000000, 1.000000, 1.000000;;, - 86;3; 1.000000, 1.000000, 1.000000;;, - 87;3; 1.000000, 1.000000, 1.000000;;, - 88;3; 1.000000, 1.000000, 1.000000;;, - 89;3; 1.000000, 1.000000, 1.000000;;, - 90;3; 1.000000, 1.000000, 1.000000;;, - 91;3; 1.000000, 1.000000, 1.000000;;, - 92;3; 1.000000, 1.000000, 1.000000;;, - 93;3; 1.000000, 1.000000, 1.000000;;, - 94;3; 1.000000, 1.000000, 1.000000;;, - 95;3; 1.000000, 1.000000, 1.000000;;, - 96;3; 1.000000, 1.000000, 1.000000;;, - 97;3; 1.000000, 1.000000, 1.000000;;, - 98;3; 1.000000, 1.000000, 1.000000;;, - 99;3; 1.000000, 1.000000, 1.000000;;, - 100;3; 1.000000, 1.000000, 1.000000;;, - 101;3; 1.000000, 1.000000, 1.000000;;, - 102;3; 1.000000, 1.000000, 1.000000;;, - 103;3; 1.000000, 1.000000, 1.000000;;, - 104;3; 1.000000, 1.000000, 1.000000;;, - 105;3; 1.000000, 1.000000, 1.000000;;, - 106;3; 1.000000, 1.000000, 1.000000;;, - 107;3; 1.000000, 1.000000, 1.000000;;, - 108;3; 1.000000, 1.000000, 1.000000;;, - 109;3; 1.000000, 1.000000, 1.000000;;, - 110;3; 1.000000, 1.000000, 1.000000;;, - 111;3; 1.000000, 1.000000, 1.000000;;, - 112;3; 1.000000, 1.000000, 1.000000;;, - 113;3; 1.000000, 1.000000, 1.000000;;, - 114;3; 1.000000, 1.000000, 1.000000;;, - 115;3; 1.000000, 1.000000, 1.000000;;, - 116;3; 1.000000, 1.000000, 1.000000;;, - 117;3; 1.000000, 1.000000, 1.000000;;, - 118;3; 1.000000, 1.000000, 1.000000;;, - 119;3; 1.000000, 1.000000, 1.000000;;, - 120;3; 1.000000, 1.000000, 1.000000;;, - 121;3; 1.000000, 1.000000, 1.000000;;, - 122;3; 1.000000, 1.000000, 1.000000;;, - 123;3; 1.000000, 1.000000, 1.000000;;, - 124;3; 1.000000, 1.000000, 1.000000;;, - 125;3; 1.000000, 1.000000, 1.000000;;, - 126;3; 1.000000, 1.000000, 1.000000;;, - 127;3; 1.000000, 1.000000, 1.000000;;, - 128;3; 1.000000, 1.000000, 1.000000;;, - 129;3; 1.000000, 1.000000, 1.000000;;, - 130;3; 1.000000, 1.000000, 1.000000;;, - 131;3; 1.000000, 1.000000, 1.000000;;, - 132;3; 1.000000, 1.000000, 1.000000;;, - 133;3; 1.000000, 1.000000, 1.000000;;, - 134;3; 1.000000, 1.000000, 1.000000;;, - 135;3; 1.000000, 1.000000, 1.000000;;, - 136;3; 1.000000, 1.000000, 1.000000;;, - 137;3; 1.000000, 1.000000, 1.000000;;, - 138;3; 1.000000, 1.000000, 1.000000;;, - 139;3; 1.000000, 1.000000, 1.000000;;, - 140;3; 1.000000, 1.000000, 1.000000;;, - 141;3; 1.000000, 1.000000, 1.000000;;, - 142;3; 1.000000, 1.000000, 1.000000;;, - 143;3; 1.000000, 1.000000, 1.000000;;, - 144;3; 1.000000, 1.000000, 1.000000;;, - 145;3; 1.000000, 1.000000, 1.000000;;, - 146;3; 1.000000, 1.000000, 1.000000;;, - 147;3; 1.000000, 1.000000, 1.000000;;, - 148;3; 1.000000, 1.000000, 1.000000;;, - 149;3; 1.000000, 1.000000, 1.000000;;, - 150;3; 1.000000, 1.000000, 1.000000;;, - 151;3; 1.000000, 1.000000, 1.000000;;, - 152;3; 1.000000, 1.000000, 1.000000;;, - 153;3; 1.000000, 1.000000, 1.000000;;, - 154;3; 1.000000, 1.000000, 1.000000;;, - 155;3; 1.000000, 1.000000, 1.000000;;, - 156;3; 1.000000, 1.000000, 1.000000;;, - 157;3; 1.000000, 1.000000, 1.000000;;, - 158;3; 1.000000, 1.000000, 1.000000;;, - 159;3; 1.000000, 1.000000, 1.000000;;, - 160;3; 1.000000, 1.000000, 1.000000;;, - 161;3; 1.000000, 1.000000, 1.000000;;, - 162;3; 1.000000, 1.000000, 1.000000;;, - 163;3; 1.000000, 1.000000, 1.000000;;, - 164;3; 1.000000, 1.000000, 1.000000;;, - 165;3; 1.000000, 1.000000, 1.000000;;, - 166;3; 1.000000, 1.000000, 1.000000;;, - 167;3; 1.000000, 1.000000, 1.000000;;, - 168;3; 1.000000, 1.000000, 1.000000;;, - 169;3; 1.000000, 1.000000, 1.000000;;, - 170;3; 1.000000, 1.000000, 1.000000;;, - 171;3; 1.000000, 1.000000, 1.000000;;, - 172;3; 1.000000, 1.000000, 1.000000;;, - 173;3; 1.000000, 1.000000, 1.000000;;, - 174;3; 1.000000, 1.000000, 1.000000;;, - 175;3; 1.000000, 1.000000, 1.000000;;, - 176;3; 1.000000, 1.000000, 1.000000;;, - 177;3; 1.000000, 1.000000, 1.000000;;, - 178;3; 1.000000, 1.000000, 1.000000;;, - 179;3; 1.000000, 1.000000, 1.000000;;, - 180;3; 1.000000, 1.000000, 1.000000;;, - 181;3; 1.000000, 1.000000, 1.000000;;, - 182;3; 1.000000, 1.000000, 1.000000;;, - 183;3; 1.000000, 1.000000, 1.000000;;, - 184;3; 1.000000, 1.000000, 1.000000;;, - 185;3; 1.000000, 1.000000, 1.000000;;, - 186;3; 1.000000, 1.000000, 1.000000;;, - 187;3; 1.000000, 1.000000, 1.000000;;, - 188;3; 1.000000, 1.000000, 1.000000;;, - 189;3; 1.000000, 1.000000, 1.000000;;, - 190;3; 1.000000, 1.000000, 1.000000;;, - 191;3; 1.000000, 1.000000, 1.000000;;, - 192;3; 1.000000, 1.000000, 1.000000;;, - 193;3; 1.000000, 1.000000, 1.000000;;, - 194;3; 1.000000, 1.000000, 1.000000;;, - 195;3; 1.000000, 1.000000, 1.000000;;, - 196;3; 1.000000, 1.000000, 1.000000;;, - 197;3; 1.000000, 1.000000, 1.000000;;, - 198;3; 1.000000, 1.000000, 1.000000;;, - 199;3; 1.000000, 1.000000, 1.000000;;, - 200;3; 1.000000, 1.000000, 1.000000;;, - 201;3; 1.000000, 1.000000, 1.000000;;, - 202;3; 1.000000, 1.000000, 1.000000;;, - 203;3; 1.000000, 1.000000, 1.000000;;, - 204;3; 1.000000, 1.000000, 1.000000;;, - 205;3; 1.000000, 1.000000, 1.000000;;, - 206;3; 1.000000, 1.000000, 1.000000;;, - 207;3; 1.000000, 1.000000, 1.000000;;, - 208;3; 1.000000, 1.000000, 1.000000;;, - 209;3; 1.000000, 1.000000, 1.000000;;, - 210;3; 1.000000, 1.000000, 1.000000;;, - 211;3; 1.000000, 1.000000, 1.000000;;, - 212;3; 1.000000, 1.000000, 1.000000;;, - 213;3; 1.000000, 1.000000, 1.000000;;, - 214;3; 1.000000, 1.000000, 1.000000;;, - 215;3; 1.000000, 1.000000, 1.000000;;, - 216;3; 1.000000, 1.000000, 1.000000;;, - 217;3; 1.000000, 1.000000, 1.000000;;, - 218;3; 1.000000, 1.000000, 1.000000;;, - 219;3; 1.000000, 1.000000, 1.000000;;, - 220;3; 1.000000, 1.000000, 1.000000;;; - } - AnimationKey { // Position - 2; - 221; - 0;3; 0.000000, 0.000000,-10.000000;;, - 1;3; 0.000000, 0.000000,-10.000000;;, - 2;3; 0.000000, 0.000000,-10.000000;;, - 3;3; 0.000000, 0.000000,-10.000000;;, - 4;3; 0.000000, 0.000000,-10.000000;;, - 5;3; 0.000000, 0.000000,-10.000000;;, - 6;3; 0.000000, 0.000000,-10.000000;;, - 7;3; 0.000000, 0.000000,-10.000000;;, - 8;3; 0.000000, 0.000000,-10.000000;;, - 9;3; 0.000000, 0.000000,-10.000000;;, - 10;3; 0.000000, 0.000000,-10.000000;;, - 11;3; 0.000000, 0.000000,-10.000000;;, - 12;3; 0.000000, 0.000000,-10.000000;;, - 13;3; 0.000000, 0.000000,-10.000000;;, - 14;3; 0.000000, 0.000000,-10.000000;;, - 15;3; 0.000000, 0.000000,-10.000000;;, - 16;3; 0.000000, 0.000000,-10.000000;;, - 17;3; 0.000000, 0.000000,-10.000000;;, - 18;3; 0.000000, 0.000000,-10.000000;;, - 19;3; 0.000000, 0.000000,-10.000000;;, - 20;3; 0.000000, 0.000000,-10.000000;;, - 21;3; 0.000000, 0.000000,-10.000000;;, - 22;3; 0.000000, 0.000000,-10.000000;;, - 23;3; 0.000000, 0.000000,-10.000000;;, - 24;3; 0.000000, 0.000000,-10.000000;;, - 25;3; 0.000000, 0.000000,-10.000000;;, - 26;3; 0.000000, 0.000000,-10.000000;;, - 27;3; 0.000000, 0.000000,-10.000000;;, - 28;3; 0.000000, 0.000000,-10.000000;;, - 29;3; 0.000000, 0.000000,-10.000000;;, - 30;3; 0.000000, 0.000000,-10.000000;;, - 31;3; 0.000000, 0.000000,-10.000000;;, - 32;3; 0.000000, 0.000000,-10.000000;;, - 33;3; 0.000000, 0.000000,-10.000000;;, - 34;3; 0.000000, 0.000000,-10.000000;;, - 35;3; 0.000000, 0.000000,-10.000000;;, - 36;3; 0.000000, 0.000000,-10.000000;;, - 37;3; 0.000000, 0.000000,-10.000000;;, - 38;3; 0.000000, 0.000000,-10.000000;;, - 39;3; 0.000000, 0.000000,-10.000000;;, - 40;3; 0.000000, 0.000000,-10.000000;;, - 41;3; 0.000000, 0.000000,-10.000000;;, - 42;3; 0.000000, 0.000000,-10.000000;;, - 43;3; 0.000000, 0.000000,-10.000000;;, - 44;3; 0.000000, 0.000000,-10.000000;;, - 45;3; 0.000000, 0.000000,-10.000000;;, - 46;3; 0.000000, 0.000000,-10.000000;;, - 47;3; 0.000000, 0.000000,-10.000000;;, - 48;3; 0.000000, 0.000000,-10.000000;;, - 49;3; 0.000000, 0.000000,-10.000000;;, - 50;3; 0.000000, 0.000000,-10.000000;;, - 51;3; 0.000000, 0.000000,-10.000000;;, - 52;3; 0.000000, 0.000000,-10.000000;;, - 53;3; 0.000000, 0.000000,-10.000000;;, - 54;3; 0.000000, 0.000000,-10.000000;;, - 55;3; 0.000000, 0.000000,-10.000000;;, - 56;3; 0.000000, 0.000000,-10.000000;;, - 57;3; 0.000000, 0.000000,-10.000000;;, - 58;3; 0.000000, 0.000000,-10.000000;;, - 59;3; 0.000000, 0.000000,-10.000000;;, - 60;3; 0.000000, 0.000000,-10.000000;;, - 61;3; 0.000000, 0.000000,-10.000000;;, - 62;3; 0.000000, 0.000000,-10.000000;;, - 63;3; 0.000000, 0.000000,-10.000000;;, - 64;3; 0.000000, 0.000000,-10.000000;;, - 65;3; 0.000000, 0.000000,-10.000000;;, - 66;3; 0.000000, 0.000000,-10.000000;;, - 67;3; 0.000000, 0.000000,-10.000000;;, - 68;3; 0.000000, 0.000000,-10.000000;;, - 69;3; 0.000000, 0.000000,-10.000000;;, - 70;3; 0.000000, 0.000000,-10.000000;;, - 71;3; 0.000000, 0.000000,-10.000000;;, - 72;3; 0.000000, 0.000000,-10.000000;;, - 73;3; 0.000000, 0.000000,-10.000000;;, - 74;3; 0.000000, 0.000000,-10.000000;;, - 75;3; 0.000000, 0.000000,-10.000000;;, - 76;3; 0.000000, 0.000000,-10.000000;;, - 77;3; 0.000000, 0.000000,-10.000000;;, - 78;3; 0.000000, 0.000000,-10.000000;;, - 79;3; 0.000000, 0.000000,-10.000000;;, - 80;3; 0.000000, 0.000000,-10.000000;;, - 81;3; 0.000000, 0.000000,-10.000000;;, - 82;3; 0.000000, 0.000000,-10.000000;;, - 83;3; 0.000000, 0.000000,-10.000000;;, - 84;3; 0.000000, 0.000000,-10.000000;;, - 85;3; 0.000000, 0.000000,-10.000000;;, - 86;3; 0.000000, 0.000000,-10.000000;;, - 87;3; 0.000000, 0.000000,-10.000000;;, - 88;3; 0.000000, 0.000000,-10.000000;;, - 89;3; 0.000000, 0.000000,-10.000000;;, - 90;3; 0.000000, 0.000000,-10.000000;;, - 91;3; 0.000000, 0.000000,-10.000000;;, - 92;3; 0.000000, 0.000000,-10.000000;;, - 93;3; 0.000000, 0.000000,-10.000000;;, - 94;3; 0.000000, 0.000000,-10.000000;;, - 95;3; 0.000000, 0.000000,-10.000000;;, - 96;3; 0.000000, 0.000000,-10.000000;;, - 97;3; 0.000000, 0.000000,-10.000000;;, - 98;3; 0.000000, 0.000000,-10.000000;;, - 99;3; 0.000000, 0.000000,-10.000000;;, - 100;3; 0.000000, 0.000000,-10.000000;;, - 101;3; 0.000000, 0.000000,-10.000000;;, - 102;3; 0.000000, 0.000000,-10.000000;;, - 103;3; 0.000000, 0.000000,-10.000000;;, - 104;3; 0.000000, 0.000000,-10.000000;;, - 105;3; 0.000000, 0.000000,-10.000000;;, - 106;3; 0.000000, 0.000000,-10.000000;;, - 107;3; 0.000000, 0.000000,-10.000000;;, - 108;3; 0.000000, 0.000000,-10.000000;;, - 109;3; 0.000000, 0.000000,-10.000000;;, - 110;3; 0.000000, 0.000000,-10.000000;;, - 111;3; 0.000000, 0.000000,-10.000000;;, - 112;3; 0.000000, 0.000000,-10.000000;;, - 113;3; 0.000000, 0.000000,-10.000000;;, - 114;3; 0.000000, 0.000000,-10.000000;;, - 115;3; 0.000000, 0.000000,-10.000000;;, - 116;3; 0.000000, 0.000000,-10.000000;;, - 117;3; 0.000000, 0.000000,-10.000000;;, - 118;3; 0.000000, 0.000000,-10.000000;;, - 119;3; 0.000000, 0.000000,-10.000000;;, - 120;3; 0.000000, 0.000000,-10.000000;;, - 121;3; 0.000000, 0.000000,-10.000000;;, - 122;3; 0.000000, 0.000000,-10.000000;;, - 123;3; 0.000000, 0.000000,-10.000000;;, - 124;3; 0.000000, 0.000000,-10.000000;;, - 125;3; 0.000000, 0.000000,-10.000000;;, - 126;3; 0.000000, 0.000000,-10.000000;;, - 127;3; 0.000000, 0.000000,-10.000000;;, - 128;3; 0.000000, 0.000000,-10.000000;;, - 129;3; 0.000000, 0.000000,-10.000000;;, - 130;3; 0.000000, 0.000000,-10.000000;;, - 131;3; 0.000000, 0.000000,-10.000000;;, - 132;3; 0.000000, 0.000000,-10.000000;;, - 133;3; 0.000000, 0.000000,-10.000000;;, - 134;3; 0.000000, 0.000000,-10.000000;;, - 135;3; 0.000000, 0.000000,-10.000000;;, - 136;3; 0.000000, 0.000000,-10.000000;;, - 137;3; 0.000000, 0.000000,-10.000000;;, - 138;3; 0.000000, 0.000000,-10.000000;;, - 139;3; 0.000000, 0.000000,-10.000000;;, - 140;3; 0.000000, 0.000000,-10.000000;;, - 141;3; 0.000000, 0.000000,-10.000000;;, - 142;3; 0.000000, 0.000000,-10.000000;;, - 143;3; 0.000000, 0.000000,-10.000000;;, - 144;3; 0.000000, 0.000000,-10.000000;;, - 145;3; 0.000000, 0.000000,-10.000000;;, - 146;3; 0.000000, 0.000000,-10.000000;;, - 147;3; 0.000000, 0.000000,-10.000000;;, - 148;3; 0.000000, 0.000000,-10.000000;;, - 149;3; 0.000000, 0.000000,-10.000000;;, - 150;3; 0.000000, 0.000000,-10.000000;;, - 151;3; 0.000000, 0.000000,-10.000000;;, - 152;3; 0.000000, 0.000000,-10.000000;;, - 153;3; 0.000000, 0.000000,-10.000000;;, - 154;3; 0.000000, 0.000000,-10.000000;;, - 155;3; 0.000000, 0.000000,-10.000000;;, - 156;3; 0.000000, 0.000000,-10.000000;;, - 157;3; 0.000000, 0.000000,-10.000000;;, - 158;3; 0.000000, 0.000000,-10.000000;;, - 159;3; 0.000000, 0.000000,-10.000000;;, - 160;3; 0.000000, 0.000000,-10.000000;;, - 161;3; 0.000000, 0.000000,-10.000000;;, - 162;3; 0.000000, 0.000000,-10.000000;;, - 163;3; 0.000000, 0.000000,-10.000000;;, - 164;3; 0.000000, 0.000000,-10.000000;;, - 165;3; 0.000000, 0.000000,-10.000000;;, - 166;3; 0.000000, 0.000000,-10.000000;;, - 167;3; 0.000000, 0.000000,-10.000000;;, - 168;3; 0.000000, 0.000000,-10.000000;;, - 169;3; 0.000000, 0.000000,-10.000000;;, - 170;3; 0.000000, 0.000000,-10.000000;;, - 171;3; 0.000000, 0.000000,-10.000000;;, - 172;3; 0.000000, 0.000000,-10.000000;;, - 173;3; 0.000000, 0.000000,-10.000000;;, - 174;3; 0.000000, 0.000000,-10.000000;;, - 175;3; 0.000000, 0.000000,-10.000000;;, - 176;3; 0.000000, 0.000000,-10.000000;;, - 177;3; 0.000000, 0.000000,-10.000000;;, - 178;3; 0.000000, 0.000000,-10.000000;;, - 179;3; 0.000000, 0.000000,-10.000000;;, - 180;3; 0.000000, 0.000000,-10.000000;;, - 181;3; 0.000000, 0.000000,-10.000000;;, - 182;3; 0.000000, 0.000000,-10.000000;;, - 183;3; 0.000000, 0.000000,-10.000000;;, - 184;3; 0.000000, 0.000000,-10.000000;;, - 185;3; 0.000000, 0.000000,-10.000000;;, - 186;3; 0.000000, 0.000000,-10.000000;;, - 187;3; 0.000000, 0.000000,-10.000000;;, - 188;3; 0.000000, 0.000000,-10.000000;;, - 189;3; 0.000000, 0.000000,-10.000000;;, - 190;3; 0.000000, 0.000000,-10.000000;;, - 191;3; 0.000000, 0.000000,-10.000000;;, - 192;3; 0.000000, 0.000000,-10.000000;;, - 193;3; 0.000000, 0.000000,-10.000000;;, - 194;3; 0.000000, 0.000000,-10.000000;;, - 195;3; 0.000000, 0.000000,-10.000000;;, - 196;3; 0.000000, 0.000000,-10.000000;;, - 197;3; 0.000000, 0.000000,-10.000000;;, - 198;3; 0.000000, 0.000000,-10.000000;;, - 199;3; 0.000000, 0.000000,-10.000000;;, - 200;3; 0.000000, 0.000000,-10.000000;;, - 201;3; 0.000000, 0.000000,-10.000000;;, - 202;3; 0.000000, 0.000000,-10.000000;;, - 203;3; 0.000000, 0.000000,-10.000000;;, - 204;3; 0.000000, 0.000000,-10.000000;;, - 205;3; 0.000000, 0.000000,-10.000000;;, - 206;3; 0.000000, 0.000000,-10.000000;;, - 207;3; 0.000000, 0.000000,-10.000000;;, - 208;3; 0.000000, 0.000000,-10.000000;;, - 209;3; 0.000000, 0.000000,-10.000000;;, - 210;3; 0.000000, 0.000000,-10.000000;;, - 211;3; 0.000000, 0.000000,-10.000000;;, - 212;3; 0.000000, 0.000000,-10.000000;;, - 213;3; 0.000000, 0.000000,-10.000000;;, - 214;3; 0.000000, 0.000000,-10.000000;;, - 215;3; 0.000000, 0.000000,-10.000000;;, - 216;3; 0.000000, 0.000000,-10.000000;;, - 217;3; 0.000000, 0.000000,-10.000000;;, - 218;3; 0.000000, 0.000000,-10.000000;;, - 219;3; 0.000000, 0.000000,-10.000000;;, - 220;3; 0.000000, 0.000000,-10.000000;;; - } - } - Animation { - {Armature_Body} - AnimationKey { // Rotation - 0; - 221; - 0;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 1;4;-0.706933, 0.707273, 0.000000, 0.000000;;, - 2;4;-0.706408, 0.707776, 0.000000, 0.000000;;, - 3;4;-0.705530, 0.708616, 0.000000, 0.000000;;, - 4;4;-0.704305, 0.709789, 0.000000, 0.000000;;, - 5;4;-0.702749, 0.711279, 0.000000, 0.000000;;, - 6;4;-0.700886, 0.713062, 0.000000, 0.000000;;, - 7;4;-0.698758, 0.715099, 0.000000, 0.000000;;, - 8;4;-0.696414, 0.717342, 0.000000, 0.000000;;, - 9;4;-0.693920, 0.719730, 0.000000, 0.000000;;, - 10;4;-0.691349, 0.722192, 0.000000, 0.000000;;, - 11;4;-0.688777, 0.724654, 0.000000, 0.000000;;, - 12;4;-0.686283, 0.727042, 0.000000, 0.000000;;, - 13;4;-0.683939, 0.729285, 0.000000, 0.000000;;, - 14;4;-0.681811, 0.731323, 0.000000, 0.000000;;, - 15;4;-0.679949, 0.733105, 0.000000, 0.000000;;, - 16;4;-0.678392, 0.734595, 0.000000, 0.000000;;, - 17;4;-0.677167, 0.735768, 0.000000, 0.000000;;, - 18;4;-0.676289, 0.736608, 0.000000, 0.000000;;, - 19;4;-0.675764, 0.737111, 0.000000, 0.000000;;, - 20;4;-0.675590, 0.737277, 0.000000, 0.000000;;, - 21;4;-0.675764, 0.737111, 0.000000, 0.000000;;, - 22;4;-0.676289, 0.736608, 0.000000, 0.000000;;, - 23;4;-0.677167, 0.735768, 0.000000, 0.000000;;, - 24;4;-0.678392, 0.734595, 0.000000, 0.000000;;, - 25;4;-0.679949, 0.733105, 0.000000, 0.000000;;, - 26;4;-0.681811, 0.731323, 0.000000, 0.000000;;, - 27;4;-0.683939, 0.729285, 0.000000, 0.000000;;, - 28;4;-0.686283, 0.727042, 0.000000, 0.000000;;, - 29;4;-0.688777, 0.724654, 0.000000, 0.000000;;, - 30;4;-0.691349, 0.722192, 0.000000, 0.000000;;, - 31;4;-0.693920, 0.719730, 0.000000, 0.000000;;, - 32;4;-0.696414, 0.717342, 0.000000, 0.000000;;, - 33;4;-0.698758, 0.715099, 0.000000, 0.000000;;, - 34;4;-0.700886, 0.713062, 0.000000, 0.000000;;, - 35;4;-0.702749, 0.711279, 0.000000, 0.000000;;, - 36;4;-0.704305, 0.709789, 0.000000, 0.000000;;, - 37;4;-0.705530, 0.708616, 0.000000, 0.000000;;, - 38;4;-0.706408, 0.707776, 0.000000, 0.000000;;, - 39;4;-0.706933, 0.707273, 0.000000, 0.000000;;, - 40;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 41;4;-0.706933, 0.707273, 0.000000, 0.000000;;, - 42;4;-0.706408, 0.707776, 0.000000, 0.000000;;, - 43;4;-0.705530, 0.708616, 0.000000, 0.000000;;, - 44;4;-0.704305, 0.709789, 0.000000, 0.000000;;, - 45;4;-0.702749, 0.711279, 0.000000, 0.000000;;, - 46;4;-0.700886, 0.713062, 0.000000, 0.000000;;, - 47;4;-0.698758, 0.715099, 0.000000, 0.000000;;, - 48;4;-0.696414, 0.717342, 0.000000, 0.000000;;, - 49;4;-0.693920, 0.719730, 0.000000, 0.000000;;, - 50;4;-0.691349, 0.722192, 0.000000, 0.000000;;, - 51;4;-0.688777, 0.724654, 0.000000, 0.000000;;, - 52;4;-0.686283, 0.727042, 0.000000, 0.000000;;, - 53;4;-0.683939, 0.729285, 0.000000, 0.000000;;, - 54;4;-0.681811, 0.731323, 0.000000, 0.000000;;, - 55;4;-0.679949, 0.733105, 0.000000, 0.000000;;, - 56;4;-0.678392, 0.734595, 0.000000, 0.000000;;, - 57;4;-0.677167, 0.735768, 0.000000, 0.000000;;, - 58;4;-0.676289, 0.736608, 0.000000, 0.000000;;, - 59;4;-0.675764, 0.737111, 0.000000, 0.000000;;, - 60;4;-0.675590, 0.737277, 0.000000, 0.000000;;, - 61;4;-0.675754, 0.737121, 0.000000, 0.000000;;, - 62;4;-0.676212, 0.736682, 0.000000, 0.000000;;, - 63;4;-0.676927, 0.735998, 0.000000, 0.000000;;, - 64;4;-0.677865, 0.735100, 0.000000, 0.000000;;, - 65;4;-0.679001, 0.734013, 0.000000, 0.000000;;, - 66;4;-0.680312, 0.732757, 0.000000, 0.000000;;, - 67;4;-0.681780, 0.731352, 0.000000, 0.000000;;, - 68;4;-0.683387, 0.729813, 0.000000, 0.000000;;, - 69;4;-0.685121, 0.728154, 0.000000, 0.000000;;, - 70;4;-0.686966, 0.726388, 0.000000, 0.000000;;, - 71;4;-0.688910, 0.724526, 0.000000, 0.000000;;, - 72;4;-0.690941, 0.722582, 0.000000, 0.000000;;, - 73;4;-0.693046, 0.720567, 0.000000, 0.000000;;, - 74;4;-0.695210, 0.718495, 0.000000, 0.000000;;, - 75;4;-0.697417, 0.716383, 0.000000, 0.000000;;, - 76;4;-0.699643, 0.714251, 0.000000, 0.000000;;, - 77;4;-0.701856, 0.712134, 0.000000, 0.000000;;, - 78;4;-0.703995, 0.710085, 0.000000, 0.000000;;, - 79;4;-0.705928, 0.708235, 0.000000, 0.000000;;, - 80;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 81;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 82;4;-0.705928, 0.708235, 0.000000, 0.000000;;, - 83;4;-0.703995, 0.710085, 0.000000, 0.000000;;, - 84;4;-0.701856, 0.712134, 0.000000, 0.000000;;, - 85;4;-0.699643, 0.714251, 0.000000, 0.000000;;, - 86;4;-0.697417, 0.716383, 0.000000, 0.000000;;, - 87;4;-0.695210, 0.718495, 0.000000, 0.000000;;, - 88;4;-0.693046, 0.720567, 0.000000, 0.000000;;, - 89;4;-0.690941, 0.722582, 0.000000, 0.000000;;, - 90;4;-0.688910, 0.724526, 0.000000, 0.000000;;, - 91;4;-0.686966, 0.726388, 0.000000, 0.000000;;, - 92;4;-0.685121, 0.728154, 0.000000, 0.000000;;, - 93;4;-0.683387, 0.729813, 0.000000, 0.000000;;, - 94;4;-0.681780, 0.731352, 0.000000, 0.000000;;, - 95;4;-0.680312, 0.732757, 0.000000, 0.000000;;, - 96;4;-0.679001, 0.734013, 0.000000, 0.000000;;, - 97;4;-0.677865, 0.735100, 0.000000, 0.000000;;, - 98;4;-0.676927, 0.735998, 0.000000, 0.000000;;, - 99;4;-0.676212, 0.736682, 0.000000, 0.000000;;, - 100;4;-0.675754, 0.737121, 0.000000, 0.000000;;, - 101;4;-0.675590, 0.737277, 0.000000, 0.000000;;, - 102;4;-0.675764, 0.737111, 0.000000, 0.000000;;, - 103;4;-0.676289, 0.736608, 0.000000, 0.000000;;, - 104;4;-0.677167, 0.735768, 0.000000, 0.000000;;, - 105;4;-0.678392, 0.734595, 0.000000, 0.000000;;, - 106;4;-0.679949, 0.733105, 0.000000, 0.000000;;, - 107;4;-0.681811, 0.731323, 0.000000, 0.000000;;, - 108;4;-0.683939, 0.729285, 0.000000, 0.000000;;, - 109;4;-0.686283, 0.727042, 0.000000, 0.000000;;, - 110;4;-0.688777, 0.724654, 0.000000, 0.000000;;, - 111;4;-0.691349, 0.722192, 0.000000, 0.000000;;, - 112;4;-0.693920, 0.719730, 0.000000, 0.000000;;, - 113;4;-0.696414, 0.717342, 0.000000, 0.000000;;, - 114;4;-0.698758, 0.715099, 0.000000, 0.000000;;, - 115;4;-0.700886, 0.713062, 0.000000, 0.000000;;, - 116;4;-0.702749, 0.711279, 0.000000, 0.000000;;, - 117;4;-0.704305, 0.709789, 0.000000, 0.000000;;, - 118;4;-0.705530, 0.708616, 0.000000, 0.000000;;, - 119;4;-0.706408, 0.707776, 0.000000, 0.000000;;, - 120;4;-0.706933, 0.707273, 0.000000, 0.000000;;, - 121;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 122;4;-0.706933, 0.707273, 0.000000, 0.000000;;, - 123;4;-0.706408, 0.707776, 0.000000, 0.000000;;, - 124;4;-0.705530, 0.708616, 0.000000, 0.000000;;, - 125;4;-0.704305, 0.709789, 0.000000, 0.000000;;, - 126;4;-0.702749, 0.711279, 0.000000, 0.000000;;, - 127;4;-0.700886, 0.713062, 0.000000, 0.000000;;, - 128;4;-0.698758, 0.715099, 0.000000, 0.000000;;, - 129;4;-0.696414, 0.717342, 0.000000, 0.000000;;, - 130;4;-0.693920, 0.719730, 0.000000, 0.000000;;, - 131;4;-0.691349, 0.722192, 0.000000, 0.000000;;, - 132;4;-0.688777, 0.724654, 0.000000, 0.000000;;, - 133;4;-0.686283, 0.727042, 0.000000, 0.000000;;, - 134;4;-0.683939, 0.729285, 0.000000, 0.000000;;, - 135;4;-0.681811, 0.731323, 0.000000, 0.000000;;, - 136;4;-0.679949, 0.733105, 0.000000, 0.000000;;, - 137;4;-0.678392, 0.734595, 0.000000, 0.000000;;, - 138;4;-0.677167, 0.735768, 0.000000, 0.000000;;, - 139;4;-0.676289, 0.736608, 0.000000, 0.000000;;, - 140;4;-0.675764, 0.737111, 0.000000, 0.000000;;, - 141;4;-0.675590, 0.737277, 0.000000, 0.000000;;, - 142;4;-0.675754, 0.737121, 0.000000, 0.000000;;, - 143;4;-0.676211, 0.736683, 0.000000, 0.000000;;, - 144;4;-0.676923, 0.736001, 0.000000, 0.000000;;, - 145;4;-0.677857, 0.735107, 0.000000, 0.000000;;, - 146;4;-0.678987, 0.734026, 0.000000, 0.000000;;, - 147;4;-0.680291, 0.732778, 0.000000, 0.000000;;, - 148;4;-0.681750, 0.731381, 0.000000, 0.000000;;, - 149;4;-0.683349, 0.729852, 0.000000, 0.000000;;, - 150;4;-0.685071, 0.728203, 0.000000, 0.000000;;, - 151;4;-0.686905, 0.726448, 0.000000, 0.000000;;, - 152;4;-0.688838, 0.724598, 0.000000, 0.000000;;, - 153;4;-0.690858, 0.722664, 0.000000, 0.000000;;, - 154;4;-0.692953, 0.720659, 0.000000, 0.000000;;, - 155;4;-0.695109, 0.718596, 0.000000, 0.000000;;, - 156;4;-0.697310, 0.716489, 0.000000, 0.000000;;, - 157;4;-0.699536, 0.714358, 0.000000, 0.000000;;, - 158;4;-0.701754, 0.712235, 0.000000, 0.000000;;, - 159;4;-0.703909, 0.710171, 0.000000, 0.000000;;, - 160;4;-0.705875, 0.708288, 0.000000, 0.000000;;, - 161;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 162;4;-0.000000, 1.000000, 0.000000, 0.000000;;, - 163;4;-0.000000, 1.000000, 0.000000, 0.000000;;, - 164;4;-0.000000, 1.000000, 0.000000, 0.000000;;, - 165;4;-0.000000, 1.000000, 0.000000, 0.000000;;, - 166;4;-0.000000, 1.000000, 0.000000, 0.000000;;, - 167;4;-0.000000, 1.000000, 0.000000, 0.000000;;, - 168;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 169;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 170;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 171;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 172;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 173;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 174;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 175;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 176;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 177;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 178;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 179;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 180;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 181;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 182;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 183;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 184;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 185;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 186;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 187;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 188;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 189;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 190;4;-0.709789, 0.704305, 0.000000, 0.000000;;, - 191;4;-0.717343, 0.696414, 0.000000, 0.000000;;, - 192;4;-0.727042, 0.686283, 0.000000, 0.000000;;, - 193;4;-0.734596, 0.678392, 0.000000, 0.000000;;, - 194;4;-0.737277, 0.675590, 0.000000, 0.000000;;, - 195;4;-0.734596, 0.678392, 0.000000, 0.000000;;, - 196;4;-0.727042, 0.686283, 0.000000, 0.000000;;, - 197;4;-0.717343, 0.696414, 0.000000, 0.000000;;, - 198;4;-0.709789, 0.704305, 0.000000, 0.000000;;, - 199;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 200;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 201;4;-0.704305, 0.709789, 0.000000, 0.000000;;, - 202;4;-0.696414, 0.717342, 0.000000, 0.000000;;, - 203;4;-0.686283, 0.727042, 0.000000, 0.000000;;, - 204;4;-0.678392, 0.734595, 0.000000, 0.000000;;, - 205;4;-0.675590, 0.737277, 0.000000, 0.000000;;, - 206;4;-0.681074, 0.731794, 0.000000, 0.000000;;, - 207;4;-0.696519, 0.716349, 0.000000, 0.000000;;, - 208;4;-0.716349, 0.696518, 0.000000, 0.000000;;, - 209;4;-0.731794, 0.681074, 0.000000, 0.000000;;, - 210;4;-0.737277, 0.675590, 0.000000, 0.000000;;, - 211;4;-0.731794, 0.681074, 0.000000, 0.000000;;, - 212;4;-0.716349, 0.696518, 0.000000, 0.000000;;, - 213;4;-0.696518, 0.716349, 0.000000, 0.000000;;, - 214;4;-0.681074, 0.731794, 0.000000, 0.000000;;, - 215;4;-0.675590, 0.737277, 0.000000, 0.000000;;, - 216;4;-0.678392, 0.734595, 0.000000, 0.000000;;, - 217;4;-0.686282, 0.727042, 0.000000, 0.000000;;, - 218;4;-0.696414, 0.717343, 0.000000, 0.000000;;, - 219;4;-0.704305, 0.709789, 0.000000, 0.000000;;, - 220;4;-0.707107, 0.707107, 0.000000, 0.000000;;; - } - AnimationKey { // Scale - 1; - 221; - 0;3; 1.000000, 1.000000, 1.000000;;, - 1;3; 1.000000, 1.000000, 1.000000;;, - 2;3; 1.000000, 1.000000, 1.000000;;, - 3;3; 1.000000, 1.000000, 1.000000;;, - 4;3; 1.000000, 1.000000, 1.000000;;, - 5;3; 1.000000, 1.000000, 1.000000;;, - 6;3; 1.000000, 1.000000, 1.000000;;, - 7;3; 1.000000, 1.000000, 1.000000;;, - 8;3; 1.000000, 1.000000, 1.000000;;, - 9;3; 1.000000, 1.000000, 1.000000;;, - 10;3; 1.000000, 1.000000, 1.000000;;, - 11;3; 1.000000, 1.000000, 1.000000;;, - 12;3; 1.000000, 1.000000, 1.000000;;, - 13;3; 1.000000, 1.000000, 1.000000;;, - 14;3; 1.000000, 1.000000, 1.000000;;, - 15;3; 1.000000, 1.000000, 1.000000;;, - 16;3; 1.000000, 1.000000, 1.000000;;, - 17;3; 1.000000, 1.000000, 1.000000;;, - 18;3; 1.000000, 1.000000, 1.000000;;, - 19;3; 1.000000, 1.000000, 1.000000;;, - 20;3; 1.000000, 1.000000, 1.000000;;, - 21;3; 1.000000, 1.000000, 1.000000;;, - 22;3; 1.000000, 1.000000, 1.000000;;, - 23;3; 1.000000, 1.000000, 1.000000;;, - 24;3; 1.000000, 1.000000, 1.000000;;, - 25;3; 1.000000, 1.000000, 1.000000;;, - 26;3; 1.000000, 1.000000, 1.000000;;, - 27;3; 1.000000, 1.000000, 1.000000;;, - 28;3; 1.000000, 1.000000, 1.000000;;, - 29;3; 1.000000, 1.000000, 1.000000;;, - 30;3; 1.000000, 1.000000, 1.000000;;, - 31;3; 1.000000, 1.000000, 1.000000;;, - 32;3; 1.000000, 1.000000, 1.000000;;, - 33;3; 1.000000, 1.000000, 1.000000;;, - 34;3; 1.000000, 1.000000, 1.000000;;, - 35;3; 1.000000, 1.000000, 1.000000;;, - 36;3; 1.000000, 1.000000, 1.000000;;, - 37;3; 1.000000, 1.000000, 1.000000;;, - 38;3; 1.000000, 1.000000, 1.000000;;, - 39;3; 1.000000, 1.000000, 1.000000;;, - 40;3; 1.000000, 1.000000, 1.000000;;, - 41;3; 1.000000, 1.000000, 1.000000;;, - 42;3; 1.000000, 1.000000, 1.000000;;, - 43;3; 1.000000, 1.000000, 1.000000;;, - 44;3; 1.000000, 1.000000, 1.000000;;, - 45;3; 1.000000, 1.000000, 1.000000;;, - 46;3; 1.000000, 1.000000, 1.000000;;, - 47;3; 1.000000, 1.000000, 1.000000;;, - 48;3; 1.000000, 1.000000, 1.000000;;, - 49;3; 1.000000, 1.000000, 1.000000;;, - 50;3; 1.000000, 1.000000, 1.000000;;, - 51;3; 1.000000, 1.000000, 1.000000;;, - 52;3; 1.000000, 1.000000, 1.000000;;, - 53;3; 1.000000, 1.000000, 1.000000;;, - 54;3; 1.000000, 1.000000, 1.000000;;, - 55;3; 1.000000, 1.000000, 1.000000;;, - 56;3; 1.000000, 1.000000, 1.000000;;, - 57;3; 1.000000, 1.000000, 1.000000;;, - 58;3; 1.000000, 1.000000, 1.000000;;, - 59;3; 1.000000, 1.000000, 1.000000;;, - 60;3; 1.000000, 1.000000, 1.000000;;, - 61;3; 1.000000, 1.000000, 1.000000;;, - 62;3; 1.000000, 1.000000, 1.000000;;, - 63;3; 1.000000, 1.000000, 1.000000;;, - 64;3; 1.000000, 1.000000, 1.000000;;, - 65;3; 1.000000, 1.000000, 1.000000;;, - 66;3; 1.000000, 1.000000, 1.000000;;, - 67;3; 1.000000, 1.000000, 1.000000;;, - 68;3; 1.000000, 1.000000, 1.000000;;, - 69;3; 1.000000, 1.000000, 1.000000;;, - 70;3; 1.000000, 1.000000, 1.000000;;, - 71;3; 1.000000, 1.000000, 1.000000;;, - 72;3; 1.000000, 1.000000, 1.000000;;, - 73;3; 1.000000, 1.000000, 1.000000;;, - 74;3; 1.000000, 1.000000, 1.000000;;, - 75;3; 1.000000, 1.000000, 1.000000;;, - 76;3; 1.000000, 1.000000, 1.000000;;, - 77;3; 1.000000, 1.000000, 1.000000;;, - 78;3; 1.000000, 1.000000, 1.000000;;, - 79;3; 1.000000, 1.000000, 1.000000;;, - 80;3; 1.000000, 1.000000, 1.000000;;, - 81;3; 1.000000, 1.000000, 1.000000;;, - 82;3; 1.000000, 1.000000, 1.000000;;, - 83;3; 1.000000, 1.000000, 1.000000;;, - 84;3; 1.000000, 1.000000, 1.000000;;, - 85;3; 1.000000, 1.000000, 1.000000;;, - 86;3; 1.000000, 1.000000, 1.000000;;, - 87;3; 1.000000, 1.000000, 1.000000;;, - 88;3; 1.000000, 1.000000, 1.000000;;, - 89;3; 1.000000, 1.000000, 1.000000;;, - 90;3; 1.000000, 1.000000, 1.000000;;, - 91;3; 1.000000, 1.000000, 1.000000;;, - 92;3; 1.000000, 1.000000, 1.000000;;, - 93;3; 1.000000, 1.000000, 1.000000;;, - 94;3; 1.000000, 1.000000, 1.000000;;, - 95;3; 1.000000, 1.000000, 1.000000;;, - 96;3; 1.000000, 1.000000, 1.000000;;, - 97;3; 1.000000, 1.000000, 1.000000;;, - 98;3; 1.000000, 1.000000, 1.000000;;, - 99;3; 1.000000, 1.000000, 1.000000;;, - 100;3; 1.000000, 1.000000, 1.000000;;, - 101;3; 1.000000, 1.000000, 1.000000;;, - 102;3; 1.000000, 1.000000, 1.000000;;, - 103;3; 1.000000, 1.000000, 1.000000;;, - 104;3; 1.000000, 1.000000, 1.000000;;, - 105;3; 1.000000, 1.000000, 1.000000;;, - 106;3; 1.000000, 1.000000, 1.000000;;, - 107;3; 1.000000, 1.000000, 1.000000;;, - 108;3; 1.000000, 1.000000, 1.000000;;, - 109;3; 1.000000, 1.000000, 1.000000;;, - 110;3; 1.000000, 1.000000, 1.000000;;, - 111;3; 1.000000, 1.000000, 1.000000;;, - 112;3; 1.000000, 1.000000, 1.000000;;, - 113;3; 1.000000, 1.000000, 1.000000;;, - 114;3; 1.000000, 1.000000, 1.000000;;, - 115;3; 1.000000, 1.000000, 1.000000;;, - 116;3; 1.000000, 1.000000, 1.000000;;, - 117;3; 1.000000, 1.000000, 1.000000;;, - 118;3; 1.000000, 1.000000, 1.000000;;, - 119;3; 1.000000, 1.000000, 1.000000;;, - 120;3; 1.000000, 1.000000, 1.000000;;, - 121;3; 1.000000, 1.000000, 1.000000;;, - 122;3; 1.000000, 1.000000, 1.000000;;, - 123;3; 1.000000, 1.000000, 1.000000;;, - 124;3; 1.000000, 1.000000, 1.000000;;, - 125;3; 1.000000, 1.000000, 1.000000;;, - 126;3; 1.000000, 1.000000, 1.000000;;, - 127;3; 1.000000, 1.000000, 1.000000;;, - 128;3; 1.000000, 1.000000, 1.000000;;, - 129;3; 1.000000, 1.000000, 1.000000;;, - 130;3; 1.000000, 1.000000, 1.000000;;, - 131;3; 1.000000, 1.000000, 1.000000;;, - 132;3; 1.000000, 1.000000, 1.000000;;, - 133;3; 1.000000, 1.000000, 1.000000;;, - 134;3; 1.000000, 1.000000, 1.000000;;, - 135;3; 1.000000, 1.000000, 1.000000;;, - 136;3; 1.000000, 1.000000, 1.000000;;, - 137;3; 1.000000, 1.000000, 1.000000;;, - 138;3; 1.000000, 1.000000, 1.000000;;, - 139;3; 1.000000, 1.000000, 1.000000;;, - 140;3; 1.000000, 1.000000, 1.000000;;, - 141;3; 1.000000, 1.000000, 1.000000;;, - 142;3; 1.000000, 1.000000, 1.000000;;, - 143;3; 1.000000, 1.000000, 1.000000;;, - 144;3; 1.000000, 1.000000, 1.000000;;, - 145;3; 1.000000, 1.000000, 1.000000;;, - 146;3; 1.000000, 1.000000, 1.000000;;, - 147;3; 1.000000, 1.000000, 1.000000;;, - 148;3; 1.000000, 1.000000, 1.000000;;, - 149;3; 1.000000, 1.000000, 1.000000;;, - 150;3; 1.000000, 1.000000, 1.000000;;, - 151;3; 1.000000, 1.000000, 1.000000;;, - 152;3; 1.000000, 1.000000, 1.000000;;, - 153;3; 1.000000, 1.000000, 1.000000;;, - 154;3; 1.000000, 1.000000, 1.000000;;, - 155;3; 1.000000, 1.000000, 1.000000;;, - 156;3; 1.000000, 1.000000, 1.000000;;, - 157;3; 1.000000, 1.000000, 1.000000;;, - 158;3; 1.000000, 1.000000, 1.000000;;, - 159;3; 1.000000, 1.000000, 1.000000;;, - 160;3; 1.000000, 1.000000, 1.000000;;, - 161;3; 1.000000, 1.000000, 1.000000;;, - 162;3; 1.000000, 1.000000, 1.000000;;, - 163;3; 1.000000, 1.000000, 1.000000;;, - 164;3; 1.000000, 1.000000, 1.000000;;, - 165;3; 1.000000, 1.000000, 1.000000;;, - 166;3; 1.000000, 1.000000, 1.000000;;, - 167;3; 1.000000, 1.000000, 1.000000;;, - 168;3; 1.000000, 1.000000, 1.000000;;, - 169;3; 1.000000, 1.000000, 1.000000;;, - 170;3; 1.000000, 1.000000, 1.000000;;, - 171;3; 1.000000, 1.000000, 1.000000;;, - 172;3; 1.000000, 1.000000, 1.000000;;, - 173;3; 1.000000, 1.000000, 1.000000;;, - 174;3; 1.000000, 1.000000, 1.000000;;, - 175;3; 1.000000, 1.000000, 1.000000;;, - 176;3; 1.000000, 1.000000, 1.000000;;, - 177;3; 1.000000, 1.000000, 1.000000;;, - 178;3; 1.000000, 1.000000, 1.000000;;, - 179;3; 1.000000, 1.000000, 1.000000;;, - 180;3; 1.000000, 1.000000, 1.000000;;, - 181;3; 1.000000, 1.000000, 1.000000;;, - 182;3; 1.000000, 1.000000, 1.000000;;, - 183;3; 1.000000, 1.000000, 1.000000;;, - 184;3; 1.000000, 1.000000, 1.000000;;, - 185;3; 1.000000, 1.000000, 1.000000;;, - 186;3; 1.000000, 1.000000, 1.000000;;, - 187;3; 1.000000, 1.000000, 1.000000;;, - 188;3; 1.000000, 1.000000, 1.000000;;, - 189;3; 1.000000, 1.000000, 1.000000;;, - 190;3; 1.000000, 1.000000, 1.000000;;, - 191;3; 1.000000, 1.000000, 1.000000;;, - 192;3; 1.000000, 1.000000, 1.000000;;, - 193;3; 1.000000, 1.000000, 1.000000;;, - 194;3; 1.000000, 1.000000, 1.000000;;, - 195;3; 1.000000, 1.000000, 1.000000;;, - 196;3; 1.000000, 1.000000, 1.000000;;, - 197;3; 1.000000, 1.000000, 1.000000;;, - 198;3; 1.000000, 1.000000, 1.000000;;, - 199;3; 1.000000, 1.000000, 1.000000;;, - 200;3; 1.000000, 1.000000, 1.000000;;, - 201;3; 1.000000, 1.000000, 1.000000;;, - 202;3; 1.000000, 1.000000, 1.000000;;, - 203;3; 1.000000, 1.000000, 1.000000;;, - 204;3; 1.000000, 1.000000, 1.000000;;, - 205;3; 1.000000, 1.000000, 1.000000;;, - 206;3; 1.000000, 1.000000, 1.000000;;, - 207;3; 1.000000, 1.000000, 1.000000;;, - 208;3; 1.000000, 1.000000, 1.000000;;, - 209;3; 1.000000, 1.000000, 1.000000;;, - 210;3; 1.000000, 1.000000, 1.000000;;, - 211;3; 1.000000, 1.000000, 1.000000;;, - 212;3; 1.000000, 1.000000, 1.000000;;, - 213;3; 1.000000, 1.000000, 1.000000;;, - 214;3; 1.000000, 1.000000, 1.000000;;, - 215;3; 1.000000, 1.000000, 1.000000;;, - 216;3; 1.000000, 1.000000, 1.000000;;, - 217;3; 1.000000, 1.000000, 1.000000;;, - 218;3; 1.000000, 1.000000, 1.000000;;, - 219;3; 1.000000, 1.000000, 1.000000;;, - 220;3; 1.000000, 1.000000, 1.000000;;; - } - AnimationKey { // Position - 2; - 221; - 0;3;-0.000000, 0.000000, 6.750000;;, - 1;3;-0.000000, 0.000000, 6.750000;;, - 2;3;-0.000000, 0.000000, 6.750000;;, - 3;3;-0.000000, 0.000000, 6.750000;;, - 4;3;-0.000000, 0.000000, 6.750000;;, - 5;3;-0.000000, 0.000000, 6.750000;;, - 6;3;-0.000000, 0.000000, 6.750000;;, - 7;3;-0.000000, 0.000000, 6.750000;;, - 8;3;-0.000000, 0.000000, 6.750000;;, - 9;3;-0.000000, 0.000000, 6.750000;;, - 10;3;-0.000000, 0.000000, 6.750000;;, - 11;3;-0.000000, 0.000000, 6.750000;;, - 12;3;-0.000000, 0.000000, 6.750000;;, - 13;3;-0.000000, 0.000000, 6.750000;;, - 14;3;-0.000000, 0.000000, 6.750000;;, - 15;3;-0.000000, 0.000000, 6.750000;;, - 16;3;-0.000000, 0.000000, 6.750000;;, - 17;3;-0.000000, 0.000000, 6.750000;;, - 18;3;-0.000000, 0.000000, 6.750000;;, - 19;3;-0.000000, 0.000000, 6.750000;;, - 20;3;-0.000000, 0.000000, 6.750000;;, - 21;3;-0.000000, 0.000000, 6.750000;;, - 22;3;-0.000000, 0.000000, 6.750000;;, - 23;3;-0.000000, 0.000000, 6.750000;;, - 24;3;-0.000000, 0.000000, 6.750000;;, - 25;3;-0.000000, 0.000000, 6.750000;;, - 26;3;-0.000000, 0.000000, 6.750000;;, - 27;3;-0.000000, 0.000000, 6.750000;;, - 28;3;-0.000000, 0.000000, 6.750000;;, - 29;3;-0.000000, 0.000000, 6.750000;;, - 30;3;-0.000000, 0.000000, 6.750000;;, - 31;3;-0.000000, 0.000000, 6.750000;;, - 32;3;-0.000000, 0.000000, 6.750000;;, - 33;3;-0.000000, 0.000000, 6.750000;;, - 34;3;-0.000000, 0.000000, 6.750000;;, - 35;3;-0.000000, 0.000000, 6.750000;;, - 36;3;-0.000000, 0.000000, 6.750000;;, - 37;3;-0.000000, 0.000000, 6.750000;;, - 38;3;-0.000000, 0.000000, 6.750000;;, - 39;3;-0.000000, 0.000000, 6.750000;;, - 40;3;-0.000000, 0.000000, 6.750000;;, - 41;3;-0.000000, 0.000000, 6.750000;;, - 42;3;-0.000000, 0.000000, 6.750000;;, - 43;3;-0.000000, 0.000000, 6.750000;;, - 44;3;-0.000000, 0.000000, 6.750000;;, - 45;3;-0.000000, 0.000000, 6.750000;;, - 46;3;-0.000000, 0.000000, 6.750000;;, - 47;3;-0.000000, 0.000000, 6.750000;;, - 48;3;-0.000000, 0.000000, 6.750000;;, - 49;3;-0.000000, 0.000000, 6.750000;;, - 50;3;-0.000000, 0.000000, 6.750000;;, - 51;3;-0.000000, 0.000000, 6.750000;;, - 52;3;-0.000000, 0.000000, 6.750000;;, - 53;3;-0.000000, 0.000000, 6.750000;;, - 54;3;-0.000000, 0.000000, 6.750000;;, - 55;3;-0.000000, 0.000000, 6.750000;;, - 56;3;-0.000000, 0.000000, 6.750000;;, - 57;3;-0.000000, 0.000000, 6.750000;;, - 58;3;-0.000000, 0.000000, 6.750000;;, - 59;3;-0.000000, 0.000000, 6.750000;;, - 60;3;-0.000000, 0.000000, 6.750000;;, - 61;3;-0.000000, 0.000000, 6.750000;;, - 62;3;-0.000000, 0.000000, 6.750000;;, - 63;3;-0.000000, 0.000000, 6.750000;;, - 64;3;-0.000000, 0.000000, 6.750000;;, - 65;3;-0.000000, 0.000000, 6.750000;;, - 66;3;-0.000000, 0.000000, 6.750000;;, - 67;3;-0.000000, 0.000000, 6.750000;;, - 68;3;-0.000000, 0.000000, 6.750000;;, - 69;3;-0.000000, 0.000000, 6.750000;;, - 70;3;-0.000000, 0.000000, 6.750000;;, - 71;3;-0.000000, 0.000000, 6.750000;;, - 72;3;-0.000000, 0.000000, 6.750000;;, - 73;3;-0.000000, 0.000000, 6.750000;;, - 74;3;-0.000000, 0.000000, 6.750000;;, - 75;3;-0.000000, 0.000000, 6.750000;;, - 76;3;-0.000000, 0.000000, 6.750000;;, - 77;3;-0.000000, 0.000000, 6.750000;;, - 78;3;-0.000000, 0.000000, 6.750000;;, - 79;3;-0.000000, 0.000000, 6.750000;;, - 80;3;-0.000000, 0.000000, 6.750000;;, - 81;3;-0.000000, 0.000000, 1.000000;;, - 82;3;-0.000000, 0.000000, 1.000000;;, - 83;3;-0.000000, 0.000000, 1.000000;;, - 84;3;-0.000000, 0.000000, 1.000000;;, - 85;3;-0.000000, 0.000000, 1.000000;;, - 86;3;-0.000000, 0.000000, 1.000000;;, - 87;3;-0.000000, 0.000000, 1.000000;;, - 88;3;-0.000000, 0.000000, 1.000000;;, - 89;3;-0.000000, 0.000000, 1.000000;;, - 90;3;-0.000000, 0.000000, 1.000000;;, - 91;3;-0.000000, 0.000000, 1.000000;;, - 92;3;-0.000000, 0.000000, 1.000000;;, - 93;3;-0.000000, 0.000000, 1.000000;;, - 94;3;-0.000000, 0.000000, 1.000000;;, - 95;3;-0.000000, 0.000000, 1.000000;;, - 96;3;-0.000000, 0.000000, 1.000000;;, - 97;3;-0.000000, 0.000000, 1.000000;;, - 98;3;-0.000000, 0.000000, 1.000000;;, - 99;3;-0.000000, 0.000000, 1.000000;;, - 100;3;-0.000000, 0.000000, 1.000000;;, - 101;3;-0.000000, 0.000000, 1.000000;;, - 102;3;-0.000000, 0.000000, 1.000000;;, - 103;3;-0.000000, 0.000000, 1.000000;;, - 104;3;-0.000000, 0.000000, 1.000000;;, - 105;3;-0.000000, 0.000000, 1.000000;;, - 106;3;-0.000000, 0.000000, 1.000000;;, - 107;3;-0.000000, 0.000000, 1.000000;;, - 108;3;-0.000000, 0.000000, 1.000000;;, - 109;3;-0.000000, 0.000000, 1.000000;;, - 110;3;-0.000000, 0.000000, 1.000000;;, - 111;3;-0.000000, 0.000000, 1.000000;;, - 112;3;-0.000000, 0.000000, 1.000000;;, - 113;3;-0.000000, 0.000000, 1.000000;;, - 114;3;-0.000000, 0.000000, 1.000000;;, - 115;3;-0.000000, 0.000000, 1.000000;;, - 116;3;-0.000000, 0.000000, 1.000000;;, - 117;3;-0.000000, 0.000000, 1.000000;;, - 118;3;-0.000000, 0.000000, 1.000000;;, - 119;3;-0.000000, 0.000000, 1.000000;;, - 120;3;-0.000000, 0.000000, 1.000000;;, - 121;3;-0.000000, 0.000000, 1.000000;;, - 122;3;-0.000000, 0.000000, 1.000000;;, - 123;3;-0.000000, 0.000000, 1.000000;;, - 124;3;-0.000000, 0.000000, 1.000000;;, - 125;3;-0.000000, 0.000000, 1.000000;;, - 126;3;-0.000000, 0.000000, 1.000000;;, - 127;3;-0.000000, 0.000000, 1.000000;;, - 128;3;-0.000000, 0.000000, 1.000000;;, - 129;3;-0.000000, 0.000000, 1.000000;;, - 130;3;-0.000000, 0.000000, 1.000000;;, - 131;3;-0.000000, 0.000000, 1.000000;;, - 132;3;-0.000000, 0.000000, 1.000000;;, - 133;3;-0.000000, 0.000000, 1.000000;;, - 134;3;-0.000000, 0.000000, 1.000000;;, - 135;3;-0.000000, 0.000000, 1.000000;;, - 136;3;-0.000000, 0.000000, 1.000000;;, - 137;3;-0.000000, 0.000000, 1.000000;;, - 138;3;-0.000000, 0.000000, 1.000000;;, - 139;3;-0.000000, 0.000000, 1.000000;;, - 140;3;-0.000000, 0.000000, 1.000000;;, - 141;3;-0.000000, 0.000000, 1.000000;;, - 142;3;-0.000000, 0.000000, 1.000000;;, - 143;3;-0.000000, 0.000000, 1.000000;;, - 144;3;-0.000000, 0.000000, 1.000000;;, - 145;3;-0.000000, 0.000000, 1.000000;;, - 146;3;-0.000000, 0.000000, 1.000000;;, - 147;3;-0.000000, 0.000000, 1.000000;;, - 148;3;-0.000000, 0.000000, 1.000000;;, - 149;3;-0.000000, 0.000000, 1.000000;;, - 150;3;-0.000000, 0.000000, 1.000000;;, - 151;3;-0.000000, 0.000000, 1.000000;;, - 152;3;-0.000000, 0.000000, 1.000000;;, - 153;3;-0.000000, 0.000000, 1.000000;;, - 154;3;-0.000000, 0.000000, 1.000000;;, - 155;3;-0.000000, 0.000000, 1.000000;;, - 156;3;-0.000000, 0.000000, 1.000000;;, - 157;3;-0.000000, 0.000000, 1.000000;;, - 158;3;-0.000000, 0.000000, 1.000000;;, - 159;3;-0.000000, 0.000000, 1.000000;;, - 160;3;-0.000000, 0.000000, 1.000000;;, - 161;3;-0.000000, 0.000000, 1.000000;;, - 162;3;-0.000000, 2.000001, 1.000000;;, - 163;3;-0.000000, 2.000001, 1.000000;;, - 164;3;-0.000000, 2.000001, 1.000000;;, - 165;3;-0.000000, 2.000001, 1.000000;;, - 166;3;-0.000000, 2.000001, 1.000000;;, - 167;3;-0.000000, 2.000001, 1.000000;;, - 168;3;-0.000000, 0.000000, 6.750000;;, - 169;3;-0.000000, 0.000000, 6.750000;;, - 170;3;-0.000000, 0.000000, 6.750000;;, - 171;3;-0.000000, 0.000000, 6.750000;;, - 172;3;-0.000000, 0.000000, 6.750000;;, - 173;3;-0.000000, 0.000000, 6.750000;;, - 174;3;-0.000000, 0.000000, 6.750000;;, - 175;3;-0.000000, 0.000000, 6.750000;;, - 176;3;-0.000000, 0.000000, 6.750000;;, - 177;3;-0.000000, 0.000000, 6.750000;;, - 178;3;-0.000000, 0.000000, 6.750000;;, - 179;3;-0.000000, 0.000000, 6.750000;;, - 180;3;-0.000000, 0.000000, 6.750000;;, - 181;3;-0.000000, 0.000000, 6.750000;;, - 182;3;-0.000000, 0.000000, 6.750000;;, - 183;3;-0.000000, 0.000000, 6.750000;;, - 184;3;-0.000000, 0.000000, 6.750000;;, - 185;3;-0.000000, 0.000000, 6.750000;;, - 186;3;-0.000000, 0.000000, 6.750000;;, - 187;3;-0.000000, 0.000000, 6.750000;;, - 188;3;-0.000000, 0.000000, 6.750000;;, - 189;3;-0.000000, 0.000000, 6.750000;;, - 190;3;-0.000000, 0.000000, 6.750000;;, - 191;3;-0.000000, 0.000000, 6.750000;;, - 192;3;-0.000000, 0.000000, 6.750000;;, - 193;3;-0.000000, 0.000000, 6.750000;;, - 194;3;-0.000000, 0.000000, 6.750000;;, - 195;3;-0.000000, 0.000000, 6.750000;;, - 196;3;-0.000000, 0.000000, 6.750000;;, - 197;3;-0.000000, 0.000000, 6.750000;;, - 198;3;-0.000000, 0.000000, 6.750000;;, - 199;3;-0.000000, 0.000000, 6.750000;;, - 200;3;-0.000000, 0.000000, 6.750000;;, - 201;3;-0.000000, 0.000000, 6.750000;;, - 202;3;-0.000000, 0.000000, 6.750000;;, - 203;3;-0.000000, 0.000000, 6.750000;;, - 204;3;-0.000000, 0.000000, 6.750000;;, - 205;3;-0.000000, 0.000000, 6.750000;;, - 206;3;-0.000000, 0.000000, 6.750000;;, - 207;3;-0.000000, 0.000000, 6.750000;;, - 208;3;-0.000000, 0.000000, 6.750000;;, - 209;3;-0.000000, 0.000000, 6.750000;;, - 210;3;-0.000000, 0.000000, 6.750000;;, - 211;3;-0.000000, 0.000000, 6.750000;;, - 212;3;-0.000000, 0.000000, 6.750000;;, - 213;3;-0.000000, 0.000000, 6.750000;;, - 214;3;-0.000000, 0.000000, 6.750000;;, - 215;3;-0.000000, 0.000000, 6.750000;;, - 216;3;-0.000000, 0.000000, 6.750000;;, - 217;3;-0.000000, 0.000000, 6.750000;;, - 218;3;-0.000000, 0.000000, 6.750000;;, - 219;3;-0.000000, 0.000000, 6.750000;;, - 220;3;-0.000000, 0.000000, 6.750000;;; - } - } - Animation { - {Armature_Head} - AnimationKey { // Rotation - 0; - 221; - 0;4; 0.000000, 0.000000, 1.000000, 0.000000;;, - 1;4;-0.000120,-0.000005, 0.999993,-0.000240;;, - 2;4;-0.000483,-0.000021, 0.999974,-0.000967;;, - 3;4;-0.001090,-0.000048, 0.999941,-0.002181;;, - 4;4;-0.001937,-0.000085, 0.999894,-0.003876;;, - 5;4;-0.003014,-0.000132, 0.999835,-0.006030;;, - 6;4;-0.004301,-0.000188, 0.999765,-0.008607;;, - 7;4;-0.005773,-0.000252, 0.999685,-0.011553;;, - 8;4;-0.007394,-0.000323, 0.999596,-0.014795;;, - 9;4;-0.009118,-0.000398, 0.999502,-0.018246;;, - 10;4;-0.010897,-0.000476, 0.999405,-0.021804;;, - 11;4;-0.012675,-0.000553, 0.999308,-0.025363;;, - 12;4;-0.014400,-0.000629, 0.999214,-0.028814;;, - 13;4;-0.016021,-0.000699, 0.999126,-0.032056;;, - 14;4;-0.017493,-0.000764, 0.999045,-0.035002;;, - 15;4;-0.018780,-0.000820, 0.998975,-0.037578;;, - 16;4;-0.019857,-0.000867, 0.998916,-0.039733;;, - 17;4;-0.020704,-0.000904, 0.998870,-0.041427;;, - 18;4;-0.021311,-0.000930, 0.998837,-0.042642;;, - 19;4;-0.021674,-0.000946, 0.998817,-0.043369;;, - 20;4;-0.021794,-0.000952, 0.998811,-0.043609;;, - 21;4;-0.021720,-0.000948, 0.998817,-0.043369;;, - 22;4;-0.021494,-0.000938, 0.998837,-0.042642;;, - 23;4;-0.021108,-0.000922, 0.998870,-0.041427;;, - 24;4;-0.020560,-0.000898, 0.998916,-0.039733;;, - 25;4;-0.019848,-0.000867, 0.998975,-0.037578;;, - 26;4;-0.018975,-0.000828, 0.999045,-0.035002;;, - 27;4;-0.017947,-0.000784, 0.999126,-0.032056;;, - 28;4;-0.016778,-0.000733, 0.999214,-0.028814;;, - 29;4;-0.015484,-0.000676, 0.999308,-0.025363;;, - 30;4;-0.014088,-0.000615, 0.999405,-0.021804;;, - 31;4;-0.012616,-0.000551, 0.999502,-0.018246;;, - 32;4;-0.011095,-0.000484, 0.999596,-0.014795;;, - 33;4;-0.009555,-0.000417, 0.999685,-0.011553;;, - 34;4;-0.008021,-0.000350, 0.999765,-0.008607;;, - 35;4;-0.006517,-0.000285, 0.999835,-0.006030;;, - 36;4;-0.005062,-0.000221, 0.999894,-0.003876;;, - 37;4;-0.003674,-0.000160, 0.999941,-0.002181;;, - 38;4;-0.002362,-0.000103, 0.999974,-0.000967;;, - 39;4;-0.001136,-0.000050, 0.999993,-0.000240;;, - 40;4; 0.000000, 0.000000, 1.000000, 0.000000;;, - 41;4; 0.001136, 0.000050, 0.999993,-0.000240;;, - 42;4; 0.002362, 0.000103, 0.999974,-0.000967;;, - 43;4; 0.003674, 0.000160, 0.999941,-0.002181;;, - 44;4; 0.005062, 0.000221, 0.999894,-0.003876;;, - 45;4; 0.006517, 0.000285, 0.999835,-0.006030;;, - 46;4; 0.008021, 0.000350, 0.999765,-0.008607;;, - 47;4; 0.009555, 0.000417, 0.999685,-0.011553;;, - 48;4; 0.011095, 0.000484, 0.999596,-0.014795;;, - 49;4; 0.012616, 0.000551, 0.999502,-0.018246;;, - 50;4; 0.014088, 0.000615, 0.999405,-0.021804;;, - 51;4; 0.015484, 0.000676, 0.999308,-0.025363;;, - 52;4; 0.016778, 0.000733, 0.999214,-0.028814;;, - 53;4; 0.017947, 0.000784, 0.999126,-0.032056;;, - 54;4; 0.018975, 0.000828, 0.999045,-0.035002;;, - 55;4; 0.019848, 0.000867, 0.998975,-0.037578;;, - 56;4; 0.020560, 0.000898, 0.998916,-0.039733;;, - 57;4; 0.021109, 0.000922, 0.998870,-0.041427;;, - 58;4; 0.021494, 0.000938, 0.998837,-0.042642;;, - 59;4; 0.021720, 0.000948, 0.998817,-0.043369;;, - 60;4; 0.021794, 0.000952, 0.998811,-0.043609;;, - 61;4; 0.021681, 0.000947, 0.998817,-0.043383;;, - 62;4; 0.021364, 0.000933, 0.998834,-0.042748;;, - 63;4; 0.020870, 0.000911, 0.998861,-0.041759;;, - 64;4; 0.020221, 0.000883, 0.998896,-0.040461;;, - 65;4; 0.019436, 0.000849, 0.998939,-0.038890;;, - 66;4; 0.018529, 0.000809, 0.998989,-0.037076;;, - 67;4; 0.017514, 0.000765, 0.999044,-0.035045;;, - 68;4; 0.016402, 0.000716, 0.999105,-0.032820;;, - 69;4; 0.015204, 0.000664, 0.999170,-0.030422;;, - 70;4; 0.013928, 0.000608, 0.999240,-0.027869;;, - 71;4; 0.012583, 0.000549, 0.999313,-0.025178;;, - 72;4; 0.011179, 0.000488, 0.999390,-0.022368;;, - 73;4; 0.009723, 0.000425, 0.999469,-0.019456;;, - 74;4; 0.008227, 0.000359, 0.999551,-0.016461;;, - 75;4; 0.006701, 0.000293, 0.999634,-0.013408;;, - 76;4; 0.005161, 0.000225, 0.999718,-0.010327;;, - 77;4; 0.003631, 0.000159, 0.999802,-0.007266;;, - 78;4; 0.002152, 0.000094, 0.999883,-0.004305;;, - 79;4; 0.000815, 0.000036, 0.999956,-0.001631;;, - 80;4; 0.000000, 0.000000, 1.000000, 0.000000;;, - 81;4; 0.000000,-0.000000, 1.000000, 0.000000;;, - 82;4;-0.000815,-0.000036, 0.999956,-0.001631;;, - 83;4;-0.002152,-0.000094, 0.999883,-0.004305;;, - 84;4;-0.003631,-0.000159, 0.999802,-0.007266;;, - 85;4;-0.005161,-0.000225, 0.999718,-0.010327;;, - 86;4;-0.006701,-0.000293, 0.999634,-0.013408;;, - 87;4;-0.008226,-0.000359, 0.999551,-0.016461;;, - 88;4;-0.009723,-0.000425, 0.999469,-0.019456;;, - 89;4;-0.011179,-0.000488, 0.999390,-0.022368;;, - 90;4;-0.012583,-0.000549, 0.999313,-0.025178;;, - 91;4;-0.013928,-0.000608, 0.999240,-0.027869;;, - 92;4;-0.015204,-0.000664, 0.999170,-0.030422;;, - 93;4;-0.016402,-0.000716, 0.999105,-0.032820;;, - 94;4;-0.017514,-0.000765, 0.999044,-0.035045;;, - 95;4;-0.018529,-0.000809, 0.998989,-0.037076;;, - 96;4;-0.019436,-0.000849, 0.998939,-0.038890;;, - 97;4;-0.020221,-0.000883, 0.998896,-0.040461;;, - 98;4;-0.020870,-0.000911, 0.998861,-0.041759;;, - 99;4;-0.021364,-0.000933, 0.998834,-0.042748;;, - 100;4;-0.021681,-0.000947, 0.998817,-0.043383;;, - 101;4;-0.021794,-0.000952, 0.998811,-0.043609;;, - 102;4;-0.021720,-0.000948, 0.998817,-0.043369;;, - 103;4;-0.021494,-0.000938, 0.998837,-0.042642;;, - 104;4;-0.021108,-0.000922, 0.998870,-0.041427;;, - 105;4;-0.020560,-0.000898, 0.998916,-0.039733;;, - 106;4;-0.019848,-0.000867, 0.998975,-0.037578;;, - 107;4;-0.018975,-0.000828, 0.999045,-0.035002;;, - 108;4;-0.017947,-0.000784, 0.999126,-0.032056;;, - 109;4;-0.016778,-0.000733, 0.999214,-0.028814;;, - 110;4;-0.015484,-0.000676, 0.999308,-0.025363;;, - 111;4;-0.014088,-0.000615, 0.999405,-0.021804;;, - 112;4;-0.012616,-0.000551, 0.999502,-0.018246;;, - 113;4;-0.011095,-0.000484, 0.999596,-0.014795;;, - 114;4;-0.009555,-0.000417, 0.999685,-0.011553;;, - 115;4;-0.008021,-0.000350, 0.999765,-0.008607;;, - 116;4;-0.006517,-0.000285, 0.999835,-0.006030;;, - 117;4;-0.005062,-0.000221, 0.999894,-0.003876;;, - 118;4;-0.003674,-0.000160, 0.999941,-0.002181;;, - 119;4;-0.002362,-0.000103, 0.999974,-0.000967;;, - 120;4;-0.001136,-0.000050, 0.999993,-0.000240;;, - 121;4; 0.000000, 0.000000, 1.000000, 0.000000;;, - 122;4; 0.001136, 0.000050, 0.999993,-0.000240;;, - 123;4; 0.002362, 0.000103, 0.999974,-0.000967;;, - 124;4; 0.003674, 0.000160, 0.999941,-0.002181;;, - 125;4; 0.005062, 0.000221, 0.999894,-0.003876;;, - 126;4; 0.006517, 0.000285, 0.999835,-0.006030;;, - 127;4; 0.008021, 0.000350, 0.999765,-0.008607;;, - 128;4; 0.009555, 0.000417, 0.999685,-0.011553;;, - 129;4; 0.011095, 0.000484, 0.999596,-0.014795;;, - 130;4; 0.012616, 0.000551, 0.999502,-0.018246;;, - 131;4; 0.014088, 0.000615, 0.999405,-0.021804;;, - 132;4; 0.015484, 0.000676, 0.999308,-0.025363;;, - 133;4; 0.016778, 0.000733, 0.999214,-0.028814;;, - 134;4; 0.017947, 0.000784, 0.999126,-0.032056;;, - 135;4; 0.018975, 0.000828, 0.999045,-0.035002;;, - 136;4; 0.019848, 0.000867, 0.998975,-0.037578;;, - 137;4; 0.020560, 0.000898, 0.998916,-0.039733;;, - 138;4; 0.021109, 0.000922, 0.998870,-0.041427;;, - 139;4; 0.021494, 0.000938, 0.998837,-0.042642;;, - 140;4; 0.021720, 0.000948, 0.998817,-0.043369;;, - 141;4; 0.021794, 0.000952, 0.998811,-0.043609;;, - 142;4; 0.021681, 0.000947, 0.998817,-0.043383;;, - 143;4; 0.021364, 0.000933, 0.998834,-0.042748;;, - 144;4; 0.020870, 0.000911, 0.998861,-0.041759;;, - 145;4; 0.020221, 0.000883, 0.998896,-0.040461;;, - 146;4; 0.019436, 0.000849, 0.998939,-0.038890;;, - 147;4; 0.018529, 0.000809, 0.998989,-0.037076;;, - 148;4; 0.017514, 0.000765, 0.999044,-0.035045;;, - 149;4; 0.016402, 0.000716, 0.999105,-0.032820;;, - 150;4; 0.015204, 0.000664, 0.999170,-0.030422;;, - 151;4; 0.013928, 0.000608, 0.999240,-0.027869;;, - 152;4; 0.012583, 0.000549, 0.999313,-0.025178;;, - 153;4; 0.011179, 0.000488, 0.999390,-0.022368;;, - 154;4; 0.009723, 0.000425, 0.999469,-0.019456;;, - 155;4; 0.008227, 0.000359, 0.999551,-0.016461;;, - 156;4; 0.006701, 0.000293, 0.999634,-0.013408;;, - 157;4; 0.005161, 0.000225, 0.999718,-0.010327;;, - 158;4; 0.003631, 0.000159, 0.999802,-0.007266;;, - 159;4; 0.002152, 0.000094, 0.999883,-0.004305;;, - 160;4; 0.000815, 0.000036, 0.999956,-0.001631;;, - 161;4; 0.000000, 0.000000, 1.000000, 0.000000;;, - 162;4; 0.000000, 0.000000, 1.000000, 0.000000;;, - 163;4; 0.000000, 0.000000, 1.000000, 0.000000;;, - 164;4; 0.000000, 0.000000, 1.000000, 0.000000;;, - 165;4; 0.000000, 0.000000, 1.000000, 0.000000;;, - 166;4; 0.000000, 0.000000, 1.000000, 0.000000;;, - 167;4; 0.000000, 0.000000, 1.000000, 0.000000;;, - 168;4; 0.000000,-0.000000, 1.000000, 0.000000;;, - 169;4; 0.003877,-0.000000, 0.999915, 0.000000;;, - 170;4; 0.014799,-0.000000, 0.999677, 0.000000;;, - 171;4; 0.028821,-0.000000, 0.999371, 0.000000;;, - 172;4; 0.039742,-0.000000, 0.999133, 0.000000;;, - 173;4; 0.043619,-0.000000, 0.999048, 0.000000;;, - 174;4; 0.041150, 0.000000, 0.999133, 0.000000;;, - 175;4; 0.033580,-0.000000, 0.999371, 0.000000;;, - 176;4; 0.022207,-0.000000, 0.999677, 0.000000;;, - 177;4; 0.010132,-0.000000, 0.999915, 0.000000;;, - 178;4; 0.000000, 0.000000, 1.000000, 0.000000;;, - 179;4;-0.010132, 0.000000, 0.999915, 0.000000;;, - 180;4;-0.022206, 0.000000, 0.999677, 0.000000;;, - 181;4;-0.033580, 0.000000, 0.999371, 0.000000;;, - 182;4;-0.041150,-0.000000, 0.999133, 0.000000;;, - 183;4;-0.043619, 0.000000, 0.999048, 0.000000;;, - 184;4;-0.039742, 0.000000, 0.999133, 0.000000;;, - 185;4;-0.028821, 0.000000, 0.999371, 0.000000;;, - 186;4;-0.014798, 0.000000, 0.999677, 0.000000;;, - 187;4;-0.003877, 0.000000, 0.999915, 0.000000;;, - 188;4; 0.000000, 0.000000, 1.000000, 0.000000;;, - 189;4; 0.000000, 0.000000, 1.000000, 0.000000;;, - 190;4; 0.000000,-0.000000, 1.000000, 0.000000;;, - 191;4; 0.000000,-0.000000, 1.000000, 0.000000;;, - 192;4; 0.000000,-0.000000, 1.000000, 0.000000;;, - 193;4; 0.000000,-0.000000, 1.000000, 0.000000;;, - 194;4; 0.000000,-0.000000, 1.000000, 0.000000;;, - 195;4; 0.000000,-0.000000, 1.000000, 0.000000;;, - 196;4; 0.000000,-0.000000, 1.000000, 0.000000;;, - 197;4; 0.000000,-0.000000, 1.000000, 0.000000;;, - 198;4; 0.000000,-0.000000, 1.000000, 0.000000;;, - 199;4; 0.000000, 0.000000, 1.000000, 0.000000;;, - 200;4; 0.000000,-0.000000, 1.000000, 0.000000;;, - 201;4; 0.003877,-0.000000, 0.999915, 0.000000;;, - 202;4; 0.014799,-0.000000, 0.999677, 0.000000;;, - 203;4; 0.028821,-0.000000, 0.999371, 0.000000;;, - 204;4; 0.039742,-0.000000, 0.999133, 0.000000;;, - 205;4; 0.043619,-0.000000, 0.999048, 0.000000;;, - 206;4; 0.041150, 0.000000, 0.999133, 0.000000;;, - 207;4; 0.033580,-0.000000, 0.999371, 0.000000;;, - 208;4; 0.022207,-0.000000, 0.999677, 0.000000;;, - 209;4; 0.010132,-0.000000, 0.999915, 0.000000;;, - 210;4; 0.000000, 0.000000, 1.000000, 0.000000;;, - 211;4;-0.010132, 0.000000, 0.999915, 0.000000;;, - 212;4;-0.022206, 0.000000, 0.999677, 0.000000;;, - 213;4;-0.033580, 0.000000, 0.999371, 0.000000;;, - 214;4;-0.041150,-0.000000, 0.999133, 0.000000;;, - 215;4;-0.043619, 0.000000, 0.999048, 0.000000;;, - 216;4;-0.039742, 0.000000, 0.999133, 0.000000;;, - 217;4;-0.028821, 0.000000, 0.999371, 0.000000;;, - 218;4;-0.014799, 0.000000, 0.999677, 0.000000;;, - 219;4;-0.003877, 0.000000, 0.999915, 0.000000;;, - 220;4; 0.000000, 0.000000, 1.000000, 0.000000;;; - } - AnimationKey { // Scale - 1; - 221; - 0;3; 1.000000, 1.000000, 1.000000;;, - 1;3; 1.000000, 1.000000, 1.000000;;, - 2;3; 1.000000, 1.000000, 1.000000;;, - 3;3; 1.000000, 1.000000, 1.000000;;, - 4;3; 1.000000, 1.000000, 1.000000;;, - 5;3; 1.000000, 1.000000, 1.000000;;, - 6;3; 1.000000, 1.000000, 1.000000;;, - 7;3; 1.000000, 1.000000, 1.000000;;, - 8;3; 1.000000, 1.000000, 1.000000;;, - 9;3; 1.000000, 1.000000, 1.000000;;, - 10;3; 1.000000, 1.000000, 1.000000;;, - 11;3; 1.000000, 1.000000, 1.000000;;, - 12;3; 1.000000, 1.000000, 1.000000;;, - 13;3; 1.000000, 1.000000, 1.000000;;, - 14;3; 1.000000, 1.000000, 1.000000;;, - 15;3; 1.000000, 1.000000, 1.000000;;, - 16;3; 1.000000, 1.000000, 1.000000;;, - 17;3; 1.000000, 1.000000, 1.000000;;, - 18;3; 1.000000, 1.000000, 1.000000;;, - 19;3; 1.000000, 1.000000, 1.000000;;, - 20;3; 1.000000, 1.000000, 1.000000;;, - 21;3; 1.000000, 1.000000, 1.000000;;, - 22;3; 1.000000, 1.000000, 1.000000;;, - 23;3; 1.000000, 1.000000, 1.000000;;, - 24;3; 1.000000, 1.000000, 1.000000;;, - 25;3; 1.000000, 1.000000, 1.000000;;, - 26;3; 1.000000, 1.000000, 1.000000;;, - 27;3; 1.000000, 1.000000, 1.000000;;, - 28;3; 1.000000, 1.000000, 1.000000;;, - 29;3; 1.000000, 1.000000, 1.000000;;, - 30;3; 1.000000, 1.000000, 1.000000;;, - 31;3; 1.000000, 1.000000, 1.000000;;, - 32;3; 1.000000, 1.000000, 1.000000;;, - 33;3; 1.000000, 1.000000, 1.000000;;, - 34;3; 1.000000, 1.000000, 1.000000;;, - 35;3; 1.000000, 1.000000, 1.000000;;, - 36;3; 1.000000, 1.000000, 1.000000;;, - 37;3; 1.000000, 1.000000, 1.000000;;, - 38;3; 1.000000, 1.000000, 1.000000;;, - 39;3; 1.000000, 1.000000, 1.000000;;, - 40;3; 1.000000, 1.000000, 1.000000;;, - 41;3; 1.000000, 1.000000, 1.000000;;, - 42;3; 1.000000, 1.000000, 1.000000;;, - 43;3; 1.000000, 1.000000, 1.000000;;, - 44;3; 1.000000, 1.000000, 1.000000;;, - 45;3; 1.000000, 1.000000, 1.000000;;, - 46;3; 1.000000, 1.000000, 1.000000;;, - 47;3; 1.000000, 1.000000, 1.000000;;, - 48;3; 1.000000, 1.000000, 1.000000;;, - 49;3; 1.000000, 1.000000, 1.000000;;, - 50;3; 1.000000, 1.000000, 1.000000;;, - 51;3; 1.000000, 1.000000, 1.000000;;, - 52;3; 1.000000, 1.000000, 1.000000;;, - 53;3; 1.000000, 1.000000, 1.000000;;, - 54;3; 1.000000, 1.000000, 1.000000;;, - 55;3; 1.000000, 1.000000, 1.000000;;, - 56;3; 1.000000, 1.000000, 1.000000;;, - 57;3; 1.000000, 1.000000, 1.000000;;, - 58;3; 1.000000, 1.000000, 1.000000;;, - 59;3; 1.000000, 1.000000, 1.000000;;, - 60;3; 1.000000, 1.000000, 1.000000;;, - 61;3; 1.000000, 1.000000, 1.000000;;, - 62;3; 1.000000, 1.000000, 1.000000;;, - 63;3; 1.000000, 1.000000, 1.000000;;, - 64;3; 1.000000, 1.000000, 1.000000;;, - 65;3; 1.000000, 1.000000, 1.000000;;, - 66;3; 1.000000, 1.000000, 1.000000;;, - 67;3; 1.000000, 1.000000, 1.000000;;, - 68;3; 1.000000, 1.000000, 1.000000;;, - 69;3; 1.000000, 1.000000, 1.000000;;, - 70;3; 1.000000, 1.000000, 1.000000;;, - 71;3; 1.000000, 1.000000, 1.000000;;, - 72;3; 1.000000, 1.000000, 1.000000;;, - 73;3; 1.000000, 1.000000, 1.000000;;, - 74;3; 1.000000, 1.000000, 1.000000;;, - 75;3; 1.000000, 1.000000, 1.000000;;, - 76;3; 1.000000, 1.000000, 1.000000;;, - 77;3; 1.000000, 1.000000, 1.000000;;, - 78;3; 1.000000, 1.000000, 1.000000;;, - 79;3; 1.000000, 1.000000, 1.000000;;, - 80;3; 1.000000, 1.000000, 1.000000;;, - 81;3; 1.000000, 1.000000, 1.000000;;, - 82;3; 1.000000, 1.000000, 1.000000;;, - 83;3; 1.000000, 1.000000, 1.000000;;, - 84;3; 1.000000, 1.000000, 1.000000;;, - 85;3; 1.000000, 1.000000, 1.000000;;, - 86;3; 1.000000, 1.000000, 1.000000;;, - 87;3; 1.000000, 1.000000, 1.000000;;, - 88;3; 1.000000, 1.000000, 1.000000;;, - 89;3; 1.000000, 1.000000, 1.000000;;, - 90;3; 1.000000, 1.000000, 1.000000;;, - 91;3; 1.000000, 1.000000, 1.000000;;, - 92;3; 1.000000, 1.000000, 1.000000;;, - 93;3; 1.000000, 1.000000, 1.000000;;, - 94;3; 1.000000, 1.000000, 1.000000;;, - 95;3; 1.000000, 1.000000, 1.000000;;, - 96;3; 1.000000, 1.000000, 1.000000;;, - 97;3; 1.000000, 1.000000, 1.000000;;, - 98;3; 1.000000, 1.000000, 1.000000;;, - 99;3; 1.000000, 1.000000, 1.000000;;, - 100;3; 1.000000, 1.000000, 1.000000;;, - 101;3; 1.000000, 1.000000, 1.000000;;, - 102;3; 1.000000, 1.000000, 1.000000;;, - 103;3; 1.000000, 1.000000, 1.000000;;, - 104;3; 1.000000, 1.000000, 1.000000;;, - 105;3; 1.000000, 1.000000, 1.000000;;, - 106;3; 1.000000, 1.000000, 1.000000;;, - 107;3; 1.000000, 1.000000, 1.000000;;, - 108;3; 1.000000, 1.000000, 1.000000;;, - 109;3; 1.000000, 1.000000, 1.000000;;, - 110;3; 1.000000, 1.000000, 1.000000;;, - 111;3; 1.000000, 1.000000, 1.000000;;, - 112;3; 1.000000, 1.000000, 1.000000;;, - 113;3; 1.000000, 1.000000, 1.000000;;, - 114;3; 1.000000, 1.000000, 1.000000;;, - 115;3; 1.000000, 1.000000, 1.000000;;, - 116;3; 1.000000, 1.000000, 1.000000;;, - 117;3; 1.000000, 1.000000, 1.000000;;, - 118;3; 1.000000, 1.000000, 1.000000;;, - 119;3; 1.000000, 1.000000, 1.000000;;, - 120;3; 1.000000, 1.000000, 1.000000;;, - 121;3; 1.000000, 1.000000, 1.000000;;, - 122;3; 1.000000, 1.000000, 1.000000;;, - 123;3; 1.000000, 1.000000, 1.000000;;, - 124;3; 1.000000, 1.000000, 1.000000;;, - 125;3; 1.000000, 1.000000, 1.000000;;, - 126;3; 1.000000, 1.000000, 1.000000;;, - 127;3; 1.000000, 1.000000, 1.000000;;, - 128;3; 1.000000, 1.000000, 1.000000;;, - 129;3; 1.000000, 1.000000, 1.000000;;, - 130;3; 1.000000, 1.000000, 1.000000;;, - 131;3; 1.000000, 1.000000, 1.000000;;, - 132;3; 1.000000, 1.000000, 1.000000;;, - 133;3; 1.000000, 1.000000, 1.000000;;, - 134;3; 1.000000, 1.000000, 1.000000;;, - 135;3; 1.000000, 1.000000, 1.000000;;, - 136;3; 1.000000, 1.000000, 1.000000;;, - 137;3; 1.000000, 1.000000, 1.000000;;, - 138;3; 1.000000, 1.000000, 1.000000;;, - 139;3; 1.000000, 1.000000, 1.000000;;, - 140;3; 1.000000, 1.000000, 1.000000;;, - 141;3; 1.000000, 1.000000, 1.000000;;, - 142;3; 1.000000, 1.000000, 1.000000;;, - 143;3; 1.000000, 1.000000, 1.000000;;, - 144;3; 1.000000, 1.000000, 1.000000;;, - 145;3; 1.000000, 1.000000, 1.000000;;, - 146;3; 1.000000, 1.000000, 1.000000;;, - 147;3; 1.000000, 1.000000, 1.000000;;, - 148;3; 1.000000, 1.000000, 1.000000;;, - 149;3; 1.000000, 1.000000, 1.000000;;, - 150;3; 1.000000, 1.000000, 1.000000;;, - 151;3; 1.000000, 1.000000, 1.000000;;, - 152;3; 1.000000, 1.000000, 1.000000;;, - 153;3; 1.000000, 1.000000, 1.000000;;, - 154;3; 1.000000, 1.000000, 1.000000;;, - 155;3; 1.000000, 1.000000, 1.000000;;, - 156;3; 1.000000, 1.000000, 1.000000;;, - 157;3; 1.000000, 1.000000, 1.000000;;, - 158;3; 1.000000, 1.000000, 1.000000;;, - 159;3; 1.000000, 1.000000, 1.000000;;, - 160;3; 1.000000, 1.000000, 1.000000;;, - 161;3; 1.000000, 1.000000, 1.000000;;, - 162;3; 1.000000, 1.000000, 1.000000;;, - 163;3; 1.000000, 1.000000, 1.000000;;, - 164;3; 1.000000, 1.000000, 1.000000;;, - 165;3; 1.000000, 1.000000, 1.000000;;, - 166;3; 1.000000, 1.000000, 1.000000;;, - 167;3; 1.000000, 1.000000, 1.000000;;, - 168;3; 1.000000, 1.000000, 1.000000;;, - 169;3; 1.000000, 1.000000, 1.000000;;, - 170;3; 1.000000, 1.000000, 1.000000;;, - 171;3; 1.000000, 1.000000, 1.000000;;, - 172;3; 1.000000, 1.000000, 1.000000;;, - 173;3; 1.000000, 1.000000, 1.000000;;, - 174;3; 1.000000, 1.000000, 1.000000;;, - 175;3; 1.000000, 1.000000, 1.000000;;, - 176;3; 1.000000, 1.000000, 1.000000;;, - 177;3; 1.000000, 1.000000, 1.000000;;, - 178;3; 1.000000, 1.000000, 1.000000;;, - 179;3; 1.000000, 1.000000, 1.000000;;, - 180;3; 1.000000, 1.000000, 1.000000;;, - 181;3; 1.000000, 1.000000, 1.000000;;, - 182;3; 1.000000, 1.000000, 1.000000;;, - 183;3; 1.000000, 1.000000, 1.000000;;, - 184;3; 1.000000, 1.000000, 1.000000;;, - 185;3; 1.000000, 1.000000, 1.000000;;, - 186;3; 1.000000, 1.000000, 1.000000;;, - 187;3; 1.000000, 1.000000, 1.000000;;, - 188;3; 1.000000, 1.000000, 1.000000;;, - 189;3; 1.000000, 1.000000, 1.000000;;, - 190;3; 1.000000, 1.000000, 1.000000;;, - 191;3; 1.000000, 1.000000, 1.000000;;, - 192;3; 1.000000, 1.000000, 1.000000;;, - 193;3; 1.000000, 1.000000, 1.000000;;, - 194;3; 1.000000, 1.000000, 1.000000;;, - 195;3; 1.000000, 1.000000, 1.000000;;, - 196;3; 1.000000, 1.000000, 1.000000;;, - 197;3; 1.000000, 1.000000, 1.000000;;, - 198;3; 1.000000, 1.000000, 1.000000;;, - 199;3; 1.000000, 1.000000, 1.000000;;, - 200;3; 1.000000, 1.000000, 1.000000;;, - 201;3; 1.000000, 1.000000, 1.000000;;, - 202;3; 1.000000, 1.000000, 1.000000;;, - 203;3; 1.000000, 1.000000, 1.000000;;, - 204;3; 1.000000, 1.000000, 1.000000;;, - 205;3; 1.000000, 1.000000, 1.000000;;, - 206;3; 1.000000, 1.000000, 1.000000;;, - 207;3; 1.000000, 1.000000, 1.000000;;, - 208;3; 1.000000, 1.000000, 1.000000;;, - 209;3; 1.000000, 1.000000, 1.000000;;, - 210;3; 1.000000, 1.000000, 1.000000;;, - 211;3; 1.000000, 1.000000, 1.000000;;, - 212;3; 1.000000, 1.000000, 1.000000;;, - 213;3; 1.000000, 1.000000, 1.000000;;, - 214;3; 1.000000, 1.000000, 1.000000;;, - 215;3; 1.000000, 1.000000, 1.000000;;, - 216;3; 1.000000, 1.000000, 1.000000;;, - 217;3; 1.000000, 1.000000, 1.000000;;, - 218;3; 1.000000, 1.000000, 1.000000;;, - 219;3; 1.000000, 1.000000, 1.000000;;, - 220;3; 1.000000, 1.000000, 1.000000;;; - } - AnimationKey { // Position - 2; - 221; - 0;3; 0.000000, 6.750000,-0.000000;;, - 1;3; 0.000000, 6.750000, 0.000000;;, - 2;3; 0.000000, 6.750000,-0.000000;;, - 3;3; 0.000000, 6.750000, 0.000000;;, - 4;3; 0.000000, 6.750000, 0.000000;;, - 5;3; 0.000000, 6.750000, 0.000000;;, - 6;3; 0.000000, 6.750000, 0.000000;;, - 7;3; 0.000000, 6.750000, 0.000000;;, - 8;3; 0.000000, 6.750000,-0.000000;;, - 9;3; 0.000000, 6.750000,-0.000000;;, - 10;3; 0.000000, 6.750000,-0.000000;;, - 11;3; 0.000000, 6.750000,-0.000000;;, - 12;3; 0.000000, 6.750000, 0.000000;;, - 13;3; 0.000000, 6.750000,-0.000000;;, - 14;3; 0.000000, 6.750000, 0.000000;;, - 15;3; 0.000000, 6.750000,-0.000000;;, - 16;3; 0.000000, 6.750000,-0.000000;;, - 17;3; 0.000000, 6.750000,-0.000000;;, - 18;3; 0.000000, 6.750000,-0.000000;;, - 19;3; 0.000000, 6.750000, 0.000000;;, - 20;3; 0.000000, 6.750000,-0.000000;;, - 21;3; 0.000000, 6.750000, 0.000000;;, - 22;3; 0.000000, 6.750000,-0.000000;;, - 23;3; 0.000000, 6.750000,-0.000000;;, - 24;3; 0.000000, 6.750000,-0.000000;;, - 25;3; 0.000000, 6.750000, 0.000000;;, - 26;3; 0.000000, 6.750000, 0.000000;;, - 27;3; 0.000000, 6.750000, 0.000000;;, - 28;3; 0.000000, 6.750000, 0.000000;;, - 29;3; 0.000000, 6.750000,-0.000000;;, - 30;3; 0.000000, 6.750000,-0.000000;;, - 31;3; 0.000000, 6.750000, 0.000000;;, - 32;3; 0.000000, 6.750000, 0.000000;;, - 33;3; 0.000000, 6.750000,-0.000000;;, - 34;3; 0.000000, 6.750000,-0.000000;;, - 35;3; 0.000000, 6.750000, 0.000000;;, - 36;3; 0.000000, 6.750000, 0.000000;;, - 37;3; 0.000000, 6.750000, 0.000000;;, - 38;3; 0.000000, 6.750000,-0.000000;;, - 39;3; 0.000000, 6.750000, 0.000000;;, - 40;3; 0.000000, 6.750000,-0.000000;;, - 41;3; 0.000000, 6.750000, 0.000000;;, - 42;3; 0.000000, 6.750000, 0.000000;;, - 43;3; 0.000000, 6.750000, 0.000000;;, - 44;3; 0.000000, 6.750000, 0.000000;;, - 45;3; 0.000000, 6.750000,-0.000000;;, - 46;3; 0.000000, 6.750000,-0.000000;;, - 47;3; 0.000000, 6.750000, 0.000000;;, - 48;3; 0.000000, 6.750000,-0.000000;;, - 49;3; 0.000000, 6.750000,-0.000000;;, - 50;3; 0.000000, 6.750000,-0.000000;;, - 51;3; 0.000000, 6.750000,-0.000000;;, - 52;3; 0.000000, 6.750000, 0.000000;;, - 53;3; 0.000000, 6.750000, 0.000000;;, - 54;3; 0.000000, 6.750000,-0.000000;;, - 55;3; 0.000000, 6.750000, 0.000000;;, - 56;3; 0.000000, 6.750000,-0.000000;;, - 57;3; 0.000000, 6.750000,-0.000000;;, - 58;3; 0.000000, 6.750000,-0.000000;;, - 59;3; 0.000000, 6.750000, 0.000000;;, - 60;3; 0.000000, 6.750000,-0.000000;;, - 61;3; 0.000000, 6.750000,-0.000000;;, - 62;3; 0.000000, 6.750000, 0.000000;;, - 63;3; 0.000000, 6.750000, 0.000000;;, - 64;3; 0.000000, 6.750000, 0.000000;;, - 65;3; 0.000000, 6.750000, 0.000000;;, - 66;3; 0.000000, 6.750000, 0.000000;;, - 67;3; 0.000000, 6.750000,-0.000000;;, - 68;3; 0.000000, 6.750000, 0.000000;;, - 69;3; 0.000000, 6.750000,-0.000000;;, - 70;3; 0.000000, 6.750000, 0.000000;;, - 71;3; 0.000000, 6.750000, 0.000000;;, - 72;3; 0.000000, 6.750000, 0.000000;;, - 73;3; 0.000000, 6.750000,-0.000000;;, - 74;3; 0.000000, 6.750000,-0.000000;;, - 75;3; 0.000000, 6.750000, 0.000000;;, - 76;3; 0.000000, 6.750000, 0.000000;;, - 77;3; 0.000000, 6.750000,-0.000000;;, - 78;3; 0.000000, 6.750001,-0.000000;;, - 79;3; 0.000000, 6.750000, 0.000000;;, - 80;3; 0.000000, 6.750000,-0.000000;;, - 81;3; 0.000000, 6.750000, 0.000000;;, - 82;3; 0.000000, 6.750000, 0.000000;;, - 83;3; 0.000000, 6.750000, 0.000000;;, - 84;3; 0.000000, 6.750000, 0.000000;;, - 85;3; 0.000000, 6.750000,-0.000000;;, - 86;3; 0.000000, 6.750000, 0.000000;;, - 87;3; 0.000000, 6.750000,-0.000000;;, - 88;3; 0.000000, 6.750000, 0.000000;;, - 89;3; 0.000000, 6.750000,-0.000000;;, - 90;3; 0.000000, 6.750000,-0.000000;;, - 91;3; 0.000000, 6.750000, 0.000000;;, - 92;3; 0.000000, 6.750000,-0.000000;;, - 93;3; 0.000000, 6.750000, 0.000000;;, - 94;3; 0.000000, 6.750000,-0.000000;;, - 95;3; 0.000000, 6.750000, 0.000000;;, - 96;3; 0.000000, 6.750000,-0.000000;;, - 97;3; 0.000000, 6.750000, 0.000000;;, - 98;3; 0.000000, 6.750000,-0.000000;;, - 99;3; 0.000000, 6.750000,-0.000000;;, - 100;3; 0.000000, 6.750000, 0.000000;;, - 101;3; 0.000000, 6.750000,-0.000000;;, - 102;3; 0.000000, 6.750000, 0.000000;;, - 103;3; 0.000000, 6.750000,-0.000000;;, - 104;3; 0.000000, 6.750000, 0.000000;;, - 105;3; 0.000000, 6.750000,-0.000000;;, - 106;3; 0.000000, 6.750000,-0.000000;;, - 107;3; 0.000000, 6.750000, 0.000000;;, - 108;3; 0.000000, 6.750000, 0.000000;;, - 109;3; 0.000000, 6.750000,-0.000000;;, - 110;3; 0.000000, 6.750000,-0.000000;;, - 111;3; 0.000000, 6.750000,-0.000000;;, - 112;3; 0.000000, 6.750000,-0.000000;;, - 113;3; 0.000000, 6.750000,-0.000000;;, - 114;3; 0.000000, 6.750000,-0.000000;;, - 115;3; 0.000000, 6.750000,-0.000000;;, - 116;3; 0.000000, 6.750000,-0.000000;;, - 117;3; 0.000000, 6.750000,-0.000000;;, - 118;3; 0.000000, 6.750000, 0.000000;;, - 119;3; 0.000000, 6.750000,-0.000000;;, - 120;3; 0.000000, 6.750000, 0.000000;;, - 121;3; 0.000000, 6.750000, 0.000000;;, - 122;3; 0.000000, 6.750000, 0.000000;;, - 123;3; 0.000000, 6.750000,-0.000000;;, - 124;3; 0.000000, 6.750000,-0.000000;;, - 125;3; 0.000000, 6.750000,-0.000000;;, - 126;3; 0.000000, 6.750000, 0.000000;;, - 127;3; 0.000000, 6.750000,-0.000000;;, - 128;3; 0.000000, 6.750000, 0.000000;;, - 129;3; 0.000000, 6.750000,-0.000000;;, - 130;3; 0.000000, 6.750000, 0.000000;;, - 131;3; 0.000000, 6.750000, 0.000000;;, - 132;3; 0.000000, 6.750000,-0.000000;;, - 133;3; 0.000000, 6.750000,-0.000000;;, - 134;3; 0.000000, 6.750000, 0.000000;;, - 135;3; 0.000000, 6.750000, 0.000000;;, - 136;3; 0.000000, 6.750000,-0.000000;;, - 137;3; 0.000000, 6.750000, 0.000000;;, - 138;3; 0.000000, 6.750000,-0.000000;;, - 139;3; 0.000000, 6.750000, 0.000000;;, - 140;3; 0.000000, 6.750000,-0.000000;;, - 141;3; 0.000000, 6.750000,-0.000000;;, - 142;3; 0.000000, 6.750000,-0.000000;;, - 143;3; 0.000000, 6.750000,-0.000000;;, - 144;3; 0.000000, 6.750000, 0.000000;;, - 145;3; 0.000000, 6.750000,-0.000000;;, - 146;3; 0.000000, 6.750000, 0.000000;;, - 147;3; 0.000000, 6.750000, 0.000000;;, - 148;3; 0.000000, 6.750000,-0.000000;;, - 149;3; 0.000000, 6.750000,-0.000000;;, - 150;3; 0.000000, 6.750000,-0.000000;;, - 151;3; 0.000000, 6.750000,-0.000000;;, - 152;3; 0.000000, 6.750000,-0.000000;;, - 153;3; 0.000000, 6.750000, 0.000000;;, - 154;3; 0.000000, 6.750000,-0.000000;;, - 155;3; 0.000000, 6.750000,-0.000000;;, - 156;3; 0.000000, 6.750000,-0.000000;;, - 157;3; 0.000000, 6.750000,-0.000000;;, - 158;3; 0.000000, 6.750000, 0.000000;;, - 159;3; 0.000000, 6.750000, 0.000000;;, - 160;3; 0.000000, 6.750000, 0.000000;;, - 161;3; 0.000000, 6.750000, 0.000000;;, - 162;3; 0.000000, 6.750000, 0.000000;;, - 163;3; 0.000000, 6.750000, 0.000000;;, - 164;3; 0.000000, 6.750000, 0.000000;;, - 165;3; 0.000000, 6.750000, 0.000000;;, - 166;3; 0.000000, 6.750000, 0.000000;;, - 167;3; 0.000000, 6.750000, 0.000000;;, - 168;3; 0.000000, 6.750000,-0.000000;;, - 169;3; 0.000000, 6.750000,-0.000000;;, - 170;3; 0.000000, 6.750000,-0.000000;;, - 171;3; 0.000000, 6.750000,-0.000000;;, - 172;3; 0.000000, 6.750000,-0.000000;;, - 173;3; 0.000000, 6.750000,-0.000000;;, - 174;3; 0.000000, 6.750000,-0.000000;;, - 175;3; 0.000000, 6.750000,-0.000000;;, - 176;3; 0.000000, 6.750000,-0.000000;;, - 177;3; 0.000000, 6.750000,-0.000000;;, - 178;3; 0.000000, 6.750000,-0.000000;;, - 179;3; 0.000000, 6.750000,-0.000000;;, - 180;3; 0.000000, 6.750000,-0.000000;;, - 181;3; 0.000000, 6.750000,-0.000000;;, - 182;3; 0.000000, 6.750000,-0.000000;;, - 183;3; 0.000000, 6.750000,-0.000000;;, - 184;3; 0.000000, 6.750000,-0.000000;;, - 185;3; 0.000000, 6.750000,-0.000000;;, - 186;3; 0.000000, 6.750000,-0.000000;;, - 187;3; 0.000000, 6.750000,-0.000000;;, - 188;3; 0.000000, 6.750000,-0.000000;;, - 189;3; 0.000000, 6.750000,-0.000000;;, - 190;3; 0.000000, 6.750000, 0.000000;;, - 191;3; 0.000000, 6.750000, 0.000000;;, - 192;3; 0.000000, 6.750000,-0.000000;;, - 193;3; 0.000000, 6.750001, 0.000000;;, - 194;3; 0.000000, 6.750001, 0.000000;;, - 195;3; 0.000000, 6.750001, 0.000000;;, - 196;3; 0.000000, 6.750000,-0.000000;;, - 197;3; 0.000000, 6.750000, 0.000000;;, - 198;3; 0.000000, 6.750000, 0.000000;;, - 199;3; 0.000000, 6.750000,-0.000000;;, - 200;3; 0.000000, 6.750000,-0.000000;;, - 201;3; 0.000000, 6.750000,-0.000000;;, - 202;3; 0.000000, 6.750000,-0.000000;;, - 203;3; 0.000000, 6.750000, 0.000000;;, - 204;3; 0.000000, 6.750000,-0.000000;;, - 205;3; 0.000000, 6.750000,-0.000000;;, - 206;3; 0.000000, 6.750000, 0.000000;;, - 207;3; 0.000000, 6.750000,-0.000000;;, - 208;3; 0.000000, 6.750000, 0.000000;;, - 209;3; 0.000000, 6.750000,-0.000000;;, - 210;3; 0.000000, 6.750001, 0.000000;;, - 211;3; 0.000000, 6.750000,-0.000000;;, - 212;3; 0.000000, 6.750000, 0.000000;;, - 213;3; 0.000000, 6.750000, 0.000000;;, - 214;3; 0.000000, 6.750000, 0.000000;;, - 215;3; 0.000000, 6.750000,-0.000000;;, - 216;3; 0.000000, 6.750000,-0.000000;;, - 217;3; 0.000000, 6.750000, 0.000000;;, - 218;3; 0.000000, 6.750000, 0.000000;;, - 219;3; 0.000000, 6.750000, 0.000000;;, - 220;3; 0.000000, 6.750000,-0.000000;;; - } - } - Animation { - {Armature_Arm_Left} - AnimationKey { // Rotation - 0; - 221; - 0;4;-0.000993,-0.997299, 0.072152, 0.013698;;, - 1;4;-0.000771,-0.997293, 0.072149, 0.013790;;, - 2;4;-0.000100,-0.997275, 0.072138, 0.014069;;, - 3;4; 0.001022,-0.997244, 0.072120, 0.014535;;, - 4;4; 0.002587,-0.997202, 0.072094, 0.015185;;, - 5;4; 0.004576,-0.997147, 0.072062, 0.016011;;, - 6;4; 0.006956,-0.997083, 0.072024, 0.017000;;, - 7;4; 0.009676,-0.997008, 0.071980, 0.018130;;, - 8;4; 0.012671,-0.996927, 0.071932, 0.019373;;, - 9;4; 0.015858,-0.996840, 0.071881, 0.020697;;, - 10;4; 0.019145,-0.996751, 0.071828, 0.022062;;, - 11;4; 0.022431,-0.996661, 0.071775, 0.023428;;, - 12;4; 0.025618,-0.996574, 0.071723, 0.024751;;, - 13;4; 0.028613,-0.996493, 0.071675, 0.025995;;, - 14;4; 0.031333,-0.996419, 0.071631, 0.027125;;, - 15;4; 0.033713,-0.996354, 0.071593, 0.028114;;, - 16;4; 0.035702,-0.996300, 0.071561, 0.028940;;, - 17;4; 0.037267,-0.996257, 0.071535, 0.029590;;, - 18;4; 0.038389,-0.996226, 0.071517, 0.030056;;, - 19;4; 0.039060,-0.996208, 0.071507, 0.030335;;, - 20;4; 0.039282,-0.996202, 0.071503, 0.030427;;, - 21;4; 0.039060,-0.996208, 0.071507, 0.030335;;, - 22;4; 0.038389,-0.996226, 0.071517, 0.030056;;, - 23;4; 0.037267,-0.996257, 0.071535, 0.029590;;, - 24;4; 0.035702,-0.996300, 0.071561, 0.028940;;, - 25;4; 0.033713,-0.996354, 0.071593, 0.028114;;, - 26;4; 0.031333,-0.996419, 0.071631, 0.027125;;, - 27;4; 0.028613,-0.996493, 0.071675, 0.025995;;, - 28;4; 0.025618,-0.996574, 0.071723, 0.024751;;, - 29;4; 0.022431,-0.996661, 0.071775, 0.023428;;, - 30;4; 0.019145,-0.996751, 0.071828, 0.022062;;, - 31;4; 0.015858,-0.996840, 0.071881, 0.020697;;, - 32;4; 0.012671,-0.996927, 0.071932, 0.019373;;, - 33;4; 0.009676,-0.997008, 0.071980, 0.018130;;, - 34;4; 0.006956,-0.997083, 0.072024, 0.017000;;, - 35;4; 0.004576,-0.997147, 0.072062, 0.016011;;, - 36;4; 0.002587,-0.997202, 0.072094, 0.015185;;, - 37;4; 0.001022,-0.997244, 0.072120, 0.014535;;, - 38;4;-0.000100,-0.997275, 0.072138, 0.014069;;, - 39;4;-0.000771,-0.997293, 0.072149, 0.013790;;, - 40;4;-0.000993,-0.997299, 0.072152, 0.013698;;, - 41;4;-0.000771,-0.997293, 0.072149, 0.013790;;, - 42;4;-0.000100,-0.997275, 0.072138, 0.014069;;, - 43;4; 0.001022,-0.997244, 0.072120, 0.014535;;, - 44;4; 0.002587,-0.997202, 0.072094, 0.015185;;, - 45;4; 0.004576,-0.997147, 0.072062, 0.016011;;, - 46;4; 0.006956,-0.997083, 0.072024, 0.017000;;, - 47;4; 0.009676,-0.997008, 0.071980, 0.018130;;, - 48;4; 0.012671,-0.996927, 0.071932, 0.019373;;, - 49;4; 0.015858,-0.996840, 0.071881, 0.020697;;, - 50;4; 0.019145,-0.996751, 0.071828, 0.022062;;, - 51;4; 0.022431,-0.996661, 0.071775, 0.023428;;, - 52;4; 0.025618,-0.996574, 0.071723, 0.024751;;, - 53;4; 0.028613,-0.996493, 0.071675, 0.025995;;, - 54;4; 0.031333,-0.996419, 0.071631, 0.027125;;, - 55;4; 0.033713,-0.996354, 0.071593, 0.028114;;, - 56;4; 0.035702,-0.996300, 0.071561, 0.028940;;, - 57;4; 0.037267,-0.996257, 0.071535, 0.029590;;, - 58;4; 0.038389,-0.996226, 0.071517, 0.030056;;, - 59;4; 0.039060,-0.996208, 0.071507, 0.030335;;, - 60;4; 0.039282,-0.996202, 0.071503, 0.030427;;, - 61;4; 0.039073,-0.996208, 0.071506, 0.030340;;, - 62;4; 0.038487,-0.996224, 0.071516, 0.030097;;, - 63;4; 0.037574,-0.996249, 0.071530, 0.029717;;, - 64;4; 0.036375,-0.996281, 0.071550, 0.029219;;, - 65;4; 0.034924,-0.996321, 0.071573, 0.028617;;, - 66;4; 0.033248,-0.996366, 0.071600, 0.027921;;, - 67;4; 0.031373,-0.996417, 0.071630, 0.027142;;, - 68;4; 0.029318,-0.996473, 0.071664, 0.026288;;, - 69;4; 0.027103,-0.996534, 0.071699, 0.025368;;, - 70;4; 0.024745,-0.996598, 0.071737, 0.024389;;, - 71;4; 0.022261,-0.996666, 0.071777, 0.023357;;, - 72;4; 0.019665,-0.996736, 0.071819, 0.022279;;, - 73;4; 0.016975,-0.996810, 0.071863, 0.021161;;, - 74;4; 0.014209,-0.996885, 0.071907, 0.020013;;, - 75;4; 0.011390,-0.996962, 0.071953, 0.018841;;, - 76;4; 0.008545,-0.997039, 0.071998, 0.017659;;, - 77;4; 0.005717,-0.997116, 0.072044, 0.016485;;, - 78;4; 0.002983,-0.997191, 0.072088, 0.015349;;, - 79;4; 0.000513,-0.997258, 0.072128, 0.014324;;, - 80;4;-0.000993,-0.997299, 0.072152, 0.013698;;, - 81;4;-0.000993,-0.997299, 0.072152, 0.013698;;, - 82;4; 0.000513,-0.997258, 0.072128, 0.014324;;, - 83;4; 0.002983,-0.997191, 0.072088, 0.015349;;, - 84;4; 0.005717,-0.997116, 0.072044, 0.016485;;, - 85;4; 0.008545,-0.997039, 0.071998, 0.017659;;, - 86;4; 0.011390,-0.996962, 0.071953, 0.018841;;, - 87;4; 0.014209,-0.996885, 0.071907, 0.020013;;, - 88;4; 0.016975,-0.996810, 0.071863, 0.021161;;, - 89;4; 0.019665,-0.996736, 0.071819, 0.022279;;, - 90;4; 0.022261,-0.996666, 0.071777, 0.023357;;, - 91;4; 0.024745,-0.996598, 0.071737, 0.024389;;, - 92;4; 0.027103,-0.996534, 0.071699, 0.025368;;, - 93;4; 0.029318,-0.996473, 0.071664, 0.026288;;, - 94;4; 0.031373,-0.996417, 0.071630, 0.027142;;, - 95;4; 0.033248,-0.996366, 0.071600, 0.027921;;, - 96;4; 0.034924,-0.996321, 0.071573, 0.028617;;, - 97;4; 0.036375,-0.996281, 0.071550, 0.029219;;, - 98;4; 0.037574,-0.996249, 0.071530, 0.029717;;, - 99;4; 0.038487,-0.996224, 0.071516, 0.030097;;, - 100;4; 0.039073,-0.996208, 0.071506, 0.030340;;, - 101;4; 0.039282,-0.996202, 0.071503, 0.030427;;, - 102;4; 0.039060,-0.996208, 0.071507, 0.030335;;, - 103;4; 0.038389,-0.996226, 0.071517, 0.030056;;, - 104;4; 0.037267,-0.996257, 0.071535, 0.029590;;, - 105;4; 0.035702,-0.996300, 0.071561, 0.028940;;, - 106;4; 0.033713,-0.996354, 0.071593, 0.028114;;, - 107;4; 0.031333,-0.996419, 0.071631, 0.027125;;, - 108;4; 0.028613,-0.996493, 0.071675, 0.025995;;, - 109;4; 0.025618,-0.996574, 0.071723, 0.024751;;, - 110;4; 0.022431,-0.996661, 0.071775, 0.023428;;, - 111;4; 0.019145,-0.996751, 0.071828, 0.022062;;, - 112;4; 0.015858,-0.996840, 0.071881, 0.020697;;, - 113;4; 0.012671,-0.996927, 0.071932, 0.019373;;, - 114;4; 0.009676,-0.997008, 0.071980, 0.018130;;, - 115;4; 0.006956,-0.997083, 0.072024, 0.017000;;, - 116;4; 0.004576,-0.997147, 0.072062, 0.016011;;, - 117;4; 0.002587,-0.997202, 0.072094, 0.015185;;, - 118;4; 0.001022,-0.997244, 0.072120, 0.014535;;, - 119;4;-0.000100,-0.997275, 0.072138, 0.014069;;, - 120;4;-0.000771,-0.997293, 0.072149, 0.013790;;, - 121;4;-0.000993,-0.997299, 0.072152, 0.013698;;, - 122;4;-0.000771,-0.997293, 0.072149, 0.013790;;, - 123;4;-0.000100,-0.997275, 0.072138, 0.014069;;, - 124;4; 0.001022,-0.997244, 0.072120, 0.014535;;, - 125;4; 0.002587,-0.997202, 0.072094, 0.015185;;, - 126;4; 0.004576,-0.997147, 0.072062, 0.016011;;, - 127;4; 0.006956,-0.997083, 0.072024, 0.017000;;, - 128;4; 0.009676,-0.997008, 0.071980, 0.018130;;, - 129;4; 0.012671,-0.996927, 0.071932, 0.019373;;, - 130;4; 0.015858,-0.996840, 0.071881, 0.020697;;, - 131;4; 0.019145,-0.996751, 0.071828, 0.022062;;, - 132;4; 0.022431,-0.996661, 0.071775, 0.023428;;, - 133;4; 0.025618,-0.996574, 0.071723, 0.024751;;, - 134;4; 0.028613,-0.996493, 0.071675, 0.025995;;, - 135;4; 0.031333,-0.996419, 0.071631, 0.027125;;, - 136;4; 0.033713,-0.996354, 0.071593, 0.028114;;, - 137;4; 0.035702,-0.996300, 0.071561, 0.028940;;, - 138;4; 0.037267,-0.996257, 0.071535, 0.029590;;, - 139;4; 0.038389,-0.996226, 0.071517, 0.030056;;, - 140;4; 0.039060,-0.996208, 0.071507, 0.030335;;, - 141;4; 0.039282,-0.996202, 0.071503, 0.030427;;, - 142;4; 0.039113,-0.996208, 0.071506, 0.030343;;, - 143;4; 0.038636,-0.996224, 0.071514, 0.030108;;, - 144;4; 0.037890,-0.996249, 0.071526, 0.029740;;, - 145;4; 0.036903,-0.996282, 0.071543, 0.029258;;, - 146;4; 0.035701,-0.996321, 0.071563, 0.028673;;, - 147;4; 0.034303,-0.996367, 0.071586, 0.027997;;, - 148;4; 0.032725,-0.996419, 0.071612, 0.027240;;, - 149;4; 0.030981,-0.996475, 0.071641, 0.026409;;, - 150;4; 0.029082,-0.996536, 0.071672, 0.025511;;, - 151;4; 0.027037,-0.996600, 0.071706, 0.024555;;, - 152;4; 0.024854,-0.996668, 0.071742, 0.023544;;, - 153;4; 0.022538,-0.996739, 0.071780, 0.022486;;, - 154;4; 0.020093,-0.996813, 0.071820, 0.021387;;, - 155;4; 0.017523,-0.996888, 0.071862, 0.020252;;, - 156;4; 0.014827,-0.996965, 0.071905, 0.019090;;, - 157;4; 0.012003,-0.997043, 0.071951, 0.017910;;, - 158;4; 0.009044,-0.997120, 0.071998, 0.016726;;, - 159;4; 0.005935,-0.997194, 0.072048, 0.015563;;, - 160;4; 0.002637,-0.997260, 0.072099, 0.014477;;, - 161;4;-0.000993,-0.997299, 0.072152, 0.013698;;, - 162;4;-0.003931,-0.958043, 0.286297, 0.013159;;, - 163;4;-0.003931,-0.958043, 0.286297, 0.013159;;, - 164;4;-0.003931,-0.958043, 0.286297, 0.013159;;, - 165;4;-0.003931,-0.958043, 0.286297, 0.013159;;, - 166;4;-0.003931,-0.958043, 0.286297, 0.013159;;, - 167;4;-0.003931,-0.958043, 0.286297, 0.013159;;, - 168;4;-0.000993,-0.997299, 0.072152, 0.013698;;, - 169;4;-0.027477,-0.993490, 0.067048, 0.017188;;, - 170;4;-0.101901,-0.981967, 0.063627, 0.027031;;, - 171;4;-0.197396,-0.966974, 0.061971, 0.039674;;, - 172;4;-0.271751,-0.955236, 0.061529, 0.049522;;, - 173;4;-0.298149,-0.951058, 0.061516, 0.053018;;, - 174;4;-0.281324,-0.955151, 0.062330, 0.050813;;, - 175;4;-0.229770,-0.966686, 0.064680, 0.044036;;, - 176;4;-0.152323,-0.981518, 0.067852, 0.033820;;, - 177;4;-0.070052,-0.993110, 0.070622, 0.022920;;, - 178;4;-0.000993,-0.997299, 0.072152, 0.013698;;, - 179;4; 0.068082,-0.993365, 0.072516, 0.004364;;, - 180;4; 0.150399,-0.982078, 0.072003,-0.006850;;, - 181;4; 0.227904,-0.967532, 0.070959,-0.017470;;, - 182;4; 0.279502,-0.956188, 0.070025,-0.024561;;, - 183;4; 0.296344,-0.952157, 0.069673,-0.026878;;, - 184;4; 0.269917,-0.956170, 0.069893,-0.023271;;, - 185;4; 0.195490,-0.967472, 0.070514,-0.013111;;, - 186;4; 0.099915,-0.981984, 0.071311,-0.000066;;, - 187;4; 0.025453,-0.993286, 0.071932, 0.010092;;, - 188;4;-0.000993,-0.997299, 0.072152, 0.013698;;, - 189;4;-0.000993,-0.997299, 0.072152, 0.013698;;, - 190;4;-0.008560,-0.996939, 0.072024, 0.015352;;, - 191;4;-0.029872,-0.995925, 0.071663, 0.020012;;, - 192;4;-0.057237,-0.994622, 0.071199, 0.025995;;, - 193;4;-0.078548,-0.993608, 0.070838, 0.030655;;, - 194;4;-0.086115,-0.993248, 0.070710, 0.032309;;, - 195;4;-0.078548,-0.993608, 0.070838, 0.030655;;, - 196;4;-0.057237,-0.994622, 0.071199, 0.025995;;, - 197;4;-0.029872,-0.995925, 0.071663, 0.020012;;, - 198;4;-0.008560,-0.996939, 0.072024, 0.015352;;, - 199;4;-0.000993,-0.997299, 0.072152, 0.013698;;, - 200;4;-0.000993,-0.997299, 0.072152, 0.013698;;, - 201;4;-0.027423,-0.993189, 0.071207, 0.017192;;, - 202;4;-0.101840,-0.981611, 0.068544, 0.027036;;, - 203;4;-0.197357,-0.966746, 0.065125, 0.039677;;, - 204;4;-0.271739,-0.955168, 0.062462, 0.049523;;, - 205;4;-0.298149,-0.951058, 0.061516, 0.053018;;, - 206;4;-0.281324,-0.955151, 0.062330, 0.050813;;, - 207;4;-0.229770,-0.966686, 0.064680, 0.044036;;, - 208;4;-0.152323,-0.981518, 0.067852, 0.033820;;, - 209;4;-0.070052,-0.993110, 0.070622, 0.022920;;, - 210;4;-0.000993,-0.997299, 0.072152, 0.013698;;, - 211;4; 0.068082,-0.993365, 0.072516, 0.004364;;, - 212;4; 0.150399,-0.982078, 0.072003,-0.006850;;, - 213;4; 0.227904,-0.967532, 0.070959,-0.017470;;, - 214;4; 0.279502,-0.956188, 0.070025,-0.024561;;, - 215;4; 0.296344,-0.952157, 0.069673,-0.026878;;, - 216;4; 0.269928,-0.956170, 0.069893,-0.023270;;, - 217;4; 0.195554,-0.967472, 0.070513,-0.013107;;, - 218;4; 0.100014,-0.981984, 0.071309,-0.000060;;, - 219;4; 0.025501,-0.993286, 0.071931, 0.010095;;, - 220;4;-0.000993,-0.997299, 0.072152, 0.013698;;; - } - AnimationKey { // Scale - 1; - 221; - 0;3; 1.000000, 1.000000, 1.000000;;, - 1;3; 1.000000, 1.000000, 1.000000;;, - 2;3; 1.000000, 1.000000, 1.000000;;, - 3;3; 1.000000, 1.000000, 1.000000;;, - 4;3; 1.000000, 1.000000, 1.000000;;, - 5;3; 1.000000, 1.000000, 1.000000;;, - 6;3; 1.000000, 1.000000, 1.000000;;, - 7;3; 1.000000, 1.000000, 1.000000;;, - 8;3; 1.000000, 1.000000, 1.000000;;, - 9;3; 1.000000, 1.000000, 1.000000;;, - 10;3; 1.000000, 1.000000, 1.000000;;, - 11;3; 1.000000, 1.000000, 1.000000;;, - 12;3; 1.000000, 1.000000, 1.000000;;, - 13;3; 1.000000, 1.000000, 1.000000;;, - 14;3; 1.000000, 1.000000, 1.000000;;, - 15;3; 1.000000, 1.000000, 1.000000;;, - 16;3; 1.000000, 1.000000, 1.000000;;, - 17;3; 1.000000, 1.000000, 1.000000;;, - 18;3; 1.000000, 1.000000, 1.000000;;, - 19;3; 1.000000, 1.000000, 1.000000;;, - 20;3; 1.000000, 1.000000, 1.000000;;, - 21;3; 1.000000, 1.000000, 1.000000;;, - 22;3; 1.000000, 1.000000, 1.000000;;, - 23;3; 1.000000, 1.000000, 1.000000;;, - 24;3; 1.000000, 1.000000, 1.000000;;, - 25;3; 1.000000, 1.000000, 1.000000;;, - 26;3; 1.000000, 1.000000, 1.000000;;, - 27;3; 1.000000, 1.000000, 1.000000;;, - 28;3; 1.000000, 1.000000, 1.000000;;, - 29;3; 1.000000, 1.000000, 1.000000;;, - 30;3; 1.000000, 1.000000, 1.000000;;, - 31;3; 1.000000, 1.000000, 1.000000;;, - 32;3; 1.000000, 1.000000, 1.000000;;, - 33;3; 1.000000, 1.000000, 1.000000;;, - 34;3; 1.000000, 1.000000, 1.000000;;, - 35;3; 1.000000, 1.000000, 1.000000;;, - 36;3; 1.000000, 1.000000, 1.000000;;, - 37;3; 1.000000, 1.000000, 1.000000;;, - 38;3; 1.000000, 1.000000, 1.000000;;, - 39;3; 1.000000, 1.000000, 1.000000;;, - 40;3; 1.000000, 1.000000, 1.000000;;, - 41;3; 1.000000, 1.000000, 1.000000;;, - 42;3; 1.000000, 1.000000, 1.000000;;, - 43;3; 1.000000, 1.000000, 1.000000;;, - 44;3; 1.000000, 1.000000, 1.000000;;, - 45;3; 1.000000, 1.000000, 1.000000;;, - 46;3; 1.000000, 1.000000, 1.000000;;, - 47;3; 1.000000, 1.000000, 1.000000;;, - 48;3; 1.000000, 1.000000, 1.000000;;, - 49;3; 1.000000, 1.000000, 1.000000;;, - 50;3; 1.000000, 1.000000, 1.000000;;, - 51;3; 1.000000, 1.000000, 1.000000;;, - 52;3; 1.000000, 1.000000, 1.000000;;, - 53;3; 1.000000, 1.000000, 1.000000;;, - 54;3; 1.000000, 1.000000, 1.000000;;, - 55;3; 1.000000, 1.000000, 1.000000;;, - 56;3; 1.000000, 1.000000, 1.000000;;, - 57;3; 1.000000, 1.000000, 1.000000;;, - 58;3; 1.000000, 1.000000, 1.000000;;, - 59;3; 1.000000, 1.000000, 1.000000;;, - 60;3; 1.000000, 1.000000, 1.000000;;, - 61;3; 1.000000, 1.000000, 1.000000;;, - 62;3; 1.000000, 1.000000, 1.000000;;, - 63;3; 1.000000, 1.000000, 1.000000;;, - 64;3; 1.000000, 1.000000, 1.000000;;, - 65;3; 1.000000, 1.000000, 1.000000;;, - 66;3; 1.000000, 1.000000, 1.000000;;, - 67;3; 1.000000, 1.000000, 1.000000;;, - 68;3; 1.000000, 1.000000, 1.000000;;, - 69;3; 1.000000, 1.000000, 1.000000;;, - 70;3; 1.000000, 1.000000, 1.000000;;, - 71;3; 1.000000, 1.000000, 1.000000;;, - 72;3; 1.000000, 1.000000, 1.000000;;, - 73;3; 1.000000, 1.000000, 1.000000;;, - 74;3; 1.000000, 1.000000, 1.000000;;, - 75;3; 1.000000, 1.000000, 1.000000;;, - 76;3; 1.000000, 1.000000, 1.000000;;, - 77;3; 1.000000, 1.000000, 1.000000;;, - 78;3; 1.000000, 1.000000, 1.000000;;, - 79;3; 1.000000, 1.000000, 1.000000;;, - 80;3; 1.000000, 1.000000, 1.000000;;, - 81;3; 1.000000, 1.000000, 1.000000;;, - 82;3; 1.000000, 1.000000, 1.000000;;, - 83;3; 1.000000, 1.000000, 1.000000;;, - 84;3; 1.000000, 1.000000, 1.000000;;, - 85;3; 1.000000, 1.000000, 1.000000;;, - 86;3; 1.000000, 1.000000, 1.000000;;, - 87;3; 1.000000, 1.000000, 1.000000;;, - 88;3; 1.000000, 1.000000, 1.000000;;, - 89;3; 1.000000, 1.000000, 1.000000;;, - 90;3; 1.000000, 1.000000, 1.000000;;, - 91;3; 1.000000, 1.000000, 1.000000;;, - 92;3; 1.000000, 1.000000, 1.000000;;, - 93;3; 1.000000, 1.000000, 1.000000;;, - 94;3; 1.000000, 1.000000, 1.000000;;, - 95;3; 1.000000, 1.000000, 1.000000;;, - 96;3; 1.000000, 1.000000, 1.000000;;, - 97;3; 1.000000, 1.000000, 1.000000;;, - 98;3; 1.000000, 1.000000, 1.000000;;, - 99;3; 1.000000, 1.000000, 1.000000;;, - 100;3; 1.000000, 1.000000, 1.000000;;, - 101;3; 1.000000, 1.000000, 1.000000;;, - 102;3; 1.000000, 1.000000, 1.000000;;, - 103;3; 1.000000, 1.000000, 1.000000;;, - 104;3; 1.000000, 1.000000, 1.000000;;, - 105;3; 1.000000, 1.000000, 1.000000;;, - 106;3; 1.000000, 1.000000, 1.000000;;, - 107;3; 1.000000, 1.000000, 1.000000;;, - 108;3; 1.000000, 1.000000, 1.000000;;, - 109;3; 1.000000, 1.000000, 1.000000;;, - 110;3; 1.000000, 1.000000, 1.000000;;, - 111;3; 1.000000, 1.000000, 1.000000;;, - 112;3; 1.000000, 1.000000, 1.000000;;, - 113;3; 1.000000, 1.000000, 1.000000;;, - 114;3; 1.000000, 1.000000, 1.000000;;, - 115;3; 1.000000, 1.000000, 1.000000;;, - 116;3; 1.000000, 1.000000, 1.000000;;, - 117;3; 1.000000, 1.000000, 1.000000;;, - 118;3; 1.000000, 1.000000, 1.000000;;, - 119;3; 1.000000, 1.000000, 1.000000;;, - 120;3; 1.000000, 1.000000, 1.000000;;, - 121;3; 1.000000, 1.000000, 1.000000;;, - 122;3; 1.000000, 1.000000, 1.000000;;, - 123;3; 1.000000, 1.000000, 1.000000;;, - 124;3; 1.000000, 1.000000, 1.000000;;, - 125;3; 1.000000, 1.000000, 1.000000;;, - 126;3; 1.000000, 1.000000, 1.000000;;, - 127;3; 1.000000, 1.000000, 1.000000;;, - 128;3; 1.000000, 1.000000, 1.000000;;, - 129;3; 1.000000, 1.000000, 1.000000;;, - 130;3; 1.000000, 1.000000, 1.000000;;, - 131;3; 1.000000, 1.000000, 1.000000;;, - 132;3; 1.000000, 1.000000, 1.000000;;, - 133;3; 1.000000, 1.000000, 1.000000;;, - 134;3; 1.000000, 1.000000, 1.000000;;, - 135;3; 1.000000, 1.000000, 1.000000;;, - 136;3; 1.000000, 1.000000, 1.000000;;, - 137;3; 1.000000, 1.000000, 1.000000;;, - 138;3; 1.000000, 1.000000, 1.000000;;, - 139;3; 1.000000, 1.000000, 1.000000;;, - 140;3; 1.000000, 1.000000, 1.000000;;, - 141;3; 1.000000, 1.000000, 1.000000;;, - 142;3; 1.000000, 1.000000, 1.000000;;, - 143;3; 1.000000, 1.000000, 1.000000;;, - 144;3; 1.000000, 1.000000, 1.000000;;, - 145;3; 1.000000, 1.000000, 1.000000;;, - 146;3; 1.000000, 1.000000, 1.000000;;, - 147;3; 1.000000, 1.000000, 1.000000;;, - 148;3; 1.000000, 1.000000, 1.000000;;, - 149;3; 1.000000, 1.000000, 1.000000;;, - 150;3; 1.000000, 1.000000, 1.000000;;, - 151;3; 1.000000, 1.000000, 1.000000;;, - 152;3; 1.000000, 1.000000, 1.000000;;, - 153;3; 1.000000, 1.000000, 1.000000;;, - 154;3; 1.000000, 1.000000, 1.000000;;, - 155;3; 1.000000, 1.000000, 1.000000;;, - 156;3; 1.000000, 1.000000, 1.000000;;, - 157;3; 1.000000, 1.000000, 1.000000;;, - 158;3; 1.000000, 1.000000, 1.000000;;, - 159;3; 1.000000, 1.000000, 1.000000;;, - 160;3; 1.000000, 1.000000, 1.000000;;, - 161;3; 1.000000, 1.000000, 1.000000;;, - 162;3; 1.000000, 1.000000, 1.000000;;, - 163;3; 1.000000, 1.000000, 1.000000;;, - 164;3; 1.000000, 1.000000, 1.000000;;, - 165;3; 1.000000, 1.000000, 1.000000;;, - 166;3; 1.000000, 1.000000, 1.000000;;, - 167;3; 1.000000, 1.000000, 1.000000;;, - 168;3; 1.000000, 1.000000, 1.000000;;, - 169;3; 1.000000, 1.000000, 1.000000;;, - 170;3; 1.000000, 1.000000, 1.000000;;, - 171;3; 1.000000, 1.000000, 1.000000;;, - 172;3; 1.000000, 1.000000, 1.000000;;, - 173;3; 1.000000, 1.000000, 1.000000;;, - 174;3; 1.000000, 1.000000, 1.000000;;, - 175;3; 1.000000, 1.000000, 1.000000;;, - 176;3; 1.000000, 1.000000, 1.000000;;, - 177;3; 1.000000, 1.000000, 1.000000;;, - 178;3; 1.000000, 1.000000, 1.000000;;, - 179;3; 1.000000, 1.000000, 1.000000;;, - 180;3; 1.000000, 1.000000, 1.000000;;, - 181;3; 1.000000, 1.000000, 1.000000;;, - 182;3; 1.000000, 1.000000, 1.000000;;, - 183;3; 1.000000, 1.000000, 1.000000;;, - 184;3; 1.000000, 1.000000, 1.000000;;, - 185;3; 1.000000, 1.000000, 1.000000;;, - 186;3; 1.000000, 1.000000, 1.000000;;, - 187;3; 1.000000, 1.000000, 1.000000;;, - 188;3; 1.000000, 1.000000, 1.000000;;, - 189;3; 1.000000, 1.000000, 1.000000;;, - 190;3; 1.000000, 1.000000, 1.000000;;, - 191;3; 1.000000, 1.000000, 1.000000;;, - 192;3; 1.000000, 1.000000, 1.000000;;, - 193;3; 1.000000, 1.000000, 1.000000;;, - 194;3; 1.000000, 1.000000, 1.000000;;, - 195;3; 1.000000, 1.000000, 1.000000;;, - 196;3; 1.000000, 1.000000, 1.000000;;, - 197;3; 1.000000, 1.000000, 1.000000;;, - 198;3; 1.000000, 1.000000, 1.000000;;, - 199;3; 1.000000, 1.000000, 1.000000;;, - 200;3; 1.000000, 1.000000, 1.000000;;, - 201;3; 1.000000, 1.000000, 1.000000;;, - 202;3; 1.000000, 1.000000, 1.000000;;, - 203;3; 1.000000, 1.000000, 1.000000;;, - 204;3; 1.000000, 1.000000, 1.000000;;, - 205;3; 1.000000, 1.000000, 1.000000;;, - 206;3; 1.000000, 1.000000, 1.000000;;, - 207;3; 1.000000, 1.000000, 1.000000;;, - 208;3; 1.000000, 1.000000, 1.000000;;, - 209;3; 1.000000, 1.000000, 1.000000;;, - 210;3; 1.000000, 1.000000, 1.000000;;, - 211;3; 1.000000, 1.000000, 1.000000;;, - 212;3; 1.000000, 1.000000, 1.000000;;, - 213;3; 1.000000, 1.000000, 1.000000;;, - 214;3; 1.000000, 1.000000, 1.000000;;, - 215;3; 1.000000, 1.000000, 1.000000;;, - 216;3; 1.000000, 1.000000, 1.000000;;, - 217;3; 1.000000, 1.000000, 1.000000;;, - 218;3; 1.000000, 1.000000, 1.000000;;, - 219;3; 1.000000, 1.000000, 1.000000;;, - 220;3; 1.000000, 1.000000, 1.000000;;; - } - AnimationKey { // Position - 2; - 221; - 0;3;-2.000000, 6.750000,-0.000000;;, - 1;3;-2.000000, 6.750000, 0.000000;;, - 2;3;-2.000000, 6.750000,-0.000000;;, - 3;3;-2.000000, 6.750000, 0.000000;;, - 4;3;-2.000000, 6.750000, 0.000000;;, - 5;3;-2.000000, 6.750000, 0.000000;;, - 6;3;-2.000000, 6.750000, 0.000000;;, - 7;3;-2.000000, 6.750000, 0.000000;;, - 8;3;-2.000000, 6.750000,-0.000000;;, - 9;3;-2.000000, 6.750000,-0.000000;;, - 10;3;-2.000000, 6.750000,-0.000000;;, - 11;3;-2.000000, 6.750000,-0.000000;;, - 12;3;-2.000000, 6.750000, 0.000000;;, - 13;3;-2.000000, 6.750000,-0.000000;;, - 14;3;-2.000000, 6.750000, 0.000000;;, - 15;3;-2.000000, 6.750000,-0.000000;;, - 16;3;-2.000000, 6.750000,-0.000000;;, - 17;3;-2.000000, 6.750000,-0.000000;;, - 18;3;-2.000000, 6.750000,-0.000000;;, - 19;3;-2.000000, 6.750000, 0.000000;;, - 20;3;-2.000000, 6.750000,-0.000000;;, - 21;3;-2.000000, 6.750000, 0.000000;;, - 22;3;-2.000000, 6.750000,-0.000000;;, - 23;3;-2.000000, 6.750000,-0.000000;;, - 24;3;-2.000000, 6.750000,-0.000000;;, - 25;3;-2.000000, 6.750000, 0.000000;;, - 26;3;-2.000000, 6.750000, 0.000000;;, - 27;3;-2.000000, 6.750000, 0.000000;;, - 28;3;-2.000000, 6.750000, 0.000000;;, - 29;3;-2.000000, 6.750000,-0.000000;;, - 30;3;-2.000000, 6.750000,-0.000000;;, - 31;3;-2.000000, 6.750000, 0.000000;;, - 32;3;-2.000000, 6.750000, 0.000000;;, - 33;3;-2.000000, 6.750000,-0.000000;;, - 34;3;-2.000000, 6.750000,-0.000000;;, - 35;3;-2.000000, 6.750000, 0.000000;;, - 36;3;-2.000000, 6.750000, 0.000000;;, - 37;3;-2.000000, 6.750000, 0.000000;;, - 38;3;-2.000000, 6.750000,-0.000000;;, - 39;3;-2.000000, 6.750000, 0.000000;;, - 40;3;-2.000000, 6.750000,-0.000000;;, - 41;3;-2.000000, 6.750000, 0.000000;;, - 42;3;-2.000000, 6.750000, 0.000000;;, - 43;3;-2.000000, 6.750000, 0.000000;;, - 44;3;-2.000000, 6.750000, 0.000000;;, - 45;3;-2.000000, 6.750000,-0.000000;;, - 46;3;-2.000000, 6.750000,-0.000000;;, - 47;3;-2.000000, 6.750000, 0.000000;;, - 48;3;-2.000000, 6.750000,-0.000000;;, - 49;3;-2.000000, 6.750000,-0.000000;;, - 50;3;-2.000000, 6.750000,-0.000000;;, - 51;3;-2.000000, 6.750000,-0.000000;;, - 52;3;-2.000000, 6.750000, 0.000000;;, - 53;3;-2.000000, 6.750000, 0.000000;;, - 54;3;-2.000000, 6.750000,-0.000000;;, - 55;3;-2.000000, 6.750000, 0.000000;;, - 56;3;-2.000000, 6.750000,-0.000000;;, - 57;3;-2.000000, 6.750000,-0.000000;;, - 58;3;-2.000000, 6.750000,-0.000000;;, - 59;3;-2.000000, 6.750000, 0.000000;;, - 60;3;-2.000000, 6.750000,-0.000000;;, - 61;3;-2.000000, 6.750000,-0.000000;;, - 62;3;-2.000000, 6.750000, 0.000000;;, - 63;3;-2.000000, 6.750000, 0.000000;;, - 64;3;-2.000000, 6.750000, 0.000000;;, - 65;3;-2.000000, 6.750000, 0.000000;;, - 66;3;-2.000000, 6.750000, 0.000000;;, - 67;3;-2.000000, 6.750000,-0.000000;;, - 68;3;-2.000000, 6.750000, 0.000000;;, - 69;3;-2.000000, 6.750000,-0.000000;;, - 70;3;-2.000000, 6.750000, 0.000000;;, - 71;3;-2.000000, 6.750000, 0.000000;;, - 72;3;-2.000000, 6.750000, 0.000000;;, - 73;3;-2.000000, 6.750000,-0.000000;;, - 74;3;-2.000000, 6.750000,-0.000000;;, - 75;3;-2.000000, 6.750000, 0.000000;;, - 76;3;-2.000000, 6.750000, 0.000000;;, - 77;3;-2.000000, 6.750000,-0.000000;;, - 78;3;-2.000000, 6.750001,-0.000000;;, - 79;3;-2.000000, 6.750000, 0.000000;;, - 80;3;-2.000000, 6.750000,-0.000000;;, - 81;3;-2.000000, 6.750000, 0.000000;;, - 82;3;-2.000000, 6.750000, 0.000000;;, - 83;3;-2.000000, 6.750000, 0.000000;;, - 84;3;-2.000000, 6.750000, 0.000000;;, - 85;3;-2.000000, 6.750000,-0.000000;;, - 86;3;-2.000000, 6.750000, 0.000000;;, - 87;3;-2.000000, 6.750000,-0.000000;;, - 88;3;-2.000000, 6.750000, 0.000000;;, - 89;3;-2.000000, 6.750000,-0.000000;;, - 90;3;-2.000000, 6.750000,-0.000000;;, - 91;3;-2.000000, 6.750000, 0.000000;;, - 92;3;-2.000000, 6.750000,-0.000000;;, - 93;3;-2.000000, 6.750000, 0.000000;;, - 94;3;-2.000000, 6.750000,-0.000000;;, - 95;3;-2.000000, 6.750000, 0.000000;;, - 96;3;-2.000000, 6.750000,-0.000000;;, - 97;3;-2.000000, 6.750000, 0.000000;;, - 98;3;-2.000000, 6.750000,-0.000000;;, - 99;3;-2.000000, 6.750000,-0.000000;;, - 100;3;-2.000000, 6.750000, 0.000000;;, - 101;3;-2.000000, 6.750000,-0.000000;;, - 102;3;-2.000000, 6.750000, 0.000000;;, - 103;3;-2.000000, 6.750000,-0.000000;;, - 104;3;-2.000000, 6.750000, 0.000000;;, - 105;3;-2.000000, 6.750000,-0.000000;;, - 106;3;-2.000000, 6.750000,-0.000000;;, - 107;3;-2.000000, 6.750000, 0.000000;;, - 108;3;-2.000000, 6.750000, 0.000000;;, - 109;3;-2.000000, 6.750000,-0.000000;;, - 110;3;-2.000000, 6.750000,-0.000000;;, - 111;3;-2.000000, 6.750000,-0.000000;;, - 112;3;-2.000000, 6.750000,-0.000000;;, - 113;3;-2.000000, 6.750000,-0.000000;;, - 114;3;-2.000000, 6.750000,-0.000000;;, - 115;3;-2.000000, 6.750000,-0.000000;;, - 116;3;-2.000000, 6.750000,-0.000000;;, - 117;3;-2.000000, 6.750000,-0.000000;;, - 118;3;-2.000000, 6.750000, 0.000000;;, - 119;3;-2.000000, 6.750000,-0.000000;;, - 120;3;-2.000000, 6.750000, 0.000000;;, - 121;3;-2.000000, 6.750000, 0.000000;;, - 122;3;-2.000000, 6.750000, 0.000000;;, - 123;3;-2.000000, 6.750000,-0.000000;;, - 124;3;-2.000000, 6.750000,-0.000000;;, - 125;3;-2.000000, 6.750000,-0.000000;;, - 126;3;-2.000000, 6.750000, 0.000000;;, - 127;3;-2.000000, 6.750000,-0.000000;;, - 128;3;-2.000000, 6.750000, 0.000000;;, - 129;3;-2.000000, 6.750000,-0.000000;;, - 130;3;-2.000000, 6.750000, 0.000000;;, - 131;3;-2.000000, 6.750000, 0.000000;;, - 132;3;-2.000000, 6.750000,-0.000000;;, - 133;3;-2.000000, 6.750000,-0.000000;;, - 134;3;-2.000000, 6.750000, 0.000000;;, - 135;3;-2.000000, 6.750000, 0.000000;;, - 136;3;-2.000000, 6.750000,-0.000000;;, - 137;3;-2.000000, 6.750000, 0.000000;;, - 138;3;-2.000000, 6.750000,-0.000000;;, - 139;3;-2.000000, 6.750000, 0.000000;;, - 140;3;-2.000000, 6.750000,-0.000000;;, - 141;3;-2.000000, 6.750000,-0.000000;;, - 142;3;-2.000000, 6.750000,-0.000000;;, - 143;3;-2.000000, 6.750000,-0.000000;;, - 144;3;-2.000000, 6.750000, 0.000000;;, - 145;3;-2.000000, 6.750000,-0.000000;;, - 146;3;-2.000000, 6.750000, 0.000000;;, - 147;3;-2.000000, 6.750000, 0.000000;;, - 148;3;-2.000000, 6.750000,-0.000000;;, - 149;3;-2.000000, 6.750000,-0.000000;;, - 150;3;-2.000000, 6.750000,-0.000000;;, - 151;3;-2.000000, 6.750000,-0.000000;;, - 152;3;-2.000000, 6.750000,-0.000000;;, - 153;3;-2.000000, 6.750000, 0.000000;;, - 154;3;-2.000000, 6.750000,-0.000000;;, - 155;3;-2.000000, 6.750000,-0.000000;;, - 156;3;-2.000000, 6.750000,-0.000000;;, - 157;3;-2.000000, 6.750000,-0.000000;;, - 158;3;-2.000000, 6.750000, 0.000000;;, - 159;3;-2.000000, 6.750000, 0.000000;;, - 160;3;-2.000000, 6.750000, 0.000000;;, - 161;3;-2.000000, 6.750000, 0.000000;;, - 162;3;-2.000000, 6.750000, 0.000000;;, - 163;3;-2.000000, 6.750000, 0.000000;;, - 164;3;-2.000000, 6.750000, 0.000000;;, - 165;3;-2.000000, 6.750000, 0.000000;;, - 166;3;-2.000000, 6.750000, 0.000000;;, - 167;3;-2.000000, 6.750000, 0.000000;;, - 168;3;-2.000000, 6.750000,-0.000000;;, - 169;3;-2.000000, 6.750000,-0.000000;;, - 170;3;-2.000000, 6.750000,-0.000000;;, - 171;3;-2.000000, 6.750000,-0.000000;;, - 172;3;-2.000000, 6.750000,-0.000000;;, - 173;3;-2.000000, 6.750000,-0.000000;;, - 174;3;-2.000000, 6.750000,-0.000000;;, - 175;3;-2.000000, 6.750000,-0.000000;;, - 176;3;-2.000000, 6.750000,-0.000000;;, - 177;3;-2.000000, 6.750000,-0.000000;;, - 178;3;-2.000000, 6.750000,-0.000000;;, - 179;3;-2.000000, 6.750000,-0.000000;;, - 180;3;-2.000000, 6.750000,-0.000000;;, - 181;3;-2.000000, 6.750000,-0.000000;;, - 182;3;-2.000000, 6.750000,-0.000000;;, - 183;3;-2.000000, 6.750000,-0.000000;;, - 184;3;-2.000000, 6.750000,-0.000000;;, - 185;3;-2.000000, 6.750000,-0.000000;;, - 186;3;-2.000000, 6.750000,-0.000000;;, - 187;3;-2.000000, 6.750000,-0.000000;;, - 188;3;-2.000000, 6.750000,-0.000000;;, - 189;3;-2.000000, 6.750000,-0.000000;;, - 190;3;-2.000000, 6.750000, 0.000000;;, - 191;3;-2.000000, 6.750000, 0.000000;;, - 192;3;-2.000000, 6.750000,-0.000000;;, - 193;3;-2.000000, 6.750001, 0.000000;;, - 194;3;-2.000000, 6.750001, 0.000000;;, - 195;3;-2.000000, 6.750001, 0.000000;;, - 196;3;-2.000000, 6.750000,-0.000000;;, - 197;3;-2.000000, 6.750000, 0.000000;;, - 198;3;-2.000000, 6.750000, 0.000000;;, - 199;3;-2.000000, 6.750000,-0.000000;;, - 200;3;-2.000000, 6.750000,-0.000000;;, - 201;3;-2.000000, 6.750000,-0.000000;;, - 202;3;-2.000000, 6.750000,-0.000000;;, - 203;3;-2.000000, 6.750000, 0.000000;;, - 204;3;-2.000000, 6.750000,-0.000000;;, - 205;3;-2.000000, 6.750000,-0.000000;;, - 206;3;-2.000000, 6.750000, 0.000000;;, - 207;3;-2.000000, 6.750000,-0.000000;;, - 208;3;-2.000000, 6.750000, 0.000000;;, - 209;3;-2.000000, 6.750000,-0.000000;;, - 210;3;-2.000000, 6.750001, 0.000000;;, - 211;3;-2.000000, 6.750000,-0.000000;;, - 212;3;-2.000000, 6.750000, 0.000000;;, - 213;3;-2.000000, 6.750000, 0.000000;;, - 214;3;-2.000000, 6.750000, 0.000000;;, - 215;3;-2.000000, 6.750000,-0.000000;;, - 216;3;-2.000000, 6.750000,-0.000000;;, - 217;3;-2.000000, 6.750000, 0.000000;;, - 218;3;-2.000000, 6.750000, 0.000000;;, - 219;3;-2.000000, 6.750000, 0.000000;;, - 220;3;-2.000000, 6.750000,-0.000000;;; - } - } - Animation { - {Armature_Arm_Right} - AnimationKey { // Rotation - 0; - 221; - 0;4;-0.000993,-0.997299,-0.072152,-0.013698;;, - 1;4;-0.000771,-0.997293,-0.072149,-0.013790;;, - 2;4;-0.000100,-0.997275,-0.072138,-0.014069;;, - 3;4; 0.001022,-0.997244,-0.072120,-0.014535;;, - 4;4; 0.002587,-0.997202,-0.072094,-0.015185;;, - 5;4; 0.004576,-0.997147,-0.072062,-0.016011;;, - 6;4; 0.006956,-0.997083,-0.072024,-0.017000;;, - 7;4; 0.009676,-0.997008,-0.071980,-0.018130;;, - 8;4; 0.012671,-0.996927,-0.071932,-0.019373;;, - 9;4; 0.015858,-0.996840,-0.071881,-0.020697;;, - 10;4; 0.019145,-0.996751,-0.071828,-0.022062;;, - 11;4; 0.022431,-0.996661,-0.071775,-0.023428;;, - 12;4; 0.025618,-0.996574,-0.071723,-0.024751;;, - 13;4; 0.028613,-0.996493,-0.071675,-0.025995;;, - 14;4; 0.031333,-0.996419,-0.071631,-0.027125;;, - 15;4; 0.033713,-0.996354,-0.071593,-0.028114;;, - 16;4; 0.035702,-0.996300,-0.071561,-0.028940;;, - 17;4; 0.037267,-0.996257,-0.071535,-0.029590;;, - 18;4; 0.038389,-0.996226,-0.071517,-0.030056;;, - 19;4; 0.039060,-0.996208,-0.071507,-0.030335;;, - 20;4; 0.039282,-0.996202,-0.071503,-0.030427;;, - 21;4; 0.039060,-0.996208,-0.071507,-0.030335;;, - 22;4; 0.038389,-0.996226,-0.071517,-0.030056;;, - 23;4; 0.037267,-0.996257,-0.071535,-0.029590;;, - 24;4; 0.035702,-0.996300,-0.071561,-0.028940;;, - 25;4; 0.033713,-0.996354,-0.071593,-0.028114;;, - 26;4; 0.031333,-0.996419,-0.071631,-0.027125;;, - 27;4; 0.028613,-0.996493,-0.071675,-0.025995;;, - 28;4; 0.025618,-0.996574,-0.071723,-0.024751;;, - 29;4; 0.022431,-0.996661,-0.071775,-0.023428;;, - 30;4; 0.019145,-0.996751,-0.071828,-0.022062;;, - 31;4; 0.015858,-0.996840,-0.071881,-0.020697;;, - 32;4; 0.012671,-0.996927,-0.071932,-0.019373;;, - 33;4; 0.009676,-0.997008,-0.071980,-0.018130;;, - 34;4; 0.006956,-0.997083,-0.072024,-0.017000;;, - 35;4; 0.004576,-0.997147,-0.072062,-0.016011;;, - 36;4; 0.002587,-0.997202,-0.072094,-0.015185;;, - 37;4; 0.001022,-0.997244,-0.072120,-0.014535;;, - 38;4;-0.000100,-0.997275,-0.072138,-0.014069;;, - 39;4;-0.000771,-0.997293,-0.072149,-0.013790;;, - 40;4;-0.000993,-0.997299,-0.072152,-0.013698;;, - 41;4;-0.000771,-0.997293,-0.072149,-0.013790;;, - 42;4;-0.000100,-0.997275,-0.072138,-0.014069;;, - 43;4; 0.001022,-0.997244,-0.072120,-0.014535;;, - 44;4; 0.002587,-0.997202,-0.072094,-0.015185;;, - 45;4; 0.004576,-0.997147,-0.072062,-0.016011;;, - 46;4; 0.006956,-0.997083,-0.072024,-0.017000;;, - 47;4; 0.009676,-0.997008,-0.071980,-0.018130;;, - 48;4; 0.012671,-0.996927,-0.071932,-0.019373;;, - 49;4; 0.015858,-0.996840,-0.071881,-0.020697;;, - 50;4; 0.019145,-0.996751,-0.071828,-0.022062;;, - 51;4; 0.022431,-0.996661,-0.071775,-0.023428;;, - 52;4; 0.025618,-0.996574,-0.071723,-0.024751;;, - 53;4; 0.028613,-0.996493,-0.071675,-0.025995;;, - 54;4; 0.031333,-0.996419,-0.071631,-0.027125;;, - 55;4; 0.033713,-0.996354,-0.071593,-0.028114;;, - 56;4; 0.035702,-0.996300,-0.071561,-0.028940;;, - 57;4; 0.037267,-0.996257,-0.071535,-0.029590;;, - 58;4; 0.038389,-0.996226,-0.071517,-0.030056;;, - 59;4; 0.039060,-0.996208,-0.071507,-0.030335;;, - 60;4; 0.039282,-0.996202,-0.071503,-0.030427;;, - 61;4; 0.039073,-0.996208,-0.071506,-0.030340;;, - 62;4; 0.038487,-0.996224,-0.071516,-0.030097;;, - 63;4; 0.037574,-0.996249,-0.071530,-0.029717;;, - 64;4; 0.036375,-0.996281,-0.071550,-0.029219;;, - 65;4; 0.034924,-0.996321,-0.071573,-0.028617;;, - 66;4; 0.033248,-0.996366,-0.071600,-0.027921;;, - 67;4; 0.031373,-0.996417,-0.071630,-0.027142;;, - 68;4; 0.029318,-0.996473,-0.071664,-0.026288;;, - 69;4; 0.027103,-0.996534,-0.071699,-0.025368;;, - 70;4; 0.024745,-0.996598,-0.071737,-0.024389;;, - 71;4; 0.022261,-0.996666,-0.071777,-0.023357;;, - 72;4; 0.019665,-0.996736,-0.071819,-0.022279;;, - 73;4; 0.016975,-0.996810,-0.071863,-0.021161;;, - 74;4; 0.014209,-0.996885,-0.071907,-0.020013;;, - 75;4; 0.011390,-0.996962,-0.071953,-0.018841;;, - 76;4; 0.008545,-0.997039,-0.071998,-0.017659;;, - 77;4; 0.005717,-0.997116,-0.072044,-0.016485;;, - 78;4; 0.002983,-0.997191,-0.072088,-0.015349;;, - 79;4; 0.000513,-0.997258,-0.072128,-0.014324;;, - 80;4;-0.000993,-0.997299,-0.072152,-0.013698;;, - 81;4;-0.000993,-0.997299,-0.072152,-0.013698;;, - 82;4; 0.000513,-0.997258,-0.072128,-0.014324;;, - 83;4; 0.002983,-0.997191,-0.072088,-0.015349;;, - 84;4; 0.005717,-0.997116,-0.072044,-0.016485;;, - 85;4; 0.008545,-0.997039,-0.071998,-0.017659;;, - 86;4; 0.011390,-0.996962,-0.071953,-0.018841;;, - 87;4; 0.014209,-0.996885,-0.071907,-0.020013;;, - 88;4; 0.016975,-0.996810,-0.071863,-0.021161;;, - 89;4; 0.019665,-0.996736,-0.071819,-0.022279;;, - 90;4; 0.022261,-0.996666,-0.071777,-0.023357;;, - 91;4; 0.024745,-0.996598,-0.071737,-0.024389;;, - 92;4; 0.027103,-0.996534,-0.071699,-0.025368;;, - 93;4; 0.029318,-0.996473,-0.071664,-0.026288;;, - 94;4; 0.031373,-0.996417,-0.071630,-0.027142;;, - 95;4; 0.033248,-0.996366,-0.071600,-0.027921;;, - 96;4; 0.034924,-0.996321,-0.071573,-0.028617;;, - 97;4; 0.036375,-0.996281,-0.071550,-0.029219;;, - 98;4; 0.037574,-0.996249,-0.071530,-0.029717;;, - 99;4; 0.038487,-0.996224,-0.071516,-0.030097;;, - 100;4; 0.039073,-0.996208,-0.071506,-0.030340;;, - 101;4; 0.039282,-0.996202,-0.071503,-0.030427;;, - 102;4; 0.039060,-0.996208,-0.071507,-0.030335;;, - 103;4; 0.038389,-0.996226,-0.071517,-0.030056;;, - 104;4; 0.037267,-0.996257,-0.071535,-0.029590;;, - 105;4; 0.035702,-0.996300,-0.071561,-0.028940;;, - 106;4; 0.033713,-0.996354,-0.071593,-0.028114;;, - 107;4; 0.031333,-0.996419,-0.071631,-0.027125;;, - 108;4; 0.028613,-0.996493,-0.071675,-0.025995;;, - 109;4; 0.025618,-0.996574,-0.071723,-0.024751;;, - 110;4; 0.022431,-0.996661,-0.071775,-0.023428;;, - 111;4; 0.019145,-0.996751,-0.071828,-0.022062;;, - 112;4; 0.015858,-0.996840,-0.071881,-0.020697;;, - 113;4; 0.012671,-0.996927,-0.071932,-0.019373;;, - 114;4; 0.009676,-0.997008,-0.071980,-0.018130;;, - 115;4; 0.006956,-0.997083,-0.072024,-0.017000;;, - 116;4; 0.004576,-0.997147,-0.072062,-0.016011;;, - 117;4; 0.002587,-0.997202,-0.072094,-0.015185;;, - 118;4; 0.001022,-0.997244,-0.072120,-0.014535;;, - 119;4;-0.000100,-0.997275,-0.072138,-0.014069;;, - 120;4;-0.000771,-0.997293,-0.072149,-0.013790;;, - 121;4;-0.000993,-0.997299,-0.072152,-0.013698;;, - 122;4;-0.000771,-0.997293,-0.072149,-0.013790;;, - 123;4;-0.000100,-0.997275,-0.072138,-0.014069;;, - 124;4; 0.001022,-0.997244,-0.072120,-0.014535;;, - 125;4; 0.002587,-0.997202,-0.072094,-0.015185;;, - 126;4; 0.004576,-0.997147,-0.072062,-0.016011;;, - 127;4; 0.006956,-0.997083,-0.072024,-0.017000;;, - 128;4; 0.009676,-0.997008,-0.071980,-0.018130;;, - 129;4; 0.012671,-0.996927,-0.071932,-0.019373;;, - 130;4; 0.015858,-0.996840,-0.071881,-0.020697;;, - 131;4; 0.019145,-0.996751,-0.071828,-0.022062;;, - 132;4; 0.022431,-0.996661,-0.071775,-0.023428;;, - 133;4; 0.025618,-0.996574,-0.071723,-0.024751;;, - 134;4; 0.028613,-0.996493,-0.071675,-0.025995;;, - 135;4; 0.031333,-0.996419,-0.071631,-0.027125;;, - 136;4; 0.033713,-0.996354,-0.071593,-0.028114;;, - 137;4; 0.035702,-0.996300,-0.071561,-0.028940;;, - 138;4; 0.037267,-0.996257,-0.071535,-0.029590;;, - 139;4; 0.038389,-0.996226,-0.071517,-0.030056;;, - 140;4; 0.039060,-0.996208,-0.071507,-0.030335;;, - 141;4; 0.039282,-0.996202,-0.071503,-0.030427;;, - 142;4; 0.039113,-0.996208,-0.071506,-0.030343;;, - 143;4; 0.038636,-0.996224,-0.071514,-0.030108;;, - 144;4; 0.037890,-0.996249,-0.071526,-0.029740;;, - 145;4; 0.036903,-0.996282,-0.071543,-0.029258;;, - 146;4; 0.035701,-0.996321,-0.071563,-0.028673;;, - 147;4; 0.034303,-0.996367,-0.071586,-0.027997;;, - 148;4; 0.032725,-0.996419,-0.071612,-0.027240;;, - 149;4; 0.030981,-0.996475,-0.071641,-0.026409;;, - 150;4; 0.029082,-0.996536,-0.071672,-0.025511;;, - 151;4; 0.027037,-0.996600,-0.071706,-0.024555;;, - 152;4; 0.024854,-0.996668,-0.071742,-0.023544;;, - 153;4; 0.022538,-0.996739,-0.071780,-0.022486;;, - 154;4; 0.020093,-0.996813,-0.071820,-0.021387;;, - 155;4; 0.017523,-0.996888,-0.071862,-0.020252;;, - 156;4; 0.014827,-0.996965,-0.071905,-0.019090;;, - 157;4; 0.012003,-0.997043,-0.071951,-0.017910;;, - 158;4; 0.009044,-0.997120,-0.071998,-0.016726;;, - 159;4; 0.005935,-0.997194,-0.072048,-0.015563;;, - 160;4; 0.002637,-0.997260,-0.072099,-0.014477;;, - 161;4;-0.000993,-0.997299,-0.072152,-0.013698;;, - 162;4;-0.003931,-0.958043,-0.286297,-0.013159;;, - 163;4;-0.003931,-0.958043,-0.286297,-0.013159;;, - 164;4;-0.003931,-0.958043,-0.286297,-0.013159;;, - 165;4;-0.003931,-0.958043,-0.286297,-0.013159;;, - 166;4;-0.003931,-0.958043,-0.286297,-0.013159;;, - 167;4;-0.003931,-0.958043,-0.286297,-0.013159;;, - 168;4;-0.000993,-0.997299,-0.072152,-0.013698;;, - 169;4; 0.036332,-0.993297,-0.071786,-0.010879;;, - 170;4; 0.112793,-0.981996,-0.071141,-0.000866;;, - 171;4; 0.203761,-0.967480,-0.070405, 0.012512;;, - 172;4; 0.272366,-0.956172,-0.069860, 0.023094;;, - 173;4; 0.296344,-0.952157,-0.069673, 0.026878;;, - 174;4; 0.279502,-0.956188,-0.070025, 0.024561;;, - 175;4; 0.227904,-0.967532,-0.070959, 0.017470;;, - 176;4; 0.150399,-0.982078,-0.072003, 0.006850;;, - 177;4; 0.068082,-0.993365,-0.072516,-0.004364;;, - 178;4;-0.000993,-0.997299,-0.072152,-0.013698;;, - 179;4;-0.070052,-0.993110,-0.070622,-0.022920;;, - 180;4;-0.152323,-0.981518,-0.067852,-0.033820;;, - 181;4;-0.229770,-0.966686,-0.064680,-0.044036;;, - 182;4;-0.281324,-0.955151,-0.062330,-0.050813;;, - 183;4;-0.298149,-0.951058,-0.061516,-0.053018;;, - 184;4;-0.272274,-0.955135,-0.062466,-0.049489;;, - 185;4;-0.200485,-0.966552,-0.065153,-0.039481;;, - 186;4;-0.106850,-0.981306,-0.068589,-0.026720;;, - 187;4;-0.029983,-0.993038,-0.071230,-0.017030;;, - 188;4;-0.000993,-0.997299,-0.072152,-0.013698;;, - 189;4;-0.835223,-0.536092, 0.025756,-0.119768;;, - 190;4;-0.803190,-0.565877, 0.021817,-0.111188;;, - 191;4;-0.718123,-0.648320, 0.010758,-0.086705;;, - 192;4;-0.614364,-0.752494,-0.003390,-0.054941;;, - 193;4;-0.534783,-0.833219,-0.014396,-0.030130;;, - 194;4;-0.506110,-0.862010,-0.018307,-0.021347;;, - 195;4;-0.535306,-0.833106,-0.014394,-0.030099;;, - 196;4;-0.617424,-0.751827,-0.003381,-0.054756;;, - 197;4;-0.723034,-0.647269, 0.010771,-0.086406;;, - 198;4;-0.805709,-0.565357, 0.021822,-0.111033;;, - 199;4;-0.835223,-0.536092, 0.025756,-0.119768;;, - 200;4;-0.538721,-0.840702,-0.006530,-0.054381;;, - 201;4;-0.565325,-0.813340,-0.003643,-0.060179;;, - 202;4;-0.639822,-0.736773, 0.004459,-0.076535;;, - 203;4;-0.734957,-0.639059, 0.014825,-0.097566;;, - 204;4;-0.808923,-0.563104, 0.022890,-0.113952;;, - 205;4;-0.835223,-0.536092, 0.025756,-0.119768;;, - 206;4;-0.805969,-0.565062, 0.021840,-0.111019;;, - 207;4;-0.723567,-0.646663, 0.010807,-0.086377;;, - 208;4;-0.617765,-0.751439,-0.003358,-0.054737;;, - 209;4;-0.535365,-0.833040,-0.014390,-0.030096;;, - 210;4;-0.506110,-0.862010,-0.018307,-0.021347;;, - 211;4;-0.535365,-0.833040,-0.014390,-0.030096;;, - 212;4;-0.617765,-0.751439,-0.003358,-0.054737;;, - 213;4;-0.723567,-0.646663, 0.010807,-0.086377;;, - 214;4;-0.805969,-0.565062, 0.021840,-0.111019;;, - 215;4;-0.835223,-0.536092, 0.025756,-0.119768;;, - 216;4;-0.808881,-0.563152, 0.022887,-0.113955;;, - 217;4;-0.734713,-0.639339, 0.014809,-0.097580;;, - 218;4;-0.639441,-0.737212, 0.004432,-0.076557;;, - 219;4;-0.565139,-0.813554,-0.003656,-0.060190;;, - 220;4;-0.538721,-0.840702,-0.006530,-0.054381;;; - } - AnimationKey { // Scale - 1; - 221; - 0;3; 1.000000, 1.000000, 1.000000;;, - 1;3; 1.000000, 1.000000, 1.000000;;, - 2;3; 1.000000, 1.000000, 1.000000;;, - 3;3; 1.000000, 1.000000, 1.000000;;, - 4;3; 1.000000, 1.000000, 1.000000;;, - 5;3; 1.000000, 1.000000, 1.000000;;, - 6;3; 1.000000, 1.000000, 1.000000;;, - 7;3; 1.000000, 1.000000, 1.000000;;, - 8;3; 1.000000, 1.000000, 1.000000;;, - 9;3; 1.000000, 1.000000, 1.000000;;, - 10;3; 1.000000, 1.000000, 1.000000;;, - 11;3; 1.000000, 1.000000, 1.000000;;, - 12;3; 1.000000, 1.000000, 1.000000;;, - 13;3; 1.000000, 1.000000, 1.000000;;, - 14;3; 1.000000, 1.000000, 1.000000;;, - 15;3; 1.000000, 1.000000, 1.000000;;, - 16;3; 1.000000, 1.000000, 1.000000;;, - 17;3; 1.000000, 1.000000, 1.000000;;, - 18;3; 1.000000, 1.000000, 1.000000;;, - 19;3; 1.000000, 1.000000, 1.000000;;, - 20;3; 1.000000, 1.000000, 1.000000;;, - 21;3; 1.000000, 1.000000, 1.000000;;, - 22;3; 1.000000, 1.000000, 1.000000;;, - 23;3; 1.000000, 1.000000, 1.000000;;, - 24;3; 1.000000, 1.000000, 1.000000;;, - 25;3; 1.000000, 1.000000, 1.000000;;, - 26;3; 1.000000, 1.000000, 1.000000;;, - 27;3; 1.000000, 1.000000, 1.000000;;, - 28;3; 1.000000, 1.000000, 1.000000;;, - 29;3; 1.000000, 1.000000, 1.000000;;, - 30;3; 1.000000, 1.000000, 1.000000;;, - 31;3; 1.000000, 1.000000, 1.000000;;, - 32;3; 1.000000, 1.000000, 1.000000;;, - 33;3; 1.000000, 1.000000, 1.000000;;, - 34;3; 1.000000, 1.000000, 1.000000;;, - 35;3; 1.000000, 1.000000, 1.000000;;, - 36;3; 1.000000, 1.000000, 1.000000;;, - 37;3; 1.000000, 1.000000, 1.000000;;, - 38;3; 1.000000, 1.000000, 1.000000;;, - 39;3; 1.000000, 1.000000, 1.000000;;, - 40;3; 1.000000, 1.000000, 1.000000;;, - 41;3; 1.000000, 1.000000, 1.000000;;, - 42;3; 1.000000, 1.000000, 1.000000;;, - 43;3; 1.000000, 1.000000, 1.000000;;, - 44;3; 1.000000, 1.000000, 1.000000;;, - 45;3; 1.000000, 1.000000, 1.000000;;, - 46;3; 1.000000, 1.000000, 1.000000;;, - 47;3; 1.000000, 1.000000, 1.000000;;, - 48;3; 1.000000, 1.000000, 1.000000;;, - 49;3; 1.000000, 1.000000, 1.000000;;, - 50;3; 1.000000, 1.000000, 1.000000;;, - 51;3; 1.000000, 1.000000, 1.000000;;, - 52;3; 1.000000, 1.000000, 1.000000;;, - 53;3; 1.000000, 1.000000, 1.000000;;, - 54;3; 1.000000, 1.000000, 1.000000;;, - 55;3; 1.000000, 1.000000, 1.000000;;, - 56;3; 1.000000, 1.000000, 1.000000;;, - 57;3; 1.000000, 1.000000, 1.000000;;, - 58;3; 1.000000, 1.000000, 1.000000;;, - 59;3; 1.000000, 1.000000, 1.000000;;, - 60;3; 1.000000, 1.000000, 1.000000;;, - 61;3; 1.000000, 1.000000, 1.000000;;, - 62;3; 1.000000, 1.000000, 1.000000;;, - 63;3; 1.000000, 1.000000, 1.000000;;, - 64;3; 1.000000, 1.000000, 1.000000;;, - 65;3; 1.000000, 1.000000, 1.000000;;, - 66;3; 1.000000, 1.000000, 1.000000;;, - 67;3; 1.000000, 1.000000, 1.000000;;, - 68;3; 1.000000, 1.000000, 1.000000;;, - 69;3; 1.000000, 1.000000, 1.000000;;, - 70;3; 1.000000, 1.000000, 1.000000;;, - 71;3; 1.000000, 1.000000, 1.000000;;, - 72;3; 1.000000, 1.000000, 1.000000;;, - 73;3; 1.000000, 1.000000, 1.000000;;, - 74;3; 1.000000, 1.000000, 1.000000;;, - 75;3; 1.000000, 1.000000, 1.000000;;, - 76;3; 1.000000, 1.000000, 1.000000;;, - 77;3; 1.000000, 1.000000, 1.000000;;, - 78;3; 1.000000, 1.000000, 1.000000;;, - 79;3; 1.000000, 1.000000, 1.000000;;, - 80;3; 1.000000, 1.000000, 1.000000;;, - 81;3; 1.000000, 1.000000, 1.000000;;, - 82;3; 1.000000, 1.000000, 1.000000;;, - 83;3; 1.000000, 1.000000, 1.000000;;, - 84;3; 1.000000, 1.000000, 1.000000;;, - 85;3; 1.000000, 1.000000, 1.000000;;, - 86;3; 1.000000, 1.000000, 1.000000;;, - 87;3; 1.000000, 1.000000, 1.000000;;, - 88;3; 1.000000, 1.000000, 1.000000;;, - 89;3; 1.000000, 1.000000, 1.000000;;, - 90;3; 1.000000, 1.000000, 1.000000;;, - 91;3; 1.000000, 1.000000, 1.000000;;, - 92;3; 1.000000, 1.000000, 1.000000;;, - 93;3; 1.000000, 1.000000, 1.000000;;, - 94;3; 1.000000, 1.000000, 1.000000;;, - 95;3; 1.000000, 1.000000, 1.000000;;, - 96;3; 1.000000, 1.000000, 1.000000;;, - 97;3; 1.000000, 1.000000, 1.000000;;, - 98;3; 1.000000, 1.000000, 1.000000;;, - 99;3; 1.000000, 1.000000, 1.000000;;, - 100;3; 1.000000, 1.000000, 1.000000;;, - 101;3; 1.000000, 1.000000, 1.000000;;, - 102;3; 1.000000, 1.000000, 1.000000;;, - 103;3; 1.000000, 1.000000, 1.000000;;, - 104;3; 1.000000, 1.000000, 1.000000;;, - 105;3; 1.000000, 1.000000, 1.000000;;, - 106;3; 1.000000, 1.000000, 1.000000;;, - 107;3; 1.000000, 1.000000, 1.000000;;, - 108;3; 1.000000, 1.000000, 1.000000;;, - 109;3; 1.000000, 1.000000, 1.000000;;, - 110;3; 1.000000, 1.000000, 1.000000;;, - 111;3; 1.000000, 1.000000, 1.000000;;, - 112;3; 1.000000, 1.000000, 1.000000;;, - 113;3; 1.000000, 1.000000, 1.000000;;, - 114;3; 1.000000, 1.000000, 1.000000;;, - 115;3; 1.000000, 1.000000, 1.000000;;, - 116;3; 1.000000, 1.000000, 1.000000;;, - 117;3; 1.000000, 1.000000, 1.000000;;, - 118;3; 1.000000, 1.000000, 1.000000;;, - 119;3; 1.000000, 1.000000, 1.000000;;, - 120;3; 1.000000, 1.000000, 1.000000;;, - 121;3; 1.000000, 1.000000, 1.000000;;, - 122;3; 1.000000, 1.000000, 1.000000;;, - 123;3; 1.000000, 1.000000, 1.000000;;, - 124;3; 1.000000, 1.000000, 1.000000;;, - 125;3; 1.000000, 1.000000, 1.000000;;, - 126;3; 1.000000, 1.000000, 1.000000;;, - 127;3; 1.000000, 1.000000, 1.000000;;, - 128;3; 1.000000, 1.000000, 1.000000;;, - 129;3; 1.000000, 1.000000, 1.000000;;, - 130;3; 1.000000, 1.000000, 1.000000;;, - 131;3; 1.000000, 1.000000, 1.000000;;, - 132;3; 1.000000, 1.000000, 1.000000;;, - 133;3; 1.000000, 1.000000, 1.000000;;, - 134;3; 1.000000, 1.000000, 1.000000;;, - 135;3; 1.000000, 1.000000, 1.000000;;, - 136;3; 1.000000, 1.000000, 1.000000;;, - 137;3; 1.000000, 1.000000, 1.000000;;, - 138;3; 1.000000, 1.000000, 1.000000;;, - 139;3; 1.000000, 1.000000, 1.000000;;, - 140;3; 1.000000, 1.000000, 1.000000;;, - 141;3; 1.000000, 1.000000, 1.000000;;, - 142;3; 1.000000, 1.000000, 1.000000;;, - 143;3; 1.000000, 1.000000, 1.000000;;, - 144;3; 1.000000, 1.000000, 1.000000;;, - 145;3; 1.000000, 1.000000, 1.000000;;, - 146;3; 1.000000, 1.000000, 1.000000;;, - 147;3; 1.000000, 1.000000, 1.000000;;, - 148;3; 1.000000, 1.000000, 1.000000;;, - 149;3; 1.000000, 1.000000, 1.000000;;, - 150;3; 1.000000, 1.000000, 1.000000;;, - 151;3; 1.000000, 1.000000, 1.000000;;, - 152;3; 1.000000, 1.000000, 1.000000;;, - 153;3; 1.000000, 1.000000, 1.000000;;, - 154;3; 1.000000, 1.000000, 1.000000;;, - 155;3; 1.000000, 1.000000, 1.000000;;, - 156;3; 1.000000, 1.000000, 1.000000;;, - 157;3; 1.000000, 1.000000, 1.000000;;, - 158;3; 1.000000, 1.000000, 1.000000;;, - 159;3; 1.000000, 1.000000, 1.000000;;, - 160;3; 1.000000, 1.000000, 1.000000;;, - 161;3; 1.000000, 1.000000, 1.000000;;, - 162;3; 1.000000, 1.000000, 1.000000;;, - 163;3; 1.000000, 1.000000, 1.000000;;, - 164;3; 1.000000, 1.000000, 1.000000;;, - 165;3; 1.000000, 1.000000, 1.000000;;, - 166;3; 1.000000, 1.000000, 1.000000;;, - 167;3; 1.000000, 1.000000, 1.000000;;, - 168;3; 1.000000, 1.000000, 1.000000;;, - 169;3; 1.000000, 1.000000, 1.000000;;, - 170;3; 1.000000, 1.000000, 1.000000;;, - 171;3; 1.000000, 1.000000, 1.000000;;, - 172;3; 1.000000, 1.000000, 1.000000;;, - 173;3; 1.000000, 1.000000, 1.000000;;, - 174;3; 1.000000, 1.000000, 1.000000;;, - 175;3; 1.000000, 1.000000, 1.000000;;, - 176;3; 1.000000, 1.000000, 1.000000;;, - 177;3; 1.000000, 1.000000, 1.000000;;, - 178;3; 1.000000, 1.000000, 1.000000;;, - 179;3; 1.000000, 1.000000, 1.000000;;, - 180;3; 1.000000, 1.000000, 1.000000;;, - 181;3; 1.000000, 1.000000, 1.000000;;, - 182;3; 1.000000, 1.000000, 1.000000;;, - 183;3; 1.000000, 1.000000, 1.000000;;, - 184;3; 1.000000, 1.000000, 1.000000;;, - 185;3; 1.000000, 1.000000, 1.000000;;, - 186;3; 1.000000, 1.000000, 1.000000;;, - 187;3; 1.000000, 1.000000, 1.000000;;, - 188;3; 1.000000, 1.000000, 1.000000;;, - 189;3; 1.000000, 1.000000, 1.000000;;, - 190;3; 1.000000, 1.000000, 1.000000;;, - 191;3; 1.000000, 1.000000, 1.000000;;, - 192;3; 1.000000, 1.000000, 1.000000;;, - 193;3; 1.000000, 1.000000, 1.000000;;, - 194;3; 1.000000, 1.000000, 1.000000;;, - 195;3; 1.000000, 1.000000, 1.000000;;, - 196;3; 1.000000, 1.000000, 1.000000;;, - 197;3; 1.000000, 1.000000, 1.000000;;, - 198;3; 1.000000, 1.000000, 1.000000;;, - 199;3; 1.000000, 1.000000, 1.000000;;, - 200;3; 1.000000, 1.000000, 1.000000;;, - 201;3; 1.000000, 1.000000, 1.000000;;, - 202;3; 1.000000, 1.000000, 1.000000;;, - 203;3; 1.000000, 1.000000, 1.000000;;, - 204;3; 1.000000, 1.000000, 1.000000;;, - 205;3; 1.000000, 1.000000, 1.000000;;, - 206;3; 1.000000, 1.000000, 1.000000;;, - 207;3; 1.000000, 1.000000, 1.000000;;, - 208;3; 1.000000, 1.000000, 1.000000;;, - 209;3; 1.000000, 1.000000, 1.000000;;, - 210;3; 1.000000, 1.000000, 1.000000;;, - 211;3; 1.000000, 1.000000, 1.000000;;, - 212;3; 1.000000, 1.000000, 1.000000;;, - 213;3; 1.000000, 1.000000, 1.000000;;, - 214;3; 1.000000, 1.000000, 1.000000;;, - 215;3; 1.000000, 1.000000, 1.000000;;, - 216;3; 1.000000, 1.000000, 1.000000;;, - 217;3; 1.000000, 1.000000, 1.000000;;, - 218;3; 1.000000, 1.000000, 1.000000;;, - 219;3; 1.000000, 1.000000, 1.000000;;, - 220;3; 1.000000, 1.000000, 1.000000;;; - } - AnimationKey { // Position - 2; - 221; - 0;3; 2.000000, 6.750000,-0.000000;;, - 1;3; 2.000000, 6.750000, 0.000000;;, - 2;3; 2.000000, 6.750000,-0.000000;;, - 3;3; 2.000000, 6.750000, 0.000000;;, - 4;3; 2.000000, 6.750000, 0.000000;;, - 5;3; 2.000000, 6.750000, 0.000000;;, - 6;3; 2.000000, 6.750000, 0.000000;;, - 7;3; 2.000000, 6.750000, 0.000000;;, - 8;3; 2.000000, 6.750000,-0.000000;;, - 9;3; 2.000000, 6.750000,-0.000000;;, - 10;3; 2.000000, 6.750000,-0.000000;;, - 11;3; 2.000000, 6.750000,-0.000000;;, - 12;3; 2.000000, 6.750000, 0.000000;;, - 13;3; 2.000000, 6.750000,-0.000000;;, - 14;3; 2.000000, 6.750000, 0.000000;;, - 15;3; 2.000000, 6.750000,-0.000000;;, - 16;3; 2.000000, 6.750000,-0.000000;;, - 17;3; 2.000000, 6.750000,-0.000000;;, - 18;3; 2.000000, 6.750000,-0.000000;;, - 19;3; 2.000000, 6.750000, 0.000000;;, - 20;3; 2.000000, 6.750000,-0.000000;;, - 21;3; 2.000000, 6.750000, 0.000000;;, - 22;3; 2.000000, 6.750000,-0.000000;;, - 23;3; 2.000000, 6.750000,-0.000000;;, - 24;3; 2.000000, 6.750000,-0.000000;;, - 25;3; 2.000000, 6.750000, 0.000000;;, - 26;3; 2.000000, 6.750000, 0.000000;;, - 27;3; 2.000000, 6.750000, 0.000000;;, - 28;3; 2.000000, 6.750000, 0.000000;;, - 29;3; 2.000000, 6.750000,-0.000000;;, - 30;3; 2.000000, 6.750000,-0.000000;;, - 31;3; 2.000000, 6.750000, 0.000000;;, - 32;3; 2.000000, 6.750000, 0.000000;;, - 33;3; 2.000000, 6.750000,-0.000000;;, - 34;3; 2.000000, 6.750000,-0.000000;;, - 35;3; 2.000000, 6.750000, 0.000000;;, - 36;3; 2.000000, 6.750000, 0.000000;;, - 37;3; 2.000000, 6.750000, 0.000000;;, - 38;3; 2.000000, 6.750000,-0.000000;;, - 39;3; 2.000000, 6.750000, 0.000000;;, - 40;3; 2.000000, 6.750000,-0.000000;;, - 41;3; 2.000000, 6.750000, 0.000000;;, - 42;3; 2.000000, 6.750000, 0.000000;;, - 43;3; 2.000000, 6.750000, 0.000000;;, - 44;3; 2.000000, 6.750000, 0.000000;;, - 45;3; 2.000000, 6.750000,-0.000000;;, - 46;3; 2.000000, 6.750000,-0.000000;;, - 47;3; 2.000000, 6.750000, 0.000000;;, - 48;3; 2.000000, 6.750000,-0.000000;;, - 49;3; 2.000000, 6.750000,-0.000000;;, - 50;3; 2.000000, 6.750000,-0.000000;;, - 51;3; 2.000000, 6.750000,-0.000000;;, - 52;3; 2.000000, 6.750000, 0.000000;;, - 53;3; 2.000000, 6.750000, 0.000000;;, - 54;3; 2.000000, 6.750000,-0.000000;;, - 55;3; 2.000000, 6.750000, 0.000000;;, - 56;3; 2.000000, 6.750000,-0.000000;;, - 57;3; 2.000000, 6.750000,-0.000000;;, - 58;3; 2.000000, 6.750000,-0.000000;;, - 59;3; 2.000000, 6.750000, 0.000000;;, - 60;3; 2.000000, 6.750000,-0.000000;;, - 61;3; 2.000000, 6.750000,-0.000000;;, - 62;3; 2.000000, 6.750000, 0.000000;;, - 63;3; 2.000000, 6.750000, 0.000000;;, - 64;3; 2.000000, 6.750000, 0.000000;;, - 65;3; 2.000000, 6.750000, 0.000000;;, - 66;3; 2.000000, 6.750000, 0.000000;;, - 67;3; 2.000000, 6.750000,-0.000000;;, - 68;3; 2.000000, 6.750000, 0.000000;;, - 69;3; 2.000000, 6.750000,-0.000000;;, - 70;3; 2.000000, 6.750000, 0.000000;;, - 71;3; 2.000000, 6.750000, 0.000000;;, - 72;3; 2.000000, 6.750000, 0.000000;;, - 73;3; 2.000000, 6.750000,-0.000000;;, - 74;3; 2.000000, 6.750000,-0.000000;;, - 75;3; 2.000000, 6.750000, 0.000000;;, - 76;3; 2.000000, 6.750000, 0.000000;;, - 77;3; 2.000000, 6.750000,-0.000000;;, - 78;3; 2.000000, 6.750001,-0.000000;;, - 79;3; 2.000000, 6.750000, 0.000000;;, - 80;3; 2.000000, 6.750000,-0.000000;;, - 81;3; 2.000000, 6.750000, 0.000000;;, - 82;3; 2.000000, 6.750000, 0.000000;;, - 83;3; 2.000000, 6.750000, 0.000000;;, - 84;3; 2.000000, 6.750000, 0.000000;;, - 85;3; 2.000000, 6.750000,-0.000000;;, - 86;3; 2.000000, 6.750000, 0.000000;;, - 87;3; 2.000000, 6.750000,-0.000000;;, - 88;3; 2.000000, 6.750000, 0.000000;;, - 89;3; 2.000000, 6.750000,-0.000000;;, - 90;3; 2.000000, 6.750000,-0.000000;;, - 91;3; 2.000000, 6.750000, 0.000000;;, - 92;3; 2.000000, 6.750000,-0.000000;;, - 93;3; 2.000000, 6.750000, 0.000000;;, - 94;3; 2.000000, 6.750000,-0.000000;;, - 95;3; 2.000000, 6.750000, 0.000000;;, - 96;3; 2.000000, 6.750000,-0.000000;;, - 97;3; 2.000000, 6.750000, 0.000000;;, - 98;3; 2.000000, 6.750000,-0.000000;;, - 99;3; 2.000000, 6.750000,-0.000000;;, - 100;3; 2.000000, 6.750000, 0.000000;;, - 101;3; 2.000000, 6.750000,-0.000000;;, - 102;3; 2.000000, 6.750000, 0.000000;;, - 103;3; 2.000000, 6.750000,-0.000000;;, - 104;3; 2.000000, 6.750000, 0.000000;;, - 105;3; 2.000000, 6.750000,-0.000000;;, - 106;3; 2.000000, 6.750000,-0.000000;;, - 107;3; 2.000000, 6.750000, 0.000000;;, - 108;3; 2.000000, 6.750000, 0.000000;;, - 109;3; 2.000000, 6.750000,-0.000000;;, - 110;3; 2.000000, 6.750000,-0.000000;;, - 111;3; 2.000000, 6.750000,-0.000000;;, - 112;3; 2.000000, 6.750000,-0.000000;;, - 113;3; 2.000000, 6.750000,-0.000000;;, - 114;3; 2.000000, 6.750000,-0.000000;;, - 115;3; 2.000000, 6.750000,-0.000000;;, - 116;3; 2.000000, 6.750000,-0.000000;;, - 117;3; 2.000000, 6.750000,-0.000000;;, - 118;3; 2.000000, 6.750000, 0.000000;;, - 119;3; 2.000000, 6.750000,-0.000000;;, - 120;3; 2.000000, 6.750000, 0.000000;;, - 121;3; 2.000000, 6.750000, 0.000000;;, - 122;3; 2.000000, 6.750000, 0.000000;;, - 123;3; 2.000000, 6.750000,-0.000000;;, - 124;3; 2.000000, 6.750000,-0.000000;;, - 125;3; 2.000000, 6.750000,-0.000000;;, - 126;3; 2.000000, 6.750000, 0.000000;;, - 127;3; 2.000000, 6.750000,-0.000000;;, - 128;3; 2.000000, 6.750000, 0.000000;;, - 129;3; 2.000000, 6.750000,-0.000000;;, - 130;3; 2.000000, 6.750000, 0.000000;;, - 131;3; 2.000000, 6.750000, 0.000000;;, - 132;3; 2.000000, 6.750000,-0.000000;;, - 133;3; 2.000000, 6.750000,-0.000000;;, - 134;3; 2.000000, 6.750000, 0.000000;;, - 135;3; 2.000000, 6.750000, 0.000000;;, - 136;3; 2.000000, 6.750000,-0.000000;;, - 137;3; 2.000000, 6.750000, 0.000000;;, - 138;3; 2.000000, 6.750000,-0.000000;;, - 139;3; 2.000000, 6.750000, 0.000000;;, - 140;3; 2.000000, 6.750000,-0.000000;;, - 141;3; 2.000000, 6.750000,-0.000000;;, - 142;3; 2.000000, 6.750000,-0.000000;;, - 143;3; 2.000000, 6.750000,-0.000000;;, - 144;3; 2.000000, 6.750000, 0.000000;;, - 145;3; 2.000000, 6.750000,-0.000000;;, - 146;3; 2.000000, 6.750000, 0.000000;;, - 147;3; 2.000000, 6.750000, 0.000000;;, - 148;3; 2.000000, 6.750000,-0.000000;;, - 149;3; 2.000000, 6.750000,-0.000000;;, - 150;3; 2.000000, 6.750000,-0.000000;;, - 151;3; 2.000000, 6.750000,-0.000000;;, - 152;3; 2.000000, 6.750000,-0.000000;;, - 153;3; 2.000000, 6.750000, 0.000000;;, - 154;3; 2.000000, 6.750000,-0.000000;;, - 155;3; 2.000000, 6.750000,-0.000000;;, - 156;3; 2.000000, 6.750000,-0.000000;;, - 157;3; 2.000000, 6.750000,-0.000000;;, - 158;3; 2.000000, 6.750000, 0.000000;;, - 159;3; 2.000000, 6.750000, 0.000000;;, - 160;3; 2.000000, 6.750000, 0.000000;;, - 161;3; 2.000000, 6.750000, 0.000000;;, - 162;3; 2.000000, 6.750000, 0.000000;;, - 163;3; 2.000000, 6.750000, 0.000000;;, - 164;3; 2.000000, 6.750000, 0.000000;;, - 165;3; 2.000000, 6.750000, 0.000000;;, - 166;3; 2.000000, 6.750000, 0.000000;;, - 167;3; 2.000000, 6.750000, 0.000000;;, - 168;3; 2.000000, 6.750000,-0.000000;;, - 169;3; 2.000000, 6.750000,-0.000000;;, - 170;3; 2.000000, 6.750000,-0.000000;;, - 171;3; 2.000000, 6.750000,-0.000000;;, - 172;3; 2.000000, 6.750000,-0.000000;;, - 173;3; 2.000000, 6.750000,-0.000000;;, - 174;3; 2.000000, 6.750000,-0.000000;;, - 175;3; 2.000000, 6.750000,-0.000000;;, - 176;3; 2.000000, 6.750000,-0.000000;;, - 177;3; 2.000000, 6.750000,-0.000000;;, - 178;3; 2.000000, 6.750000,-0.000000;;, - 179;3; 2.000000, 6.750000,-0.000000;;, - 180;3; 2.000000, 6.750000,-0.000000;;, - 181;3; 2.000000, 6.750000,-0.000000;;, - 182;3; 2.000000, 6.750000,-0.000000;;, - 183;3; 2.000000, 6.750000,-0.000000;;, - 184;3; 2.000000, 6.750000,-0.000000;;, - 185;3; 2.000000, 6.750000,-0.000000;;, - 186;3; 2.000000, 6.750000,-0.000000;;, - 187;3; 2.000000, 6.750000,-0.000000;;, - 188;3; 2.000000, 6.750000,-0.000000;;, - 189;3; 2.000000, 6.750000,-0.000000;;, - 190;3; 2.000000, 6.750000, 0.000000;;, - 191;3; 2.000000, 6.750000, 0.000000;;, - 192;3; 2.000000, 6.750000,-0.000000;;, - 193;3; 2.000000, 6.750001, 0.000000;;, - 194;3; 2.000000, 6.750001, 0.000000;;, - 195;3; 2.000000, 6.750001, 0.000000;;, - 196;3; 2.000000, 6.750000,-0.000000;;, - 197;3; 2.000000, 6.750000, 0.000000;;, - 198;3; 2.000000, 6.750000, 0.000000;;, - 199;3; 2.000000, 6.750000,-0.000000;;, - 200;3; 2.000000, 6.750000,-0.000000;;, - 201;3; 2.000000, 6.750000,-0.000000;;, - 202;3; 2.000000, 6.750000,-0.000000;;, - 203;3; 2.000000, 6.750000, 0.000000;;, - 204;3; 2.000000, 6.750000,-0.000000;;, - 205;3; 2.000000, 6.750000,-0.000000;;, - 206;3; 2.000000, 6.750000, 0.000000;;, - 207;3; 2.000000, 6.750000,-0.000000;;, - 208;3; 2.000000, 6.750000, 0.000000;;, - 209;3; 2.000000, 6.750000,-0.000000;;, - 210;3; 2.000000, 6.750001, 0.000000;;, - 211;3; 2.000000, 6.750000,-0.000000;;, - 212;3; 2.000000, 6.750000, 0.000000;;, - 213;3; 2.000000, 6.750000, 0.000000;;, - 214;3; 2.000000, 6.750000, 0.000000;;, - 215;3; 2.000000, 6.750000,-0.000000;;, - 216;3; 2.000000, 6.750000,-0.000000;;, - 217;3; 2.000000, 6.750000, 0.000000;;, - 218;3; 2.000000, 6.750000, 0.000000;;, - 219;3; 2.000000, 6.750000, 0.000000;;, - 220;3; 2.000000, 6.750000,-0.000000;;; - } - } - Animation { - {Armature_Leg_Right} - AnimationKey { // Rotation - 0; - 221; - 0;4;-0.000000, 1.000000,-0.000000,-0.000000;;, - 1;4;-0.000240, 0.999995,-0.000000,-0.000000;;, - 2;4;-0.000967, 0.999979,-0.000000,-0.000000;;, - 3;4;-0.002182, 0.999952,-0.000000,-0.000000;;, - 4;4;-0.003877, 0.999915,-0.000000,-0.000000;;, - 5;4;-0.006032, 0.999868,-0.000000,-0.000000;;, - 6;4;-0.008609, 0.999812,-0.000000,-0.000000;;, - 7;4;-0.011555, 0.999748,-0.000000,-0.000000;;, - 8;4;-0.014798, 0.999677,-0.000000,-0.000000;;, - 9;4;-0.018250, 0.999602,-0.000000,-0.000000;;, - 10;4;-0.021810, 0.999524,-0.000000,-0.000000;;, - 11;4;-0.025369, 0.999446,-0.000000,-0.000000;;, - 12;4;-0.028821, 0.999371,-0.000000,-0.000000;;, - 13;4;-0.032064, 0.999300,-0.000000,-0.000000;;, - 14;4;-0.035010, 0.999236,-0.000000,-0.000000;;, - 15;4;-0.037588, 0.999180,-0.000000,-0.000000;;, - 16;4;-0.039742, 0.999133,-0.000000,-0.000000;;, - 17;4;-0.041437, 0.999096,-0.000000,-0.000000;;, - 18;4;-0.042652, 0.999069,-0.000000,-0.000000;;, - 19;4;-0.043379, 0.999053,-0.000000,-0.000000;;, - 20;4;-0.043619, 0.999048,-0.000000,-0.000000;;, - 21;4;-0.043379, 0.999053,-0.000000,-0.000000;;, - 22;4;-0.042652, 0.999069,-0.000000,-0.000000;;, - 23;4;-0.041437, 0.999096,-0.000000,-0.000000;;, - 24;4;-0.039742, 0.999133,-0.000000,-0.000000;;, - 25;4;-0.037588, 0.999180,-0.000000,-0.000000;;, - 26;4;-0.035010, 0.999236,-0.000000,-0.000000;;, - 27;4;-0.032064, 0.999300,-0.000000,-0.000000;;, - 28;4;-0.028821, 0.999371,-0.000000,-0.000000;;, - 29;4;-0.025369, 0.999446,-0.000000,-0.000000;;, - 30;4;-0.021810, 0.999524,-0.000000,-0.000000;;, - 31;4;-0.018250, 0.999602,-0.000000,-0.000000;;, - 32;4;-0.014798, 0.999677,-0.000000,-0.000000;;, - 33;4;-0.011555, 0.999748,-0.000000,-0.000000;;, - 34;4;-0.008609, 0.999812,-0.000000,-0.000000;;, - 35;4;-0.006032, 0.999868,-0.000000,-0.000000;;, - 36;4;-0.003877, 0.999915,-0.000000,-0.000000;;, - 37;4;-0.002182, 0.999952,-0.000000,-0.000000;;, - 38;4;-0.000967, 0.999979,-0.000000,-0.000000;;, - 39;4;-0.000240, 0.999995,-0.000000,-0.000000;;, - 40;4;-0.000000, 1.000000,-0.000000,-0.000000;;, - 41;4;-0.000240, 0.999995,-0.000000,-0.000000;;, - 42;4;-0.000967, 0.999979,-0.000000,-0.000000;;, - 43;4;-0.002182, 0.999952,-0.000000,-0.000000;;, - 44;4;-0.003877, 0.999915,-0.000000,-0.000000;;, - 45;4;-0.006032, 0.999868,-0.000000,-0.000000;;, - 46;4;-0.008609, 0.999812,-0.000000,-0.000000;;, - 47;4;-0.011555, 0.999748,-0.000000,-0.000000;;, - 48;4;-0.014798, 0.999677,-0.000000,-0.000000;;, - 49;4;-0.018250, 0.999602,-0.000000,-0.000000;;, - 50;4;-0.021810, 0.999524,-0.000000,-0.000000;;, - 51;4;-0.025369, 0.999446,-0.000000,-0.000000;;, - 52;4;-0.028821, 0.999371,-0.000000,-0.000000;;, - 53;4;-0.032064, 0.999300,-0.000000,-0.000000;;, - 54;4;-0.035010, 0.999236,-0.000000,-0.000000;;, - 55;4;-0.037588, 0.999180,-0.000000,-0.000000;;, - 56;4;-0.039742, 0.999133,-0.000000,-0.000000;;, - 57;4;-0.041437, 0.999096,-0.000000,-0.000000;;, - 58;4;-0.042652, 0.999069,-0.000000,-0.000000;;, - 59;4;-0.043379, 0.999053,-0.000000,-0.000000;;, - 60;4;-0.043619, 0.999048,-0.000000,-0.000000;;, - 61;4;-0.043616, 0.999053,-0.000000,-0.000000;;, - 62;4;-0.043594, 0.999067,-0.000000,-0.000000;;, - 63;4;-0.043536, 0.999089,-0.000000,-0.000000;;, - 64;4;-0.043427, 0.999117,-0.000000,-0.000000;;, - 65;4;-0.043250, 0.999151,-0.000000,-0.000000;;, - 66;4;-0.042989, 0.999191,-0.000000,-0.000000;;, - 67;4;-0.042627, 0.999235,-0.000000,-0.000000;;, - 68;4;-0.042144, 0.999283,-0.000000,-0.000000;;, - 69;4;-0.041519, 0.999336,-0.000000,-0.000000;;, - 70;4;-0.040726, 0.999391,-0.000000,-0.000000;;, - 71;4;-0.039733, 0.999450,-0.000000,-0.000000;;, - 72;4;-0.038501, 0.999511,-0.000000,-0.000000;;, - 73;4;-0.036980, 0.999575,-0.000000,-0.000000;;, - 74;4;-0.035101, 0.999640,-0.000000,-0.000000;;, - 75;4;-0.032770, 0.999707,-0.000000,-0.000000;;, - 76;4;-0.029842, 0.999774,-0.000000,-0.000000;;, - 77;4;-0.026086, 0.999841,-0.000000,-0.000000;;, - 78;4;-0.021070, 0.999906,-0.000000,-0.000000;;, - 79;4;-0.013794, 0.999964,-0.000000,-0.000000;;, - 80;4;-0.000000, 1.000000,-0.000000,-0.000000;;, - 81;4; 0.707107, 0.707107, 0.000000,-0.000000;;, - 82;4; 0.705874, 0.708245, 0.000000,-0.000000;;, - 83;4; 0.703907, 0.710101, 0.000000,-0.000000;;, - 84;4; 0.701752, 0.712152, 0.000000,-0.000000;;, - 85;4; 0.699533, 0.714271, 0.000000,-0.000000;;, - 86;4; 0.697308, 0.716402, 0.000000,-0.000000;;, - 87;4; 0.695107, 0.718513, 0.000000,-0.000000;;, - 88;4; 0.692951, 0.720584, 0.000000,-0.000000;;, - 89;4; 0.690857, 0.722597, 0.000000,-0.000000;;, - 90;4; 0.688837, 0.724539, 0.000000,-0.000000;;, - 91;4; 0.686904, 0.726399, 0.000000,-0.000000;;, - 92;4; 0.685070, 0.728163, 0.000000,-0.000000;;, - 93;4; 0.683348, 0.729820, 0.000000,-0.000000;;, - 94;4; 0.681750, 0.731358, 0.000000,-0.000000;;, - 95;4; 0.680291, 0.732761, 0.000000,-0.000000;;, - 96;4; 0.678987, 0.734015, 0.000000,-0.000000;;, - 97;4; 0.677857, 0.735101, 0.000000,-0.000000;;, - 98;4; 0.676923, 0.735999, 0.000000,-0.000000;;, - 99;4; 0.676211, 0.736682, 0.000000,-0.000000;;, - 100;4; 0.675753, 0.737121, 0.000000,-0.000000;;, - 101;4; 0.675590, 0.737277, 0.000000,-0.000000;;, - 102;4; 0.675764, 0.737111, 0.000000,-0.000000;;, - 103;4; 0.676289, 0.736609, 0.000000,-0.000000;;, - 104;4; 0.677167, 0.735768, 0.000000,-0.000000;;, - 105;4; 0.678392, 0.734596, 0.000000,-0.000000;;, - 106;4; 0.679948, 0.733105, 0.000000,-0.000000;;, - 107;4; 0.681811, 0.731323, 0.000000,-0.000000;;, - 108;4; 0.683939, 0.729285, 0.000000,-0.000000;;, - 109;4; 0.686283, 0.727042, 0.000000,-0.000000;;, - 110;4; 0.688777, 0.724654, 0.000000,-0.000000;;, - 111;4; 0.691348, 0.722192, 0.000000,-0.000000;;, - 112;4; 0.693920, 0.719730, 0.000000,-0.000000;;, - 113;4; 0.696414, 0.717343, 0.000000,-0.000000;;, - 114;4; 0.698758, 0.715099, 0.000000,-0.000000;;, - 115;4; 0.700886, 0.713062, 0.000000,-0.000000;;, - 116;4; 0.702749, 0.711279, 0.000000,-0.000000;;, - 117;4; 0.704305, 0.709789, 0.000000,-0.000000;;, - 118;4; 0.705530, 0.708616, 0.000000,-0.000000;;, - 119;4; 0.706408, 0.707776, 0.000000,-0.000000;;, - 120;4; 0.706933, 0.707273, 0.000000,-0.000000;;, - 121;4; 0.707107, 0.707107, 0.000000,-0.000000;;, - 122;4; 0.706933, 0.707273, 0.000000,-0.000000;;, - 123;4; 0.706408, 0.707776, 0.000000,-0.000000;;, - 124;4; 0.705530, 0.708616, 0.000000,-0.000000;;, - 125;4; 0.704305, 0.709789, 0.000000,-0.000000;;, - 126;4; 0.702749, 0.711279, 0.000000,-0.000000;;, - 127;4; 0.700886, 0.713062, 0.000000,-0.000000;;, - 128;4; 0.698758, 0.715099, 0.000000,-0.000000;;, - 129;4; 0.696414, 0.717343, 0.000000,-0.000000;;, - 130;4; 0.693920, 0.719730, 0.000000,-0.000000;;, - 131;4; 0.691348, 0.722192, 0.000000,-0.000000;;, - 132;4; 0.688777, 0.724654, 0.000000,-0.000000;;, - 133;4; 0.686283, 0.727042, 0.000000,-0.000000;;, - 134;4; 0.683939, 0.729285, 0.000000,-0.000000;;, - 135;4; 0.681811, 0.731323, 0.000000,-0.000000;;, - 136;4; 0.679948, 0.733105, 0.000000,-0.000000;;, - 137;4; 0.678392, 0.734596, 0.000000,-0.000000;;, - 138;4; 0.677167, 0.735768, 0.000000,-0.000000;;, - 139;4; 0.676289, 0.736609, 0.000000,-0.000000;;, - 140;4; 0.675764, 0.737111, 0.000000,-0.000000;;, - 141;4; 0.675590, 0.737277, 0.000000,-0.000000;;, - 142;4; 0.675753, 0.737121, 0.000000,-0.000000;;, - 143;4; 0.676211, 0.736682, 0.000000,-0.000000;;, - 144;4; 0.676923, 0.735999, 0.000000,-0.000000;;, - 145;4; 0.677857, 0.735101, 0.000000,-0.000000;;, - 146;4; 0.678987, 0.734015, 0.000000,-0.000000;;, - 147;4; 0.680291, 0.732761, 0.000000,-0.000000;;, - 148;4; 0.681750, 0.731357, 0.000000,-0.000000;;, - 149;4; 0.683348, 0.729820, 0.000000,-0.000000;;, - 150;4; 0.685070, 0.728163, 0.000000,-0.000000;;, - 151;4; 0.686904, 0.726398, 0.000000,-0.000000;;, - 152;4; 0.688837, 0.724539, 0.000000,-0.000000;;, - 153;4; 0.690857, 0.722596, 0.000000,-0.000000;;, - 154;4; 0.692951, 0.720583, 0.000000,-0.000000;;, - 155;4; 0.695107, 0.718512, 0.000000,-0.000000;;, - 156;4; 0.697308, 0.716401, 0.000000,-0.000000;;, - 157;4; 0.699533, 0.714270, 0.000000,-0.000000;;, - 158;4; 0.701752, 0.712151, 0.000000,-0.000000;;, - 159;4; 0.703907, 0.710100, 0.000000,-0.000000;;, - 160;4; 0.705874, 0.708244, 0.000000,-0.000000;;, - 161;4; 0.707107, 0.707107, 0.000000,-0.000000;;, - 162;4;-0.000000, 0.991445, 0.130526,-0.000000;;, - 163;4;-0.000000, 0.991445, 0.130526,-0.000000;;, - 164;4;-0.000000, 0.991445, 0.130526,-0.000000;;, - 165;4;-0.000000, 0.991445, 0.130526,-0.000000;;, - 166;4;-0.000000, 0.991445, 0.130526,-0.000000;;, - 167;4;-0.000000, 0.991445, 0.130526,-0.000000;;, - 168;4;-0.000000, 1.000000,-0.000000,-0.000000;;, - 169;4; 0.034052, 0.993234, 0.000000,-0.000000;;, - 170;4; 0.129903, 0.974175, 0.000000,-0.000000;;, - 171;4; 0.252901, 0.949704, 0.000000,-0.000000;;, - 172;4; 0.348675, 0.930646, 0.000000,-0.000000;;, - 173;4; 0.382683, 0.923880, 0.000000,-0.000000;;, - 174;4; 0.361005, 0.930646, 0.000000,-0.000000;;, - 175;4; 0.294618, 0.949704, 0.000000,-0.000000;;, - 176;4; 0.194899, 0.974175, 0.000000,-0.000000;;, - 177;4; 0.088939, 0.993234, 0.000000,-0.000000;;, - 178;4;-0.000000, 1.000000,-0.000000,-0.000000;;, - 179;4;-0.088939, 0.993234,-0.000000,-0.000000;;, - 180;4;-0.194899, 0.974175,-0.000000,-0.000000;;, - 181;4;-0.294618, 0.949704,-0.000000,-0.000000;;, - 182;4;-0.361005, 0.930646,-0.000000,-0.000000;;, - 183;4;-0.382683, 0.923880,-0.000000,-0.000000;;, - 184;4;-0.348675, 0.930646,-0.000000,-0.000000;;, - 185;4;-0.252901, 0.949704,-0.000000,-0.000000;;, - 186;4;-0.129903, 0.974175,-0.000000,-0.000000;;, - 187;4;-0.034052, 0.993233,-0.000000,-0.000000;;, - 188;4;-0.000000, 1.000000,-0.000000,-0.000000;;, - 189;4;-0.000000, 1.000000,-0.000000,-0.000000;;, - 190;4; 0.003877, 0.999915, 0.000000,-0.000000;;, - 191;4; 0.014798, 0.999677, 0.000000,-0.000000;;, - 192;4; 0.028821, 0.999371, 0.000000,-0.000000;;, - 193;4; 0.039742, 0.999133, 0.000000,-0.000000;;, - 194;4; 0.043619, 0.999048, 0.000000,-0.000000;;, - 195;4; 0.039742, 0.999133, 0.000000,-0.000000;;, - 196;4; 0.028821, 0.999371, 0.000000,-0.000000;;, - 197;4; 0.014798, 0.999677, 0.000000,-0.000000;;, - 198;4; 0.003877, 0.999915, 0.000000,-0.000000;;, - 199;4;-0.000000, 1.000000,-0.000000,-0.000000;;, - 200;4;-0.000000, 1.000000,-0.000000,-0.000000;;, - 201;4; 0.034052, 0.993233, 0.000000,-0.000000;;, - 202;4; 0.129903, 0.974175, 0.000000,-0.000000;;, - 203;4; 0.252901, 0.949704, 0.000000,-0.000000;;, - 204;4; 0.348675, 0.930646, 0.000000,-0.000000;;, - 205;4; 0.382683, 0.923880, 0.000000,-0.000000;;, - 206;4; 0.361005, 0.930646, 0.000000,-0.000000;;, - 207;4; 0.294618, 0.949704, 0.000000,-0.000000;;, - 208;4; 0.194899, 0.974175, 0.000000,-0.000000;;, - 209;4; 0.088939, 0.993234, 0.000000,-0.000000;;, - 210;4;-0.000000, 1.000000,-0.000000,-0.000000;;, - 211;4;-0.088939, 0.993234,-0.000000,-0.000000;;, - 212;4;-0.194899, 0.974175,-0.000000,-0.000000;;, - 213;4;-0.294618, 0.949704,-0.000000,-0.000000;;, - 214;4;-0.361005, 0.930646,-0.000000,-0.000000;;, - 215;4;-0.382683, 0.923880,-0.000000,-0.000000;;, - 216;4;-0.348699, 0.930646,-0.000000,-0.000000;;, - 217;4;-0.253041, 0.949703,-0.000000,-0.000000;;, - 218;4;-0.130122, 0.974173,-0.000000,-0.000000;;, - 219;4;-0.034158, 0.993233,-0.000000,-0.000000;;, - 220;4;-0.000000, 1.000000,-0.000000,-0.000000;;; - } - AnimationKey { // Scale - 1; - 221; - 0;3; 1.000000, 1.000000, 1.000000;;, - 1;3; 1.000000, 1.000000, 1.000000;;, - 2;3; 1.000000, 1.000000, 1.000000;;, - 3;3; 1.000000, 1.000000, 1.000000;;, - 4;3; 1.000000, 1.000000, 1.000000;;, - 5;3; 1.000000, 1.000000, 1.000000;;, - 6;3; 1.000000, 1.000000, 1.000000;;, - 7;3; 1.000000, 1.000000, 1.000000;;, - 8;3; 1.000000, 1.000000, 1.000000;;, - 9;3; 1.000000, 1.000000, 1.000000;;, - 10;3; 1.000000, 1.000000, 1.000000;;, - 11;3; 1.000000, 1.000000, 1.000000;;, - 12;3; 1.000000, 1.000000, 1.000000;;, - 13;3; 1.000000, 1.000000, 1.000000;;, - 14;3; 1.000000, 1.000000, 1.000000;;, - 15;3; 1.000000, 1.000000, 1.000000;;, - 16;3; 1.000000, 1.000000, 1.000000;;, - 17;3; 1.000000, 1.000000, 1.000000;;, - 18;3; 1.000000, 1.000000, 1.000000;;, - 19;3; 1.000000, 1.000000, 1.000000;;, - 20;3; 1.000000, 1.000000, 1.000000;;, - 21;3; 1.000000, 1.000000, 1.000000;;, - 22;3; 1.000000, 1.000000, 1.000000;;, - 23;3; 1.000000, 1.000000, 1.000000;;, - 24;3; 1.000000, 1.000000, 1.000000;;, - 25;3; 1.000000, 1.000000, 1.000000;;, - 26;3; 1.000000, 1.000000, 1.000000;;, - 27;3; 1.000000, 1.000000, 1.000000;;, - 28;3; 1.000000, 1.000000, 1.000000;;, - 29;3; 1.000000, 1.000000, 1.000000;;, - 30;3; 1.000000, 1.000000, 1.000000;;, - 31;3; 1.000000, 1.000000, 1.000000;;, - 32;3; 1.000000, 1.000000, 1.000000;;, - 33;3; 1.000000, 1.000000, 1.000000;;, - 34;3; 1.000000, 1.000000, 1.000000;;, - 35;3; 1.000000, 1.000000, 1.000000;;, - 36;3; 1.000000, 1.000000, 1.000000;;, - 37;3; 1.000000, 1.000000, 1.000000;;, - 38;3; 1.000000, 1.000000, 1.000000;;, - 39;3; 1.000000, 1.000000, 1.000000;;, - 40;3; 1.000000, 1.000000, 1.000000;;, - 41;3; 1.000000, 1.000000, 1.000000;;, - 42;3; 1.000000, 1.000000, 1.000000;;, - 43;3; 1.000000, 1.000000, 1.000000;;, - 44;3; 1.000000, 1.000000, 1.000000;;, - 45;3; 1.000000, 1.000000, 1.000000;;, - 46;3; 1.000000, 1.000000, 1.000000;;, - 47;3; 1.000000, 1.000000, 1.000000;;, - 48;3; 1.000000, 1.000000, 1.000000;;, - 49;3; 1.000000, 1.000000, 1.000000;;, - 50;3; 1.000000, 1.000000, 1.000000;;, - 51;3; 1.000000, 1.000000, 1.000000;;, - 52;3; 1.000000, 1.000000, 1.000000;;, - 53;3; 1.000000, 1.000000, 1.000000;;, - 54;3; 1.000000, 1.000000, 1.000000;;, - 55;3; 1.000000, 1.000000, 1.000000;;, - 56;3; 1.000000, 1.000000, 1.000000;;, - 57;3; 1.000000, 1.000000, 1.000000;;, - 58;3; 1.000000, 1.000000, 1.000000;;, - 59;3; 1.000000, 1.000000, 1.000000;;, - 60;3; 1.000000, 1.000000, 1.000000;;, - 61;3; 1.000000, 1.000000, 1.000000;;, - 62;3; 1.000000, 1.000000, 1.000000;;, - 63;3; 1.000000, 1.000000, 1.000000;;, - 64;3; 1.000000, 1.000000, 1.000000;;, - 65;3; 1.000000, 1.000000, 1.000000;;, - 66;3; 1.000000, 1.000000, 1.000000;;, - 67;3; 1.000000, 1.000000, 1.000000;;, - 68;3; 1.000000, 1.000000, 1.000000;;, - 69;3; 1.000000, 1.000000, 1.000000;;, - 70;3; 1.000000, 1.000000, 1.000000;;, - 71;3; 1.000000, 1.000000, 1.000000;;, - 72;3; 1.000000, 1.000000, 1.000000;;, - 73;3; 1.000000, 1.000000, 1.000000;;, - 74;3; 1.000000, 1.000000, 1.000000;;, - 75;3; 1.000000, 1.000000, 1.000000;;, - 76;3; 1.000000, 1.000000, 1.000000;;, - 77;3; 1.000000, 1.000000, 1.000000;;, - 78;3; 1.000000, 1.000000, 1.000000;;, - 79;3; 1.000000, 1.000000, 1.000000;;, - 80;3; 1.000000, 1.000000, 1.000000;;, - 81;3; 1.000000, 1.000000, 1.000000;;, - 82;3; 1.000000, 1.000000, 1.000000;;, - 83;3; 1.000000, 1.000000, 1.000000;;, - 84;3; 1.000000, 1.000000, 1.000000;;, - 85;3; 1.000000, 1.000000, 1.000000;;, - 86;3; 1.000000, 1.000000, 1.000000;;, - 87;3; 1.000000, 1.000000, 1.000000;;, - 88;3; 1.000000, 1.000000, 1.000000;;, - 89;3; 1.000000, 1.000000, 1.000000;;, - 90;3; 1.000000, 1.000000, 1.000000;;, - 91;3; 1.000000, 1.000000, 1.000000;;, - 92;3; 1.000000, 1.000000, 1.000000;;, - 93;3; 1.000000, 1.000000, 1.000000;;, - 94;3; 1.000000, 1.000000, 1.000000;;, - 95;3; 1.000000, 1.000000, 1.000000;;, - 96;3; 1.000000, 1.000000, 1.000000;;, - 97;3; 1.000000, 1.000000, 1.000000;;, - 98;3; 1.000000, 1.000000, 1.000000;;, - 99;3; 1.000000, 1.000000, 1.000000;;, - 100;3; 1.000000, 1.000000, 1.000000;;, - 101;3; 1.000000, 1.000000, 1.000000;;, - 102;3; 1.000000, 1.000000, 1.000000;;, - 103;3; 1.000000, 1.000000, 1.000000;;, - 104;3; 1.000000, 1.000000, 1.000000;;, - 105;3; 1.000000, 1.000000, 1.000000;;, - 106;3; 1.000000, 1.000000, 1.000000;;, - 107;3; 1.000000, 1.000000, 1.000000;;, - 108;3; 1.000000, 1.000000, 1.000000;;, - 109;3; 1.000000, 1.000000, 1.000000;;, - 110;3; 1.000000, 1.000000, 0.999999;;, - 111;3; 1.000000, 1.000000, 1.000000;;, - 112;3; 1.000000, 1.000000, 1.000000;;, - 113;3; 1.000000, 1.000000, 1.000000;;, - 114;3; 1.000000, 1.000000, 1.000000;;, - 115;3; 1.000000, 1.000000, 1.000000;;, - 116;3; 1.000000, 1.000000, 1.000000;;, - 117;3; 1.000000, 1.000000, 1.000000;;, - 118;3; 1.000000, 1.000000, 1.000000;;, - 119;3; 1.000000, 1.000000, 1.000000;;, - 120;3; 1.000000, 1.000000, 1.000000;;, - 121;3; 1.000000, 1.000000, 1.000000;;, - 122;3; 1.000000, 1.000000, 1.000000;;, - 123;3; 1.000000, 1.000000, 1.000000;;, - 124;3; 1.000000, 1.000000, 1.000000;;, - 125;3; 1.000000, 1.000000, 1.000000;;, - 126;3; 1.000000, 1.000000, 1.000000;;, - 127;3; 1.000000, 1.000000, 1.000000;;, - 128;3; 1.000000, 1.000000, 1.000000;;, - 129;3; 1.000000, 1.000000, 1.000000;;, - 130;3; 1.000000, 1.000000, 1.000000;;, - 131;3; 1.000000, 1.000000, 1.000000;;, - 132;3; 1.000000, 1.000000, 0.999999;;, - 133;3; 1.000000, 1.000000, 1.000000;;, - 134;3; 1.000000, 1.000000, 1.000000;;, - 135;3; 1.000000, 1.000000, 1.000000;;, - 136;3; 1.000000, 1.000000, 1.000000;;, - 137;3; 1.000000, 1.000000, 1.000000;;, - 138;3; 1.000000, 1.000000, 1.000000;;, - 139;3; 1.000000, 1.000000, 1.000000;;, - 140;3; 1.000000, 1.000000, 1.000000;;, - 141;3; 1.000000, 1.000000, 1.000000;;, - 142;3; 1.000000, 1.000000, 1.000000;;, - 143;3; 1.000000, 1.000000, 1.000000;;, - 144;3; 1.000000, 1.000000, 1.000000;;, - 145;3; 1.000000, 1.000000, 1.000000;;, - 146;3; 1.000000, 1.000000, 1.000000;;, - 147;3; 1.000000, 1.000000, 1.000000;;, - 148;3; 1.000000, 1.000000, 1.000000;;, - 149;3; 1.000000, 1.000000, 1.000000;;, - 150;3; 1.000000, 1.000000, 1.000000;;, - 151;3; 1.000000, 1.000000, 1.000000;;, - 152;3; 1.000000, 1.000000, 1.000000;;, - 153;3; 1.000000, 1.000000, 1.000000;;, - 154;3; 1.000000, 1.000000, 1.000000;;, - 155;3; 1.000000, 1.000000, 1.000000;;, - 156;3; 1.000000, 1.000000, 1.000000;;, - 157;3; 1.000000, 1.000000, 1.000000;;, - 158;3; 1.000000, 1.000000, 1.000000;;, - 159;3; 1.000000, 1.000000, 1.000000;;, - 160;3; 1.000000, 1.000000, 1.000000;;, - 161;3; 1.000000, 1.000000, 1.000000;;, - 162;3; 1.000000, 1.000000, 1.000000;;, - 163;3; 1.000000, 1.000000, 1.000000;;, - 164;3; 1.000000, 1.000000, 1.000000;;, - 165;3; 1.000000, 1.000000, 1.000000;;, - 166;3; 1.000000, 1.000000, 1.000000;;, - 167;3; 1.000000, 1.000000, 1.000000;;, - 168;3; 1.000000, 1.000000, 1.000000;;, - 169;3; 1.000000, 1.000000, 1.000000;;, - 170;3; 1.000000, 1.000000, 1.000000;;, - 171;3; 1.000000, 1.000000, 1.000000;;, - 172;3; 1.000000, 1.000000, 1.000000;;, - 173;3; 1.000000, 1.000000, 1.000000;;, - 174;3; 1.000000, 1.000000, 1.000000;;, - 175;3; 1.000000, 1.000000, 1.000000;;, - 176;3; 1.000000, 1.000000, 1.000000;;, - 177;3; 1.000000, 1.000000, 1.000000;;, - 178;3; 1.000000, 1.000000, 1.000000;;, - 179;3; 1.000000, 1.000000, 1.000000;;, - 180;3; 1.000000, 1.000000, 1.000000;;, - 181;3; 1.000000, 1.000000, 1.000000;;, - 182;3; 1.000000, 1.000000, 1.000000;;, - 183;3; 1.000000, 1.000000, 1.000000;;, - 184;3; 1.000000, 1.000000, 1.000000;;, - 185;3; 1.000000, 1.000000, 1.000000;;, - 186;3; 1.000000, 1.000000, 1.000000;;, - 187;3; 1.000000, 1.000000, 1.000000;;, - 188;3; 1.000000, 1.000000, 1.000000;;, - 189;3; 1.000000, 1.000000, 1.000000;;, - 190;3; 1.000000, 1.000000, 1.000000;;, - 191;3; 1.000000, 1.000000, 1.000000;;, - 192;3; 1.000000, 1.000000, 1.000000;;, - 193;3; 1.000000, 1.000000, 1.000000;;, - 194;3; 1.000000, 1.000000, 1.000000;;, - 195;3; 1.000000, 1.000000, 1.000000;;, - 196;3; 1.000000, 1.000000, 1.000000;;, - 197;3; 1.000000, 1.000000, 1.000000;;, - 198;3; 1.000000, 1.000000, 1.000000;;, - 199;3; 1.000000, 1.000000, 1.000000;;, - 200;3; 1.000000, 1.000000, 1.000000;;, - 201;3; 1.000000, 1.000000, 1.000000;;, - 202;3; 1.000000, 1.000000, 1.000000;;, - 203;3; 1.000000, 1.000000, 1.000000;;, - 204;3; 1.000000, 1.000000, 1.000000;;, - 205;3; 1.000000, 1.000000, 1.000000;;, - 206;3; 1.000000, 1.000000, 1.000000;;, - 207;3; 1.000000, 1.000000, 1.000000;;, - 208;3; 1.000000, 1.000000, 1.000000;;, - 209;3; 1.000000, 1.000000, 1.000000;;, - 210;3; 1.000000, 1.000000, 1.000000;;, - 211;3; 1.000000, 1.000000, 1.000000;;, - 212;3; 1.000000, 1.000000, 1.000000;;, - 213;3; 1.000000, 1.000000, 1.000000;;, - 214;3; 1.000000, 1.000000, 1.000000;;, - 215;3; 1.000000, 1.000000, 1.000000;;, - 216;3; 1.000000, 1.000000, 1.000000;;, - 217;3; 1.000000, 1.000000, 1.000000;;, - 218;3; 1.000000, 1.000000, 1.000000;;, - 219;3; 1.000000, 1.000000, 1.000000;;, - 220;3; 1.000000, 1.000000, 1.000000;;; - } - AnimationKey { // Position - 2; - 221; - 0;3; 1.000000, 0.000000,-0.000001;;, - 1;3; 1.000000, 0.000000,-0.000001;;, - 2;3; 1.000000,-0.000000,-0.000001;;, - 3;3; 1.000000,-0.000000,-0.000001;;, - 4;3; 1.000000,-0.000000,-0.000001;;, - 5;3; 1.000000,-0.000000,-0.000001;;, - 6;3; 1.000000,-0.000000,-0.000001;;, - 7;3; 1.000000, 0.000000,-0.000001;;, - 8;3; 1.000000,-0.000000,-0.000001;;, - 9;3; 1.000000,-0.000000,-0.000001;;, - 10;3; 1.000000,-0.000000,-0.000001;;, - 11;3; 1.000000,-0.000000,-0.000000;;, - 12;3; 1.000000,-0.000000,-0.000001;;, - 13;3; 1.000000, 0.000000,-0.000001;;, - 14;3; 1.000000,-0.000000,-0.000001;;, - 15;3; 1.000000,-0.000000,-0.000001;;, - 16;3; 1.000000,-0.000000,-0.000001;;, - 17;3; 1.000000,-0.000000,-0.000000;;, - 18;3; 1.000000, 0.000000,-0.000000;;, - 19;3; 1.000000,-0.000000,-0.000000;;, - 20;3; 1.000000, 0.000000,-0.000000;;, - 21;3; 1.000000,-0.000000,-0.000001;;, - 22;3; 1.000000, 0.000000,-0.000000;;, - 23;3; 1.000000,-0.000000,-0.000000;;, - 24;3; 1.000000,-0.000000,-0.000001;;, - 25;3; 1.000000,-0.000000,-0.000000;;, - 26;3; 1.000000,-0.000000,-0.000000;;, - 27;3; 1.000000, 0.000000,-0.000001;;, - 28;3; 1.000000,-0.000000,-0.000001;;, - 29;3; 1.000000,-0.000000,-0.000001;;, - 30;3; 1.000000,-0.000000,-0.000001;;, - 31;3; 1.000000,-0.000000,-0.000001;;, - 32;3; 1.000000,-0.000000,-0.000001;;, - 33;3; 1.000000, 0.000000,-0.000001;;, - 34;3; 1.000000,-0.000000,-0.000001;;, - 35;3; 1.000000,-0.000000,-0.000001;;, - 36;3; 1.000000,-0.000000,-0.000001;;, - 37;3; 1.000000,-0.000000,-0.000001;;, - 38;3; 1.000000,-0.000000,-0.000001;;, - 39;3; 1.000000, 0.000000,-0.000001;;, - 40;3; 1.000000, 0.000000,-0.000001;;, - 41;3; 1.000000, 0.000000,-0.000001;;, - 42;3; 1.000000,-0.000000,-0.000001;;, - 43;3; 1.000000,-0.000000,-0.000001;;, - 44;3; 1.000000,-0.000000,-0.000001;;, - 45;3; 1.000000,-0.000000,-0.000001;;, - 46;3; 1.000000,-0.000000,-0.000001;;, - 47;3; 1.000000, 0.000000,-0.000001;;, - 48;3; 1.000000,-0.000000,-0.000001;;, - 49;3; 1.000000,-0.000000,-0.000001;;, - 50;3; 1.000000,-0.000000,-0.000001;;, - 51;3; 1.000000,-0.000000,-0.000001;;, - 52;3; 1.000000,-0.000000,-0.000001;;, - 53;3; 1.000000, 0.000000,-0.000001;;, - 54;3; 1.000000,-0.000000,-0.000001;;, - 55;3; 1.000000,-0.000000,-0.000000;;, - 56;3; 1.000000,-0.000000,-0.000001;;, - 57;3; 1.000000,-0.000000,-0.000000;;, - 58;3; 1.000000, 0.000000,-0.000000;;, - 59;3; 1.000000,-0.000000,-0.000000;;, - 60;3; 1.000000, 0.000000,-0.000000;;, - 61;3; 1.000000, 0.000000,-0.000001;;, - 62;3; 1.000000,-0.000000,-0.000001;;, - 63;3; 1.000000,-0.000000,-0.000001;;, - 64;3; 1.000000, 0.000000,-0.000001;;, - 65;3; 1.000000,-0.000000,-0.000000;;, - 66;3; 1.000000,-0.000000,-0.000001;;, - 67;3; 1.000000,-0.000000,-0.000001;;, - 68;3; 1.000000, 0.000000,-0.000001;;, - 69;3; 1.000000,-0.000000,-0.000001;;, - 70;3; 1.000000,-0.000000,-0.000001;;, - 71;3; 1.000000,-0.000000,-0.000001;;, - 72;3; 1.000000,-0.000000,-0.000001;;, - 73;3; 1.000000, 0.000000,-0.000001;;, - 74;3; 1.000000,-0.000000,-0.000001;;, - 75;3; 1.000000, 0.000000,-0.000001;;, - 76;3; 1.000000,-0.000000,-0.000001;;, - 77;3; 1.000000,-0.000000,-0.000001;;, - 78;3; 1.000000, 0.000000,-0.000001;;, - 79;3; 1.000000,-0.000000,-0.000001;;, - 80;3; 1.000000, 0.000000,-0.000001;;, - 81;3; 1.000000, 0.000000,-0.000001;;, - 82;3; 1.000000,-0.000000,-0.000001;;, - 83;3; 1.000000,-0.000000,-0.000001;;, - 84;3; 1.000000,-0.000000,-0.000001;;, - 85;3; 1.000000,-0.000000,-0.000001;;, - 86;3; 1.000000,-0.000000,-0.000001;;, - 87;3; 1.000000,-0.000000,-0.000001;;, - 88;3; 1.000000,-0.000000,-0.000001;;, - 89;3; 1.000000,-0.000000,-0.000001;;, - 90;3; 1.000000,-0.000000,-0.000001;;, - 91;3; 1.000000,-0.000000,-0.000001;;, - 92;3; 1.000000,-0.000000,-0.000001;;, - 93;3; 1.000000,-0.000000,-0.000001;;, - 94;3; 1.000000,-0.000000,-0.000001;;, - 95;3; 1.000000,-0.000000,-0.000001;;, - 96;3; 1.000000,-0.000000,-0.000001;;, - 97;3; 1.000000,-0.000000,-0.000001;;, - 98;3; 1.000000,-0.000000,-0.000001;;, - 99;3; 1.000000,-0.000000,-0.000001;;, - 100;3; 1.000000,-0.000000,-0.000001;;, - 101;3; 1.000000,-0.000000,-0.000001;;, - 102;3; 1.000000,-0.000000,-0.000001;;, - 103;3; 1.000000,-0.000000,-0.000001;;, - 104;3; 1.000000,-0.000000,-0.000001;;, - 105;3; 1.000000,-0.000000,-0.000001;;, - 106;3; 1.000000,-0.000000,-0.000001;;, - 107;3; 1.000000,-0.000000,-0.000001;;, - 108;3; 1.000000,-0.000000,-0.000001;;, - 109;3; 1.000000,-0.000000,-0.000001;;, - 110;3; 1.000000,-0.000000,-0.000001;;, - 111;3; 1.000000,-0.000000,-0.000001;;, - 112;3; 1.000000,-0.000000,-0.000001;;, - 113;3; 1.000000,-0.000000,-0.000001;;, - 114;3; 1.000000,-0.000000,-0.000001;;, - 115;3; 1.000000,-0.000000,-0.000001;;, - 116;3; 1.000000,-0.000000,-0.000001;;, - 117;3; 1.000000,-0.000000,-0.000001;;, - 118;3; 1.000000,-0.000000,-0.000001;;, - 119;3; 1.000000,-0.000000,-0.000001;;, - 120;3; 1.000000,-0.000000,-0.000001;;, - 121;3; 1.000000, 0.000000,-0.000001;;, - 122;3; 1.000000,-0.000000,-0.000001;;, - 123;3; 1.000000,-0.000000,-0.000001;;, - 124;3; 1.000000,-0.000000,-0.000001;;, - 125;3; 1.000000,-0.000000,-0.000001;;, - 126;3; 1.000000,-0.000000,-0.000001;;, - 127;3; 1.000000,-0.000000,-0.000001;;, - 128;3; 1.000000,-0.000000,-0.000001;;, - 129;3; 1.000000,-0.000000,-0.000001;;, - 130;3; 1.000000,-0.000000,-0.000001;;, - 131;3; 1.000000,-0.000000,-0.000001;;, - 132;3; 1.000000,-0.000000,-0.000001;;, - 133;3; 1.000000,-0.000000,-0.000001;;, - 134;3; 1.000000,-0.000000,-0.000001;;, - 135;3; 1.000000,-0.000000,-0.000001;;, - 136;3; 1.000000,-0.000000,-0.000001;;, - 137;3; 1.000000,-0.000000,-0.000001;;, - 138;3; 1.000000,-0.000000,-0.000001;;, - 139;3; 1.000000,-0.000000,-0.000001;;, - 140;3; 1.000000,-0.000000,-0.000001;;, - 141;3; 1.000000,-0.000000,-0.000001;;, - 142;3; 1.000000,-0.000000,-0.000001;;, - 143;3; 1.000000,-0.000000,-0.000001;;, - 144;3; 1.000000,-0.000000,-0.000001;;, - 145;3; 1.000000,-0.000000,-0.000001;;, - 146;3; 1.000000,-0.000000,-0.000001;;, - 147;3; 1.000000,-0.000000,-0.000001;;, - 148;3; 1.000000,-0.000000,-0.000001;;, - 149;3; 1.000000,-0.000000,-0.000001;;, - 150;3; 1.000000,-0.000000,-0.000001;;, - 151;3; 1.000000,-0.000000,-0.000001;;, - 152;3; 1.000000,-0.000000,-0.000001;;, - 153;3; 1.000000,-0.000000,-0.000001;;, - 154;3; 1.000000,-0.000000,-0.000001;;, - 155;3; 1.000000,-0.000000,-0.000001;;, - 156;3; 1.000000,-0.000000,-0.000001;;, - 157;3; 1.000000,-0.000000,-0.000001;;, - 158;3; 1.000000,-0.000000,-0.000001;;, - 159;3; 1.000000,-0.000000,-0.000001;;, - 160;3; 1.000000,-0.000000,-0.000001;;, - 161;3; 1.000000, 0.000000,-0.000001;;, - 162;3; 1.000000,-0.000000,-0.000001;;, - 163;3; 1.000000,-0.000000,-0.000001;;, - 164;3; 1.000000,-0.000000,-0.000001;;, - 165;3; 1.000000,-0.000000,-0.000001;;, - 166;3; 1.000000,-0.000000,-0.000001;;, - 167;3; 1.000000,-0.000000,-0.000001;;, - 168;3; 1.000000, 0.000000,-0.000001;;, - 169;3; 1.000000, 0.000000,-0.000001;;, - 170;3; 1.000000, 0.000000,-0.000001;;, - 171;3; 1.000000, 0.000000,-0.000001;;, - 172;3; 1.000000, 0.000000,-0.000001;;, - 173;3; 1.000000, 0.000000,-0.000001;;, - 174;3; 1.000000, 0.000000,-0.000001;;, - 175;3; 1.000000, 0.000000,-0.000001;;, - 176;3; 1.000000, 0.000000,-0.000001;;, - 177;3; 1.000000, 0.000000,-0.000001;;, - 178;3; 1.000000, 0.000000,-0.000001;;, - 179;3; 1.000000, 0.000000,-0.000001;;, - 180;3; 1.000000, 0.000000,-0.000001;;, - 181;3; 1.000000, 0.000000,-0.000001;;, - 182;3; 1.000000, 0.000000,-0.000001;;, - 183;3; 1.000000, 0.000000,-0.000001;;, - 184;3; 1.000000, 0.000000,-0.000001;;, - 185;3; 1.000000, 0.000000,-0.000001;;, - 186;3; 1.000000, 0.000000,-0.000001;;, - 187;3; 1.000000, 0.000000,-0.000001;;, - 188;3; 1.000000, 0.000000,-0.000001;;, - 189;3; 1.000000, 0.000000,-0.000001;;, - 190;3; 1.000000,-0.000000,-0.000001;;, - 191;3; 1.000000,-0.000000,-0.000001;;, - 192;3; 1.000000,-0.000000,-0.000001;;, - 193;3; 1.000000, 0.000000,-0.000001;;, - 194;3; 1.000000, 0.000000,-0.000000;;, - 195;3; 1.000000, 0.000000,-0.000001;;, - 196;3; 1.000000,-0.000000,-0.000000;;, - 197;3; 1.000000,-0.000000,-0.000001;;, - 198;3; 1.000000,-0.000000,-0.000001;;, - 199;3; 1.000000, 0.000000,-0.000001;;, - 200;3; 1.000000, 0.000000,-0.000001;;, - 201;3; 1.000000,-0.000000,-0.000001;;, - 202;3; 1.000000,-0.000000,-0.000001;;, - 203;3; 1.000000,-0.000000,-0.000001;;, - 204;3; 1.000000,-0.000000,-0.000000;;, - 205;3; 1.000000, 0.000000,-0.000000;;, - 206;3; 1.000000,-0.000000,-0.000001;;, - 207;3; 1.000000,-0.000000,-0.000001;;, - 208;3; 1.000000,-0.000000,-0.000001;;, - 209;3; 1.000000, 0.000000,-0.000000;;, - 210;3; 1.000000, 0.000000,-0.000000;;, - 211;3; 1.000000, 0.000000,-0.000001;;, - 212;3; 1.000000,-0.000000,-0.000001;;, - 213;3; 1.000000,-0.000000,-0.000001;;, - 214;3; 1.000000,-0.000000,-0.000001;;, - 215;3; 1.000000, 0.000000,-0.000000;;, - 216;3; 1.000000,-0.000000,-0.000000;;, - 217;3; 1.000000,-0.000000,-0.000000;;, - 218;3; 1.000000,-0.000000,-0.000001;;, - 219;3; 1.000000,-0.000000,-0.000001;;, - 220;3; 1.000000, 0.000000,-0.000001;;; - } - } - Animation { - {Armature_Leg_Left} - AnimationKey { // Rotation - 0; - 221; - 0;4;-0.000000, 1.000000,-0.000000,-0.000000;;, - 1;4;-0.000240, 0.999995,-0.000000,-0.000000;;, - 2;4;-0.000967, 0.999979,-0.000000,-0.000000;;, - 3;4;-0.002182, 0.999952,-0.000000,-0.000000;;, - 4;4;-0.003877, 0.999915,-0.000000,-0.000000;;, - 5;4;-0.006032, 0.999868,-0.000000,-0.000000;;, - 6;4;-0.008609, 0.999812,-0.000000,-0.000000;;, - 7;4;-0.011555, 0.999748,-0.000000,-0.000000;;, - 8;4;-0.014798, 0.999677,-0.000000,-0.000000;;, - 9;4;-0.018250, 0.999602,-0.000000,-0.000000;;, - 10;4;-0.021810, 0.999524,-0.000000,-0.000000;;, - 11;4;-0.025369, 0.999446,-0.000000,-0.000000;;, - 12;4;-0.028821, 0.999371,-0.000000,-0.000000;;, - 13;4;-0.032064, 0.999300,-0.000000,-0.000000;;, - 14;4;-0.035010, 0.999236,-0.000000,-0.000000;;, - 15;4;-0.037588, 0.999180,-0.000000,-0.000000;;, - 16;4;-0.039742, 0.999133,-0.000000,-0.000000;;, - 17;4;-0.041437, 0.999096,-0.000000,-0.000000;;, - 18;4;-0.042652, 0.999069,-0.000000,-0.000000;;, - 19;4;-0.043379, 0.999053,-0.000000,-0.000000;;, - 20;4;-0.043619, 0.999048,-0.000000,-0.000000;;, - 21;4;-0.043379, 0.999053,-0.000000,-0.000000;;, - 22;4;-0.042652, 0.999069,-0.000000,-0.000000;;, - 23;4;-0.041437, 0.999096,-0.000000,-0.000000;;, - 24;4;-0.039742, 0.999133,-0.000000,-0.000000;;, - 25;4;-0.037588, 0.999180,-0.000000,-0.000000;;, - 26;4;-0.035010, 0.999236,-0.000000,-0.000000;;, - 27;4;-0.032064, 0.999300,-0.000000,-0.000000;;, - 28;4;-0.028821, 0.999371,-0.000000,-0.000000;;, - 29;4;-0.025369, 0.999446,-0.000000,-0.000000;;, - 30;4;-0.021810, 0.999524,-0.000000,-0.000000;;, - 31;4;-0.018250, 0.999602,-0.000000,-0.000000;;, - 32;4;-0.014798, 0.999677,-0.000000,-0.000000;;, - 33;4;-0.011555, 0.999748,-0.000000,-0.000000;;, - 34;4;-0.008609, 0.999812,-0.000000,-0.000000;;, - 35;4;-0.006032, 0.999868,-0.000000,-0.000000;;, - 36;4;-0.003877, 0.999915,-0.000000,-0.000000;;, - 37;4;-0.002182, 0.999952,-0.000000,-0.000000;;, - 38;4;-0.000967, 0.999979,-0.000000,-0.000000;;, - 39;4;-0.000240, 0.999995,-0.000000,-0.000000;;, - 40;4;-0.000000, 1.000000,-0.000000,-0.000000;;, - 41;4;-0.000240, 0.999995,-0.000000,-0.000000;;, - 42;4;-0.000967, 0.999979,-0.000000,-0.000000;;, - 43;4;-0.002182, 0.999952,-0.000000,-0.000000;;, - 44;4;-0.003877, 0.999915,-0.000000,-0.000000;;, - 45;4;-0.006032, 0.999868,-0.000000,-0.000000;;, - 46;4;-0.008609, 0.999812,-0.000000,-0.000000;;, - 47;4;-0.011555, 0.999748,-0.000000,-0.000000;;, - 48;4;-0.014798, 0.999677,-0.000000,-0.000000;;, - 49;4;-0.018250, 0.999602,-0.000000,-0.000000;;, - 50;4;-0.021810, 0.999524,-0.000000,-0.000000;;, - 51;4;-0.025369, 0.999446,-0.000000,-0.000000;;, - 52;4;-0.028821, 0.999371,-0.000000,-0.000000;;, - 53;4;-0.032064, 0.999300,-0.000000,-0.000000;;, - 54;4;-0.035010, 0.999236,-0.000000,-0.000000;;, - 55;4;-0.037588, 0.999180,-0.000000,-0.000000;;, - 56;4;-0.039742, 0.999133,-0.000000,-0.000000;;, - 57;4;-0.041437, 0.999096,-0.000000,-0.000000;;, - 58;4;-0.042652, 0.999069,-0.000000,-0.000000;;, - 59;4;-0.043379, 0.999053,-0.000000,-0.000000;;, - 60;4;-0.043619, 0.999048,-0.000000,-0.000000;;, - 61;4;-0.043616, 0.999053,-0.000000,-0.000000;;, - 62;4;-0.043594, 0.999067,-0.000000,-0.000000;;, - 63;4;-0.043536, 0.999089,-0.000000,-0.000000;;, - 64;4;-0.043427, 0.999117,-0.000000,-0.000000;;, - 65;4;-0.043250, 0.999151,-0.000000,-0.000000;;, - 66;4;-0.042989, 0.999191,-0.000000,-0.000000;;, - 67;4;-0.042627, 0.999235,-0.000000,-0.000000;;, - 68;4;-0.042144, 0.999283,-0.000000,-0.000000;;, - 69;4;-0.041519, 0.999336,-0.000000,-0.000000;;, - 70;4;-0.040726, 0.999391,-0.000000,-0.000000;;, - 71;4;-0.039733, 0.999450,-0.000000,-0.000000;;, - 72;4;-0.038501, 0.999511,-0.000000,-0.000000;;, - 73;4;-0.036980, 0.999575,-0.000000,-0.000000;;, - 74;4;-0.035101, 0.999640,-0.000000,-0.000000;;, - 75;4;-0.032770, 0.999707,-0.000000,-0.000000;;, - 76;4;-0.029842, 0.999774,-0.000000,-0.000000;;, - 77;4;-0.026086, 0.999841,-0.000000,-0.000000;;, - 78;4;-0.021070, 0.999906,-0.000000,-0.000000;;, - 79;4;-0.013794, 0.999964,-0.000000,-0.000000;;, - 80;4;-0.000000, 1.000000,-0.000000,-0.000000;;, - 81;4; 0.707107, 0.707107, 0.000000,-0.000000;;, - 82;4; 0.705874, 0.708245, 0.000000,-0.000000;;, - 83;4; 0.703907, 0.710101, 0.000000,-0.000000;;, - 84;4; 0.701752, 0.712152, 0.000000,-0.000000;;, - 85;4; 0.699533, 0.714271, 0.000000,-0.000000;;, - 86;4; 0.697308, 0.716402, 0.000000,-0.000000;;, - 87;4; 0.695107, 0.718513, 0.000000,-0.000000;;, - 88;4; 0.692951, 0.720584, 0.000000,-0.000000;;, - 89;4; 0.690857, 0.722597, 0.000000,-0.000000;;, - 90;4; 0.688837, 0.724539, 0.000000,-0.000000;;, - 91;4; 0.686904, 0.726399, 0.000000,-0.000000;;, - 92;4; 0.685070, 0.728163, 0.000000,-0.000000;;, - 93;4; 0.683348, 0.729820, 0.000000,-0.000000;;, - 94;4; 0.681750, 0.731358, 0.000000,-0.000000;;, - 95;4; 0.680291, 0.732761, 0.000000,-0.000000;;, - 96;4; 0.678987, 0.734015, 0.000000,-0.000000;;, - 97;4; 0.677857, 0.735101, 0.000000,-0.000000;;, - 98;4; 0.676923, 0.735999, 0.000000,-0.000000;;, - 99;4; 0.676211, 0.736682, 0.000000,-0.000000;;, - 100;4; 0.675753, 0.737121, 0.000000,-0.000000;;, - 101;4; 0.675590, 0.737277, 0.000000,-0.000000;;, - 102;4; 0.675764, 0.737111, 0.000000,-0.000000;;, - 103;4; 0.676289, 0.736609, 0.000000,-0.000000;;, - 104;4; 0.677167, 0.735768, 0.000000,-0.000000;;, - 105;4; 0.678392, 0.734596, 0.000000,-0.000000;;, - 106;4; 0.679948, 0.733105, 0.000000,-0.000000;;, - 107;4; 0.681811, 0.731323, 0.000000,-0.000000;;, - 108;4; 0.683939, 0.729285, 0.000000,-0.000000;;, - 109;4; 0.686283, 0.727042, 0.000000,-0.000000;;, - 110;4; 0.688777, 0.724654, 0.000000,-0.000000;;, - 111;4; 0.691348, 0.722192, 0.000000,-0.000000;;, - 112;4; 0.693920, 0.719730, 0.000000,-0.000000;;, - 113;4; 0.696414, 0.717343, 0.000000,-0.000000;;, - 114;4; 0.698758, 0.715099, 0.000000,-0.000000;;, - 115;4; 0.700886, 0.713062, 0.000000,-0.000000;;, - 116;4; 0.702749, 0.711279, 0.000000,-0.000000;;, - 117;4; 0.704305, 0.709789, 0.000000,-0.000000;;, - 118;4; 0.705530, 0.708616, 0.000000,-0.000000;;, - 119;4; 0.706408, 0.707776, 0.000000,-0.000000;;, - 120;4; 0.706933, 0.707273, 0.000000,-0.000000;;, - 121;4; 0.707107, 0.707107, 0.000000,-0.000000;;, - 122;4; 0.706933, 0.707273, 0.000000,-0.000000;;, - 123;4; 0.706408, 0.707776, 0.000000,-0.000000;;, - 124;4; 0.705530, 0.708616, 0.000000,-0.000000;;, - 125;4; 0.704305, 0.709789, 0.000000,-0.000000;;, - 126;4; 0.702749, 0.711279, 0.000000,-0.000000;;, - 127;4; 0.700886, 0.713062, 0.000000,-0.000000;;, - 128;4; 0.698758, 0.715099, 0.000000,-0.000000;;, - 129;4; 0.696414, 0.717343, 0.000000,-0.000000;;, - 130;4; 0.693920, 0.719730, 0.000000,-0.000000;;, - 131;4; 0.691348, 0.722192, 0.000000,-0.000000;;, - 132;4; 0.688777, 0.724654, 0.000000,-0.000000;;, - 133;4; 0.686283, 0.727042, 0.000000,-0.000000;;, - 134;4; 0.683939, 0.729285, 0.000000,-0.000000;;, - 135;4; 0.681811, 0.731323, 0.000000,-0.000000;;, - 136;4; 0.679948, 0.733105, 0.000000,-0.000000;;, - 137;4; 0.678392, 0.734596, 0.000000,-0.000000;;, - 138;4; 0.677167, 0.735768, 0.000000,-0.000000;;, - 139;4; 0.676289, 0.736609, 0.000000,-0.000000;;, - 140;4; 0.675764, 0.737111, 0.000000,-0.000000;;, - 141;4; 0.675590, 0.737277, 0.000000,-0.000000;;, - 142;4; 0.675753, 0.737121, 0.000000,-0.000000;;, - 143;4; 0.676211, 0.736682, 0.000000,-0.000000;;, - 144;4; 0.676923, 0.735999, 0.000000,-0.000000;;, - 145;4; 0.677857, 0.735101, 0.000000,-0.000000;;, - 146;4; 0.678987, 0.734015, 0.000000,-0.000000;;, - 147;4; 0.680291, 0.732761, 0.000000,-0.000000;;, - 148;4; 0.681750, 0.731357, 0.000000,-0.000000;;, - 149;4; 0.683348, 0.729820, 0.000000,-0.000000;;, - 150;4; 0.685070, 0.728163, 0.000000,-0.000000;;, - 151;4; 0.686904, 0.726398, 0.000000,-0.000000;;, - 152;4; 0.688837, 0.724539, 0.000000,-0.000000;;, - 153;4; 0.690857, 0.722596, 0.000000,-0.000000;;, - 154;4; 0.692951, 0.720583, 0.000000,-0.000000;;, - 155;4; 0.695107, 0.718512, 0.000000,-0.000000;;, - 156;4; 0.697308, 0.716401, 0.000000,-0.000000;;, - 157;4; 0.699533, 0.714270, 0.000000,-0.000000;;, - 158;4; 0.701752, 0.712151, 0.000000,-0.000000;;, - 159;4; 0.703907, 0.710100, 0.000000,-0.000000;;, - 160;4; 0.705874, 0.708244, 0.000000,-0.000000;;, - 161;4; 0.707107, 0.707107, 0.000000,-0.000000;;, - 162;4;-0.000000, 0.991445,-0.130526,-0.000000;;, - 163;4;-0.000000, 0.991445,-0.130526,-0.000000;;, - 164;4;-0.000000, 0.991445,-0.130526,-0.000000;;, - 165;4;-0.000000, 0.991445,-0.130526,-0.000000;;, - 166;4;-0.000000, 0.991445,-0.130526,-0.000000;;, - 167;4;-0.000000, 0.991445,-0.130526,-0.000000;;, - 168;4;-0.000000, 1.000000,-0.000000,-0.000000;;, - 169;4;-0.034052, 0.993234,-0.000000,-0.000000;;, - 170;4;-0.129904, 0.974175,-0.000000,-0.000000;;, - 171;4;-0.252901, 0.949704,-0.000000,-0.000000;;, - 172;4;-0.348675, 0.930646,-0.000000,-0.000000;;, - 173;4;-0.382683, 0.923880,-0.000000,-0.000000;;, - 174;4;-0.361005, 0.930646,-0.000000,-0.000000;;, - 175;4;-0.294618, 0.949704,-0.000000,-0.000000;;, - 176;4;-0.194899, 0.974175,-0.000000,-0.000000;;, - 177;4;-0.088939, 0.993234,-0.000000,-0.000000;;, - 178;4;-0.000000, 1.000000,-0.000000,-0.000000;;, - 179;4; 0.088939, 0.993234, 0.000000,-0.000000;;, - 180;4; 0.194899, 0.974175, 0.000000,-0.000000;;, - 181;4; 0.294618, 0.949704, 0.000000,-0.000000;;, - 182;4; 0.361005, 0.930646, 0.000000,-0.000000;;, - 183;4; 0.382683, 0.923880, 0.000000,-0.000000;;, - 184;4; 0.348675, 0.930646, 0.000000,-0.000000;;, - 185;4; 0.252901, 0.949704, 0.000000,-0.000000;;, - 186;4; 0.129903, 0.974175, 0.000000,-0.000000;;, - 187;4; 0.034052, 0.993233, 0.000000,-0.000000;;, - 188;4;-0.000000, 1.000000,-0.000000,-0.000000;;, - 189;4;-0.000000, 1.000000,-0.000000,-0.000000;;, - 190;4; 0.003877, 0.999915, 0.000000,-0.000000;;, - 191;4; 0.014798, 0.999677, 0.000000,-0.000000;;, - 192;4; 0.028821, 0.999371, 0.000000,-0.000000;;, - 193;4; 0.039742, 0.999133, 0.000000,-0.000000;;, - 194;4; 0.043619, 0.999048, 0.000000,-0.000000;;, - 195;4; 0.039742, 0.999133, 0.000000,-0.000000;;, - 196;4; 0.028821, 0.999371, 0.000000,-0.000000;;, - 197;4; 0.014798, 0.999677, 0.000000,-0.000000;;, - 198;4; 0.003877, 0.999915, 0.000000,-0.000000;;, - 199;4;-0.000000, 1.000000,-0.000000,-0.000000;;, - 200;4;-0.000000, 1.000000,-0.000000,-0.000000;;, - 201;4;-0.034052, 0.993233,-0.000000,-0.000000;;, - 202;4;-0.129903, 0.974175,-0.000000,-0.000000;;, - 203;4;-0.252901, 0.949704,-0.000000,-0.000000;;, - 204;4;-0.348675, 0.930646,-0.000000,-0.000000;;, - 205;4;-0.382683, 0.923880,-0.000000,-0.000000;;, - 206;4;-0.361005, 0.930646,-0.000000,-0.000000;;, - 207;4;-0.294618, 0.949704,-0.000000,-0.000000;;, - 208;4;-0.194899, 0.974175,-0.000000,-0.000000;;, - 209;4;-0.088939, 0.993234,-0.000000,-0.000000;;, - 210;4;-0.000000, 1.000000,-0.000000,-0.000000;;, - 211;4; 0.088939, 0.993234, 0.000000,-0.000000;;, - 212;4; 0.194899, 0.974175, 0.000000,-0.000000;;, - 213;4; 0.294618, 0.949704, 0.000000,-0.000000;;, - 214;4; 0.361005, 0.930646, 0.000000,-0.000000;;, - 215;4; 0.382683, 0.923880, 0.000000,-0.000000;;, - 216;4; 0.348699, 0.930646, 0.000000,-0.000000;;, - 217;4; 0.253041, 0.949703, 0.000000,-0.000000;;, - 218;4; 0.130122, 0.974173, 0.000000,-0.000000;;, - 219;4; 0.034158, 0.993233, 0.000000,-0.000000;;, - 220;4;-0.000000, 1.000000,-0.000000,-0.000000;;; - } - AnimationKey { // Scale - 1; - 221; - 0;3; 1.000000, 1.000000, 1.000000;;, - 1;3; 1.000000, 1.000000, 1.000000;;, - 2;3; 1.000000, 1.000000, 1.000000;;, - 3;3; 1.000000, 1.000000, 1.000000;;, - 4;3; 1.000000, 1.000000, 1.000000;;, - 5;3; 1.000000, 1.000000, 1.000000;;, - 6;3; 1.000000, 1.000000, 1.000000;;, - 7;3; 1.000000, 1.000000, 1.000000;;, - 8;3; 1.000000, 1.000000, 1.000000;;, - 9;3; 1.000000, 1.000000, 1.000000;;, - 10;3; 1.000000, 1.000000, 1.000000;;, - 11;3; 1.000000, 1.000000, 1.000000;;, - 12;3; 1.000000, 1.000000, 1.000000;;, - 13;3; 1.000000, 1.000000, 1.000000;;, - 14;3; 1.000000, 1.000000, 1.000000;;, - 15;3; 1.000000, 1.000000, 1.000000;;, - 16;3; 1.000000, 1.000000, 1.000000;;, - 17;3; 1.000000, 1.000000, 1.000000;;, - 18;3; 1.000000, 1.000000, 1.000000;;, - 19;3; 1.000000, 1.000000, 1.000000;;, - 20;3; 1.000000, 1.000000, 1.000000;;, - 21;3; 1.000000, 1.000000, 1.000000;;, - 22;3; 1.000000, 1.000000, 1.000000;;, - 23;3; 1.000000, 1.000000, 1.000000;;, - 24;3; 1.000000, 1.000000, 1.000000;;, - 25;3; 1.000000, 1.000000, 1.000000;;, - 26;3; 1.000000, 1.000000, 1.000000;;, - 27;3; 1.000000, 1.000000, 1.000000;;, - 28;3; 1.000000, 1.000000, 1.000000;;, - 29;3; 1.000000, 1.000000, 1.000000;;, - 30;3; 1.000000, 1.000000, 1.000000;;, - 31;3; 1.000000, 1.000000, 1.000000;;, - 32;3; 1.000000, 1.000000, 1.000000;;, - 33;3; 1.000000, 1.000000, 1.000000;;, - 34;3; 1.000000, 1.000000, 1.000000;;, - 35;3; 1.000000, 1.000000, 1.000000;;, - 36;3; 1.000000, 1.000000, 1.000000;;, - 37;3; 1.000000, 1.000000, 1.000000;;, - 38;3; 1.000000, 1.000000, 1.000000;;, - 39;3; 1.000000, 1.000000, 1.000000;;, - 40;3; 1.000000, 1.000000, 1.000000;;, - 41;3; 1.000000, 1.000000, 1.000000;;, - 42;3; 1.000000, 1.000000, 1.000000;;, - 43;3; 1.000000, 1.000000, 1.000000;;, - 44;3; 1.000000, 1.000000, 1.000000;;, - 45;3; 1.000000, 1.000000, 1.000000;;, - 46;3; 1.000000, 1.000000, 1.000000;;, - 47;3; 1.000000, 1.000000, 1.000000;;, - 48;3; 1.000000, 1.000000, 1.000000;;, - 49;3; 1.000000, 1.000000, 1.000000;;, - 50;3; 1.000000, 1.000000, 1.000000;;, - 51;3; 1.000000, 1.000000, 1.000000;;, - 52;3; 1.000000, 1.000000, 1.000000;;, - 53;3; 1.000000, 1.000000, 1.000000;;, - 54;3; 1.000000, 1.000000, 1.000000;;, - 55;3; 1.000000, 1.000000, 1.000000;;, - 56;3; 1.000000, 1.000000, 1.000000;;, - 57;3; 1.000000, 1.000000, 1.000000;;, - 58;3; 1.000000, 1.000000, 1.000000;;, - 59;3; 1.000000, 1.000000, 1.000000;;, - 60;3; 1.000000, 1.000000, 1.000000;;, - 61;3; 1.000000, 1.000000, 1.000000;;, - 62;3; 1.000000, 1.000000, 1.000000;;, - 63;3; 1.000000, 1.000000, 1.000000;;, - 64;3; 1.000000, 1.000000, 1.000000;;, - 65;3; 1.000000, 1.000000, 1.000000;;, - 66;3; 1.000000, 1.000000, 1.000000;;, - 67;3; 1.000000, 1.000000, 1.000000;;, - 68;3; 1.000000, 1.000000, 1.000000;;, - 69;3; 1.000000, 1.000000, 1.000000;;, - 70;3; 1.000000, 1.000000, 1.000000;;, - 71;3; 1.000000, 1.000000, 1.000000;;, - 72;3; 1.000000, 1.000000, 1.000000;;, - 73;3; 1.000000, 1.000000, 1.000000;;, - 74;3; 1.000000, 1.000000, 1.000000;;, - 75;3; 1.000000, 1.000000, 1.000000;;, - 76;3; 1.000000, 1.000000, 1.000000;;, - 77;3; 1.000000, 1.000000, 1.000000;;, - 78;3; 1.000000, 1.000000, 1.000000;;, - 79;3; 1.000000, 1.000000, 1.000000;;, - 80;3; 1.000000, 1.000000, 1.000000;;, - 81;3; 1.000000, 1.000000, 1.000000;;, - 82;3; 1.000000, 1.000000, 1.000000;;, - 83;3; 1.000000, 1.000000, 1.000000;;, - 84;3; 1.000000, 1.000000, 1.000000;;, - 85;3; 1.000000, 1.000000, 1.000000;;, - 86;3; 1.000000, 1.000000, 1.000000;;, - 87;3; 1.000000, 1.000000, 1.000000;;, - 88;3; 1.000000, 1.000000, 1.000000;;, - 89;3; 1.000000, 1.000000, 1.000000;;, - 90;3; 1.000000, 1.000000, 1.000000;;, - 91;3; 1.000000, 1.000000, 1.000000;;, - 92;3; 1.000000, 1.000000, 1.000000;;, - 93;3; 1.000000, 1.000000, 1.000000;;, - 94;3; 1.000000, 1.000000, 1.000000;;, - 95;3; 1.000000, 1.000000, 1.000000;;, - 96;3; 1.000000, 1.000000, 1.000000;;, - 97;3; 1.000000, 1.000000, 1.000000;;, - 98;3; 1.000000, 1.000000, 1.000000;;, - 99;3; 1.000000, 1.000000, 1.000000;;, - 100;3; 1.000000, 1.000000, 1.000000;;, - 101;3; 1.000000, 1.000000, 1.000000;;, - 102;3; 1.000000, 1.000000, 1.000000;;, - 103;3; 1.000000, 1.000000, 1.000000;;, - 104;3; 1.000000, 1.000000, 1.000000;;, - 105;3; 1.000000, 1.000000, 1.000000;;, - 106;3; 1.000000, 1.000000, 1.000000;;, - 107;3; 1.000000, 1.000000, 1.000000;;, - 108;3; 1.000000, 1.000000, 1.000000;;, - 109;3; 1.000000, 1.000000, 1.000000;;, - 110;3; 1.000000, 1.000000, 0.999999;;, - 111;3; 1.000000, 1.000000, 1.000000;;, - 112;3; 1.000000, 1.000000, 1.000000;;, - 113;3; 1.000000, 1.000000, 1.000000;;, - 114;3; 1.000000, 1.000000, 1.000000;;, - 115;3; 1.000000, 1.000000, 1.000000;;, - 116;3; 1.000000, 1.000000, 1.000000;;, - 117;3; 1.000000, 1.000000, 1.000000;;, - 118;3; 1.000000, 1.000000, 1.000000;;, - 119;3; 1.000000, 1.000000, 1.000000;;, - 120;3; 1.000000, 1.000000, 1.000000;;, - 121;3; 1.000000, 1.000000, 1.000000;;, - 122;3; 1.000000, 1.000000, 1.000000;;, - 123;3; 1.000000, 1.000000, 1.000000;;, - 124;3; 1.000000, 1.000000, 1.000000;;, - 125;3; 1.000000, 1.000000, 1.000000;;, - 126;3; 1.000000, 1.000000, 1.000000;;, - 127;3; 1.000000, 1.000000, 1.000000;;, - 128;3; 1.000000, 1.000000, 1.000000;;, - 129;3; 1.000000, 1.000000, 1.000000;;, - 130;3; 1.000000, 1.000000, 1.000000;;, - 131;3; 1.000000, 1.000000, 1.000000;;, - 132;3; 1.000000, 1.000000, 0.999999;;, - 133;3; 1.000000, 1.000000, 1.000000;;, - 134;3; 1.000000, 1.000000, 1.000000;;, - 135;3; 1.000000, 1.000000, 1.000000;;, - 136;3; 1.000000, 1.000000, 1.000000;;, - 137;3; 1.000000, 1.000000, 1.000000;;, - 138;3; 1.000000, 1.000000, 1.000000;;, - 139;3; 1.000000, 1.000000, 1.000000;;, - 140;3; 1.000000, 1.000000, 1.000000;;, - 141;3; 1.000000, 1.000000, 1.000000;;, - 142;3; 1.000000, 1.000000, 1.000000;;, - 143;3; 1.000000, 1.000000, 1.000000;;, - 144;3; 1.000000, 1.000000, 1.000000;;, - 145;3; 1.000000, 1.000000, 1.000000;;, - 146;3; 1.000000, 1.000000, 1.000000;;, - 147;3; 1.000000, 1.000000, 1.000000;;, - 148;3; 1.000000, 1.000000, 1.000000;;, - 149;3; 1.000000, 1.000000, 1.000000;;, - 150;3; 1.000000, 1.000000, 1.000000;;, - 151;3; 1.000000, 1.000000, 1.000000;;, - 152;3; 1.000000, 1.000000, 1.000000;;, - 153;3; 1.000000, 1.000000, 1.000000;;, - 154;3; 1.000000, 1.000000, 1.000000;;, - 155;3; 1.000000, 1.000000, 1.000000;;, - 156;3; 1.000000, 1.000000, 1.000000;;, - 157;3; 1.000000, 1.000000, 1.000000;;, - 158;3; 1.000000, 1.000000, 1.000000;;, - 159;3; 1.000000, 1.000000, 1.000000;;, - 160;3; 1.000000, 1.000000, 1.000000;;, - 161;3; 1.000000, 1.000000, 1.000000;;, - 162;3; 1.000000, 1.000000, 1.000000;;, - 163;3; 1.000000, 1.000000, 1.000000;;, - 164;3; 1.000000, 1.000000, 1.000000;;, - 165;3; 1.000000, 1.000000, 1.000000;;, - 166;3; 1.000000, 1.000000, 1.000000;;, - 167;3; 1.000000, 1.000000, 1.000000;;, - 168;3; 1.000000, 1.000000, 1.000000;;, - 169;3; 1.000000, 1.000000, 1.000000;;, - 170;3; 1.000000, 1.000000, 1.000000;;, - 171;3; 1.000000, 1.000000, 1.000000;;, - 172;3; 1.000000, 1.000000, 1.000000;;, - 173;3; 1.000000, 1.000000, 1.000000;;, - 174;3; 1.000000, 1.000000, 1.000000;;, - 175;3; 1.000000, 1.000000, 1.000000;;, - 176;3; 1.000000, 1.000000, 1.000000;;, - 177;3; 1.000000, 1.000000, 1.000000;;, - 178;3; 1.000000, 1.000000, 1.000000;;, - 179;3; 1.000000, 1.000000, 1.000000;;, - 180;3; 1.000000, 1.000000, 1.000000;;, - 181;3; 1.000000, 1.000000, 1.000000;;, - 182;3; 1.000000, 1.000000, 1.000000;;, - 183;3; 1.000000, 1.000000, 1.000000;;, - 184;3; 1.000000, 1.000000, 1.000000;;, - 185;3; 1.000000, 1.000000, 1.000000;;, - 186;3; 1.000000, 1.000000, 1.000000;;, - 187;3; 1.000000, 1.000000, 1.000000;;, - 188;3; 1.000000, 1.000000, 1.000000;;, - 189;3; 1.000000, 1.000000, 1.000000;;, - 190;3; 1.000000, 1.000000, 1.000000;;, - 191;3; 1.000000, 1.000000, 1.000000;;, - 192;3; 1.000000, 1.000000, 1.000000;;, - 193;3; 1.000000, 1.000000, 1.000000;;, - 194;3; 1.000000, 1.000000, 1.000000;;, - 195;3; 1.000000, 1.000000, 1.000000;;, - 196;3; 1.000000, 1.000000, 1.000000;;, - 197;3; 1.000000, 1.000000, 1.000000;;, - 198;3; 1.000000, 1.000000, 1.000000;;, - 199;3; 1.000000, 1.000000, 1.000000;;, - 200;3; 1.000000, 1.000000, 1.000000;;, - 201;3; 1.000000, 1.000000, 1.000000;;, - 202;3; 1.000000, 1.000000, 1.000000;;, - 203;3; 1.000000, 1.000000, 1.000000;;, - 204;3; 1.000000, 1.000000, 1.000000;;, - 205;3; 1.000000, 1.000000, 1.000000;;, - 206;3; 1.000000, 1.000000, 1.000000;;, - 207;3; 1.000000, 1.000000, 1.000000;;, - 208;3; 1.000000, 1.000000, 1.000000;;, - 209;3; 1.000000, 1.000000, 1.000000;;, - 210;3; 1.000000, 1.000000, 1.000000;;, - 211;3; 1.000000, 1.000000, 1.000000;;, - 212;3; 1.000000, 1.000000, 1.000000;;, - 213;3; 1.000000, 1.000000, 1.000000;;, - 214;3; 1.000000, 1.000000, 1.000000;;, - 215;3; 1.000000, 1.000000, 1.000000;;, - 216;3; 1.000000, 1.000000, 1.000000;;, - 217;3; 1.000000, 1.000000, 1.000000;;, - 218;3; 1.000000, 1.000000, 1.000000;;, - 219;3; 1.000000, 1.000000, 1.000000;;, - 220;3; 1.000000, 1.000000, 1.000000;;; - } - AnimationKey { // Position - 2; - 221; - 0;3;-1.000000, 0.000000,-0.000001;;, - 1;3;-1.000000, 0.000000,-0.000001;;, - 2;3;-1.000000,-0.000000,-0.000001;;, - 3;3;-1.000000,-0.000000,-0.000001;;, - 4;3;-1.000000,-0.000000,-0.000001;;, - 5;3;-1.000000,-0.000000,-0.000001;;, - 6;3;-1.000000,-0.000000,-0.000001;;, - 7;3;-1.000000, 0.000000,-0.000001;;, - 8;3;-1.000000,-0.000000,-0.000001;;, - 9;3;-1.000000,-0.000000,-0.000001;;, - 10;3;-1.000000,-0.000000,-0.000001;;, - 11;3;-1.000000,-0.000000,-0.000000;;, - 12;3;-1.000000,-0.000000,-0.000001;;, - 13;3;-1.000000, 0.000000,-0.000001;;, - 14;3;-1.000000,-0.000000,-0.000001;;, - 15;3;-1.000000,-0.000000,-0.000001;;, - 16;3;-1.000000,-0.000000,-0.000001;;, - 17;3;-1.000000,-0.000000,-0.000000;;, - 18;3;-1.000000, 0.000000,-0.000000;;, - 19;3;-1.000000,-0.000000,-0.000000;;, - 20;3;-1.000000, 0.000000,-0.000000;;, - 21;3;-1.000000,-0.000000,-0.000001;;, - 22;3;-1.000000, 0.000000,-0.000000;;, - 23;3;-1.000000,-0.000000,-0.000000;;, - 24;3;-1.000000,-0.000000,-0.000001;;, - 25;3;-1.000000,-0.000000,-0.000000;;, - 26;3;-1.000000,-0.000000,-0.000000;;, - 27;3;-1.000000, 0.000000,-0.000001;;, - 28;3;-1.000000,-0.000000,-0.000001;;, - 29;3;-1.000000,-0.000000,-0.000001;;, - 30;3;-1.000000,-0.000000,-0.000001;;, - 31;3;-1.000000,-0.000000,-0.000001;;, - 32;3;-1.000000,-0.000000,-0.000001;;, - 33;3;-1.000000, 0.000000,-0.000001;;, - 34;3;-1.000000,-0.000000,-0.000001;;, - 35;3;-1.000000,-0.000000,-0.000001;;, - 36;3;-1.000000,-0.000000,-0.000001;;, - 37;3;-1.000000,-0.000000,-0.000001;;, - 38;3;-1.000000,-0.000000,-0.000001;;, - 39;3;-1.000000, 0.000000,-0.000001;;, - 40;3;-1.000000, 0.000000,-0.000001;;, - 41;3;-1.000000, 0.000000,-0.000001;;, - 42;3;-1.000000,-0.000000,-0.000001;;, - 43;3;-1.000000,-0.000000,-0.000001;;, - 44;3;-1.000000,-0.000000,-0.000001;;, - 45;3;-1.000000,-0.000000,-0.000001;;, - 46;3;-1.000000,-0.000000,-0.000001;;, - 47;3;-1.000000, 0.000000,-0.000001;;, - 48;3;-1.000000,-0.000000,-0.000001;;, - 49;3;-1.000000,-0.000000,-0.000001;;, - 50;3;-1.000000,-0.000000,-0.000001;;, - 51;3;-1.000000,-0.000000,-0.000001;;, - 52;3;-1.000000,-0.000000,-0.000001;;, - 53;3;-1.000000, 0.000000,-0.000001;;, - 54;3;-1.000000,-0.000000,-0.000001;;, - 55;3;-1.000000,-0.000000,-0.000000;;, - 56;3;-1.000000,-0.000000,-0.000001;;, - 57;3;-1.000000,-0.000000,-0.000000;;, - 58;3;-1.000000, 0.000000,-0.000000;;, - 59;3;-1.000000,-0.000000,-0.000000;;, - 60;3;-1.000000, 0.000000,-0.000000;;, - 61;3;-1.000000, 0.000000,-0.000001;;, - 62;3;-1.000000,-0.000000,-0.000001;;, - 63;3;-1.000000,-0.000000,-0.000001;;, - 64;3;-1.000000, 0.000000,-0.000001;;, - 65;3;-1.000000,-0.000000,-0.000000;;, - 66;3;-1.000000,-0.000000,-0.000001;;, - 67;3;-1.000000,-0.000000,-0.000001;;, - 68;3;-1.000000, 0.000000,-0.000001;;, - 69;3;-1.000000,-0.000000,-0.000001;;, - 70;3;-1.000000,-0.000000,-0.000001;;, - 71;3;-1.000000,-0.000000,-0.000001;;, - 72;3;-1.000000,-0.000000,-0.000001;;, - 73;3;-1.000000, 0.000000,-0.000001;;, - 74;3;-1.000000,-0.000000,-0.000001;;, - 75;3;-1.000000, 0.000000,-0.000001;;, - 76;3;-1.000000,-0.000000,-0.000001;;, - 77;3;-1.000000,-0.000000,-0.000001;;, - 78;3;-1.000000, 0.000000,-0.000001;;, - 79;3;-1.000000,-0.000000,-0.000001;;, - 80;3;-1.000000, 0.000000,-0.000001;;, - 81;3;-1.000000, 0.000000,-0.000001;;, - 82;3;-1.000000,-0.000000,-0.000001;;, - 83;3;-1.000000,-0.000000,-0.000001;;, - 84;3;-1.000000,-0.000000,-0.000001;;, - 85;3;-1.000000,-0.000000,-0.000001;;, - 86;3;-1.000000,-0.000000,-0.000001;;, - 87;3;-1.000000,-0.000000,-0.000001;;, - 88;3;-1.000000,-0.000000,-0.000001;;, - 89;3;-1.000000,-0.000000,-0.000001;;, - 90;3;-1.000000,-0.000000,-0.000001;;, - 91;3;-1.000000,-0.000000,-0.000001;;, - 92;3;-1.000000,-0.000000,-0.000001;;, - 93;3;-1.000000,-0.000000,-0.000001;;, - 94;3;-1.000000,-0.000000,-0.000001;;, - 95;3;-1.000000,-0.000000,-0.000001;;, - 96;3;-1.000000,-0.000000,-0.000001;;, - 97;3;-1.000000,-0.000000,-0.000001;;, - 98;3;-1.000000,-0.000000,-0.000001;;, - 99;3;-1.000000,-0.000000,-0.000001;;, - 100;3;-1.000000,-0.000000,-0.000001;;, - 101;3;-1.000000,-0.000000,-0.000001;;, - 102;3;-1.000000,-0.000000,-0.000001;;, - 103;3;-1.000000,-0.000000,-0.000001;;, - 104;3;-1.000000,-0.000000,-0.000001;;, - 105;3;-1.000000,-0.000000,-0.000001;;, - 106;3;-1.000000,-0.000000,-0.000001;;, - 107;3;-1.000000,-0.000000,-0.000001;;, - 108;3;-1.000000,-0.000000,-0.000001;;, - 109;3;-1.000000,-0.000000,-0.000001;;, - 110;3;-1.000000,-0.000000,-0.000001;;, - 111;3;-1.000000,-0.000000,-0.000001;;, - 112;3;-1.000000,-0.000000,-0.000001;;, - 113;3;-1.000000,-0.000000,-0.000001;;, - 114;3;-1.000000,-0.000000,-0.000001;;, - 115;3;-1.000000,-0.000000,-0.000001;;, - 116;3;-1.000000,-0.000000,-0.000001;;, - 117;3;-1.000000,-0.000000,-0.000001;;, - 118;3;-1.000000,-0.000000,-0.000001;;, - 119;3;-1.000000,-0.000000,-0.000001;;, - 120;3;-1.000000,-0.000000,-0.000001;;, - 121;3;-1.000000, 0.000000,-0.000001;;, - 122;3;-1.000000,-0.000000,-0.000001;;, - 123;3;-1.000000,-0.000000,-0.000001;;, - 124;3;-1.000000,-0.000000,-0.000001;;, - 125;3;-1.000000,-0.000000,-0.000001;;, - 126;3;-1.000000,-0.000000,-0.000001;;, - 127;3;-1.000000,-0.000000,-0.000001;;, - 128;3;-1.000000,-0.000000,-0.000001;;, - 129;3;-1.000000,-0.000000,-0.000001;;, - 130;3;-1.000000,-0.000000,-0.000001;;, - 131;3;-1.000000,-0.000000,-0.000001;;, - 132;3;-1.000000,-0.000000,-0.000001;;, - 133;3;-1.000000,-0.000000,-0.000001;;, - 134;3;-1.000000,-0.000000,-0.000001;;, - 135;3;-1.000000,-0.000000,-0.000001;;, - 136;3;-1.000000,-0.000000,-0.000001;;, - 137;3;-1.000000,-0.000000,-0.000001;;, - 138;3;-1.000000,-0.000000,-0.000001;;, - 139;3;-1.000000,-0.000000,-0.000001;;, - 140;3;-1.000000,-0.000000,-0.000001;;, - 141;3;-1.000000,-0.000000,-0.000001;;, - 142;3;-1.000000,-0.000000,-0.000001;;, - 143;3;-1.000000,-0.000000,-0.000001;;, - 144;3;-1.000000,-0.000000,-0.000001;;, - 145;3;-1.000000,-0.000000,-0.000001;;, - 146;3;-1.000000,-0.000000,-0.000001;;, - 147;3;-1.000000,-0.000000,-0.000001;;, - 148;3;-1.000000,-0.000000,-0.000001;;, - 149;3;-1.000000,-0.000000,-0.000001;;, - 150;3;-1.000000,-0.000000,-0.000001;;, - 151;3;-1.000000,-0.000000,-0.000001;;, - 152;3;-1.000000,-0.000000,-0.000001;;, - 153;3;-1.000000,-0.000000,-0.000001;;, - 154;3;-1.000000,-0.000000,-0.000001;;, - 155;3;-1.000000,-0.000000,-0.000001;;, - 156;3;-1.000000,-0.000000,-0.000001;;, - 157;3;-1.000000,-0.000000,-0.000001;;, - 158;3;-1.000000,-0.000000,-0.000001;;, - 159;3;-1.000000,-0.000000,-0.000001;;, - 160;3;-1.000000,-0.000000,-0.000001;;, - 161;3;-1.000000, 0.000000,-0.000001;;, - 162;3;-1.000000,-0.000000,-0.000001;;, - 163;3;-1.000000,-0.000000,-0.000001;;, - 164;3;-1.000000,-0.000000,-0.000001;;, - 165;3;-1.000000,-0.000000,-0.000001;;, - 166;3;-1.000000,-0.000000,-0.000001;;, - 167;3;-1.000000,-0.000000,-0.000001;;, - 168;3;-1.000000, 0.000000,-0.000001;;, - 169;3;-1.000000, 0.000000,-0.000001;;, - 170;3;-1.000000, 0.000000,-0.000001;;, - 171;3;-1.000000, 0.000000,-0.000001;;, - 172;3;-1.000000, 0.000000,-0.000001;;, - 173;3;-1.000000, 0.000000,-0.000001;;, - 174;3;-1.000000, 0.000000,-0.000001;;, - 175;3;-1.000000, 0.000000,-0.000001;;, - 176;3;-1.000000, 0.000000,-0.000001;;, - 177;3;-1.000000, 0.000000,-0.000001;;, - 178;3;-1.000000, 0.000000,-0.000001;;, - 179;3;-1.000000, 0.000000,-0.000001;;, - 180;3;-1.000000, 0.000000,-0.000001;;, - 181;3;-1.000000, 0.000000,-0.000001;;, - 182;3;-1.000000, 0.000000,-0.000001;;, - 183;3;-1.000000, 0.000000,-0.000001;;, - 184;3;-1.000000, 0.000000,-0.000001;;, - 185;3;-1.000000, 0.000000,-0.000001;;, - 186;3;-1.000000, 0.000000,-0.000001;;, - 187;3;-1.000000, 0.000000,-0.000001;;, - 188;3;-1.000000, 0.000000,-0.000001;;, - 189;3;-1.000000, 0.000000,-0.000001;;, - 190;3;-1.000000,-0.000000,-0.000001;;, - 191;3;-1.000000,-0.000000,-0.000001;;, - 192;3;-1.000000,-0.000000,-0.000001;;, - 193;3;-1.000000, 0.000000,-0.000001;;, - 194;3;-1.000000, 0.000000,-0.000000;;, - 195;3;-1.000000, 0.000000,-0.000001;;, - 196;3;-1.000000,-0.000000,-0.000000;;, - 197;3;-1.000000,-0.000000,-0.000001;;, - 198;3;-1.000000,-0.000000,-0.000001;;, - 199;3;-1.000000, 0.000000,-0.000001;;, - 200;3;-1.000000, 0.000000,-0.000001;;, - 201;3;-1.000000,-0.000000,-0.000001;;, - 202;3;-1.000000,-0.000000,-0.000001;;, - 203;3;-1.000000,-0.000000,-0.000001;;, - 204;3;-1.000000,-0.000000,-0.000000;;, - 205;3;-1.000000, 0.000000,-0.000000;;, - 206;3;-1.000000,-0.000000,-0.000001;;, - 207;3;-1.000000,-0.000000,-0.000001;;, - 208;3;-1.000000,-0.000000,-0.000001;;, - 209;3;-1.000000, 0.000000,-0.000000;;, - 210;3;-1.000000, 0.000000,-0.000000;;, - 211;3;-1.000000, 0.000000,-0.000001;;, - 212;3;-1.000000,-0.000000,-0.000001;;, - 213;3;-1.000000,-0.000000,-0.000001;;, - 214;3;-1.000000,-0.000000,-0.000001;;, - 215;3;-1.000000, 0.000000,-0.000000;;, - 216;3;-1.000000,-0.000000,-0.000000;;, - 217;3;-1.000000,-0.000000,-0.000000;;, - 218;3;-1.000000,-0.000000,-0.000001;;, - 219;3;-1.000000,-0.000000,-0.000001;;, - 220;3;-1.000000, 0.000000,-0.000001;;; - } - } - Animation { - {Armature_Cape} - AnimationKey { // Rotation - 0; - 221; - 0;4; 0.000001, 1.000000, 0.000000,-0.000000;;, - 1;4;-0.000274, 1.000000, 0.000000,-0.000000;;, - 2;4;-0.001107, 1.000000, 0.000000,-0.000000;;, - 3;4;-0.002500, 1.000000, 0.000000,-0.000000;;, - 4;4;-0.004443, 1.000000, 0.000000,-0.000000;;, - 5;4;-0.006913, 1.000000, 0.000000,-0.000000;;, - 6;4;-0.009867, 1.000000, 0.000000,-0.000000;;, - 7;4;-0.013244, 1.000000, 0.000000,-0.000000;;, - 8;4;-0.016962, 1.000000, 0.000000,-0.000000;;, - 9;4;-0.020919, 1.000000, 0.000000,-0.000000;;, - 10;4;-0.024999, 1.000000, 0.000000,-0.000000;;, - 11;4;-0.029079, 1.000000, 0.000000,-0.000000;;, - 12;4;-0.033036, 1.000000, 0.000000,-0.000000;;, - 13;4;-0.036753, 1.000000, 0.000000,-0.000000;;, - 14;4;-0.040130, 1.000000, 0.000000,-0.000000;;, - 15;4;-0.043085, 1.000000, 0.000000,-0.000000;;, - 16;4;-0.045554, 1.000000, 0.000000,-0.000000;;, - 17;4;-0.047498, 1.000000, 0.000000,-0.000000;;, - 18;4;-0.048890, 1.000000, 0.000000,-0.000000;;, - 19;4;-0.049723, 1.000000, 0.000000,-0.000000;;, - 20;4;-0.049999, 1.000000, 0.000000,-0.000000;;, - 21;4;-0.049723, 1.000000, 0.000000,-0.000000;;, - 22;4;-0.048890, 1.000000, 0.000000,-0.000000;;, - 23;4;-0.047498, 1.000000, 0.000000,-0.000000;;, - 24;4;-0.045554, 1.000000, 0.000000,-0.000000;;, - 25;4;-0.043085, 1.000000, 0.000000,-0.000000;;, - 26;4;-0.040130, 1.000000, 0.000000,-0.000000;;, - 27;4;-0.036753, 1.000000, 0.000000,-0.000000;;, - 28;4;-0.033036, 1.000000, 0.000000,-0.000000;;, - 29;4;-0.029079, 1.000000, 0.000000,-0.000000;;, - 30;4;-0.024999, 1.000000, 0.000000,-0.000000;;, - 31;4;-0.020919, 1.000000, 0.000000,-0.000000;;, - 32;4;-0.016962, 1.000000, 0.000000,-0.000000;;, - 33;4;-0.013244, 1.000000, 0.000000,-0.000000;;, - 34;4;-0.009867, 1.000000, 0.000000,-0.000000;;, - 35;4;-0.006913, 1.000000, 0.000000,-0.000000;;, - 36;4;-0.004443, 1.000000, 0.000000,-0.000000;;, - 37;4;-0.002500, 1.000000, 0.000000,-0.000000;;, - 38;4;-0.001107, 1.000000, 0.000000,-0.000000;;, - 39;4;-0.000274, 1.000000, 0.000000,-0.000000;;, - 40;4; 0.000001, 1.000000, 0.000000,-0.000000;;, - 41;4;-0.000274, 1.000000, 0.000000,-0.000000;;, - 42;4;-0.001107, 1.000000, 0.000000,-0.000000;;, - 43;4;-0.002500, 1.000000, 0.000000,-0.000000;;, - 44;4;-0.004443, 1.000000, 0.000000,-0.000000;;, - 45;4;-0.006913, 1.000000, 0.000000,-0.000000;;, - 46;4;-0.009867, 1.000000, 0.000000,-0.000000;;, - 47;4;-0.013244, 1.000000, 0.000000,-0.000000;;, - 48;4;-0.016962, 1.000000, 0.000000,-0.000000;;, - 49;4;-0.020919, 1.000000, 0.000000,-0.000000;;, - 50;4;-0.024999, 1.000000, 0.000000,-0.000000;;, - 51;4;-0.029079, 1.000000, 0.000000,-0.000000;;, - 52;4;-0.033036, 1.000000, 0.000000,-0.000000;;, - 53;4;-0.036753, 1.000000, 0.000000,-0.000000;;, - 54;4;-0.040130, 1.000000, 0.000000,-0.000000;;, - 55;4;-0.043085, 1.000000, 0.000000,-0.000000;;, - 56;4;-0.045554, 1.000000, 0.000000,-0.000000;;, - 57;4;-0.047498, 1.000000, 0.000000,-0.000000;;, - 58;4;-0.048890, 1.000000, 0.000000,-0.000000;;, - 59;4;-0.049723, 1.000000, 0.000000,-0.000000;;, - 60;4;-0.049999, 1.000000, 0.000000,-0.000000;;, - 61;4;-0.049740, 1.000000, 0.000000,-0.000000;;, - 62;4;-0.049012, 1.000000, 0.000000,-0.000000;;, - 63;4;-0.047878, 1.000000, 0.000000,-0.000000;;, - 64;4;-0.046390, 1.000000, 0.000000,-0.000000;;, - 65;4;-0.044588, 1.000000, 0.000000,-0.000000;;, - 66;4;-0.042508, 1.000000, 0.000000,-0.000000;;, - 67;4;-0.040180, 1.000000, 0.000000,-0.000000;;, - 68;4;-0.037629, 1.000000, 0.000000,-0.000000;;, - 69;4;-0.034879, 1.000000, 0.000000,-0.000000;;, - 70;4;-0.031952, 1.000000, 0.000000,-0.000000;;, - 71;4;-0.028867, 1.000000, 0.000000,-0.000000;;, - 72;4;-0.025645, 1.000000, 0.000000,-0.000000;;, - 73;4;-0.022306, 1.000000, 0.000000,-0.000000;;, - 74;4;-0.018872, 1.000000, 0.000000,-0.000000;;, - 75;4;-0.015371, 1.000000, 0.000000,-0.000000;;, - 76;4;-0.011839, 1.000000, 0.000000,-0.000000;;, - 77;4;-0.008329, 1.000000, 0.000000,-0.000000;;, - 78;4;-0.004935, 1.000000, 0.000000,-0.000000;;, - 79;4;-0.001869, 1.000000, 0.000000,-0.000000;;, - 80;4; 0.000001, 1.000000, 0.000000,-0.000000;;, - 81;4; 0.000001, 1.000000, 0.000000,-0.000000;;, - 82;4;-0.001869, 1.000000, 0.000000,-0.000000;;, - 83;4;-0.004935, 1.000000, 0.000000,-0.000000;;, - 84;4;-0.008329, 1.000000, 0.000000,-0.000000;;, - 85;4;-0.011839, 1.000000, 0.000000,-0.000000;;, - 86;4;-0.015371, 1.000000, 0.000000,-0.000000;;, - 87;4;-0.018872, 1.000000, 0.000000,-0.000000;;, - 88;4;-0.022306, 1.000000, 0.000000,-0.000000;;, - 89;4;-0.025645, 1.000000, 0.000000,-0.000000;;, - 90;4;-0.028867, 1.000000, 0.000000,-0.000000;;, - 91;4;-0.031952, 1.000000, 0.000000,-0.000000;;, - 92;4;-0.034879, 1.000000, 0.000000,-0.000000;;, - 93;4;-0.037629, 1.000000, 0.000000,-0.000000;;, - 94;4;-0.040180, 1.000000, 0.000000,-0.000000;;, - 95;4;-0.042508, 1.000000, 0.000000,-0.000000;;, - 96;4;-0.044588, 1.000000, 0.000000,-0.000000;;, - 97;4;-0.046390, 1.000000, 0.000000,-0.000000;;, - 98;4;-0.047878, 1.000000, 0.000000,-0.000000;;, - 99;4;-0.049012, 1.000000, 0.000000,-0.000000;;, - 100;4;-0.049740, 1.000000, 0.000000,-0.000000;;, - 101;4;-0.049999, 1.000000, 0.000000,-0.000000;;, - 102;4;-0.049723, 1.000000, 0.000000,-0.000000;;, - 103;4;-0.048890, 1.000000, 0.000000,-0.000000;;, - 104;4;-0.047498, 1.000000, 0.000000,-0.000000;;, - 105;4;-0.045554, 1.000000, 0.000000,-0.000000;;, - 106;4;-0.043085, 1.000000, 0.000000,-0.000000;;, - 107;4;-0.040130, 1.000000, 0.000000,-0.000000;;, - 108;4;-0.036753, 1.000000, 0.000000,-0.000000;;, - 109;4;-0.033036, 1.000000, 0.000000,-0.000000;;, - 110;4;-0.029079, 1.000000, 0.000000,-0.000000;;, - 111;4;-0.024999, 1.000000, 0.000000,-0.000000;;, - 112;4;-0.020919, 1.000000, 0.000000,-0.000000;;, - 113;4;-0.016962, 1.000000, 0.000000,-0.000000;;, - 114;4;-0.013244, 1.000000, 0.000000,-0.000000;;, - 115;4;-0.009867, 1.000000, 0.000000,-0.000000;;, - 116;4;-0.006913, 1.000000, 0.000000,-0.000000;;, - 117;4;-0.004443, 1.000000, 0.000000,-0.000000;;, - 118;4;-0.002500, 1.000000, 0.000000,-0.000000;;, - 119;4;-0.001107, 1.000000, 0.000000,-0.000000;;, - 120;4;-0.000274, 1.000000, 0.000000,-0.000000;;, - 121;4; 0.000001, 1.000000, 0.000000,-0.000000;;, - 122;4;-0.000274, 1.000000, 0.000000,-0.000000;;, - 123;4;-0.001107, 1.000000, 0.000000,-0.000000;;, - 124;4;-0.002500, 1.000000, 0.000000,-0.000000;;, - 125;4;-0.004443, 1.000000, 0.000000,-0.000000;;, - 126;4;-0.006913, 1.000000, 0.000000,-0.000000;;, - 127;4;-0.009867, 1.000000, 0.000000,-0.000000;;, - 128;4;-0.013244, 1.000000, 0.000000,-0.000000;;, - 129;4;-0.016962, 1.000000, 0.000000,-0.000000;;, - 130;4;-0.020919, 1.000000, 0.000000,-0.000000;;, - 131;4;-0.024999, 1.000000, 0.000000,-0.000000;;, - 132;4;-0.029079, 1.000000, 0.000000,-0.000000;;, - 133;4;-0.033036, 1.000000, 0.000000,-0.000000;;, - 134;4;-0.036753, 1.000000, 0.000000,-0.000000;;, - 135;4;-0.040130, 1.000000, 0.000000,-0.000000;;, - 136;4;-0.043085, 1.000000, 0.000000,-0.000000;;, - 137;4;-0.045554, 1.000000, 0.000000,-0.000000;;, - 138;4;-0.047498, 1.000000, 0.000000,-0.000000;;, - 139;4;-0.048890, 1.000000, 0.000000,-0.000000;;, - 140;4;-0.049723, 1.000000, 0.000000,-0.000000;;, - 141;4;-0.049999, 1.000000, 0.000000,-0.000000;;, - 142;4;-0.049995, 1.000000, 0.000000,-0.000000;;, - 143;4;-0.049970, 1.000000, 0.000000,-0.000000;;, - 144;4;-0.049904, 1.000000, 0.000000,-0.000000;;, - 145;4;-0.049779, 1.000000, 0.000000,-0.000000;;, - 146;4;-0.049577, 1.000000, 0.000000,-0.000000;;, - 147;4;-0.049280, 1.000000, 0.000000,-0.000000;;, - 148;4;-0.048868, 1.000000, 0.000000,-0.000000;;, - 149;4;-0.048320, 1.000000, 0.000000,-0.000000;;, - 150;4;-0.047610, 1.000000, 0.000000,-0.000000;;, - 151;4;-0.046710, 1.000000, 0.000000,-0.000000;;, - 152;4;-0.045583, 1.000000, 0.000000,-0.000000;;, - 153;4;-0.044186, 1.000000, 0.000000,-0.000000;;, - 154;4;-0.042460, 1.000000, 0.000000,-0.000000;;, - 155;4;-0.040330, 1.000000, 0.000000,-0.000000;;, - 156;4;-0.037685, 1.000000, 0.000000,-0.000000;;, - 157;4;-0.034364, 1.000000, 0.000000,-0.000000;;, - 158;4;-0.030099, 1.000000, 0.000000,-0.000000;;, - 159;4;-0.024395, 1.000000, 0.000000,-0.000000;;, - 160;4;-0.016088, 1.000000, 0.000000,-0.000000;;, - 161;4; 0.000001, 1.000000, 0.000000,-0.000000;;, - 162;4; 1.000001, 0.999999,-0.000000,-0.000000;;, - 163;4; 1.000001, 0.999999,-0.000000,-0.000000;;, - 164;4; 1.000001, 0.999999,-0.000000,-0.000000;;, - 165;4; 1.000001, 0.999999,-0.000000,-0.000000;;, - 166;4; 1.000001, 0.999999,-0.000000,-0.000000;;, - 167;4; 1.000001, 0.999999,-0.000000,-0.000000;;, - 168;4; 0.000001, 1.000000, 0.000000,-0.000000;;, - 169;4;-0.147005, 1.000000, 0.000000,-0.000000;;, - 170;4;-0.239050, 1.000000, 0.000000,-0.000000;;, - 171;4;-0.283788, 1.000000, 0.000000,-0.000000;;, - 172;4;-0.298244, 1.000000, 0.000000,-0.000000;;, - 173;4;-0.299999, 1.000000, 0.000000,-0.000000;;, - 174;4;-0.273332, 1.000000, 0.000000,-0.000000;;, - 175;4;-0.198220, 1.000000, 0.000000,-0.000000;;, - 176;4;-0.101777, 1.000000, 0.000000,-0.000000;;, - 177;4;-0.026665, 1.000000, 0.000000,-0.000000;;, - 178;4; 0.000001, 1.000000, 0.000000,-0.000000;;, - 179;4;-0.026665, 1.000000, 0.000000,-0.000000;;, - 180;4;-0.101777, 1.000000, 0.000000,-0.000000;;, - 181;4;-0.198220, 1.000000, 0.000000,-0.000000;;, - 182;4;-0.273332, 1.000000, 0.000000,-0.000000;;, - 183;4;-0.299999, 1.000000, 0.000000,-0.000000;;, - 184;4;-0.273336, 1.000000, 0.000000,-0.000000;;, - 185;4;-0.198243, 1.000000, 0.000000,-0.000000;;, - 186;4;-0.101812, 1.000000, 0.000000,-0.000000;;, - 187;4;-0.026682, 1.000000, 0.000000,-0.000000;;, - 188;4; 0.000001, 1.000000, 0.000000,-0.000000;;, - 189;4; 0.000001, 1.000000, 0.000000,-0.000000;;, - 190;4;-0.008888, 1.000000, 0.000000,-0.000000;;, - 191;4;-0.033926, 1.000000, 0.000000,-0.000000;;, - 192;4;-0.066073, 1.000000, 0.000000,-0.000000;;, - 193;4;-0.091110, 1.000000, 0.000000,-0.000000;;, - 194;4;-0.099999, 1.000000, 0.000000,-0.000000;;, - 195;4;-0.091110, 1.000000, 0.000000,-0.000000;;, - 196;4;-0.066073, 1.000000, 0.000000,-0.000000;;, - 197;4;-0.033926, 1.000000, 0.000000,-0.000000;;, - 198;4;-0.008888, 1.000000, 0.000000,-0.000000;;, - 199;4; 0.000001, 1.000000, 0.000000,-0.000000;;, - 200;4; 0.000001, 1.000000, 0.000000,-0.000000;;, - 201;4;-0.026681, 1.000000, 0.000000,-0.000000;;, - 202;4;-0.101802, 1.000000, 0.000000,-0.000000;;, - 203;4;-0.198227, 1.000000, 0.000000,-0.000000;;, - 204;4;-0.273328, 1.000000, 0.000000,-0.000000;;, - 205;4;-0.299999, 1.000000, 0.000000,-0.000000;;, - 206;4;-0.291107, 1.000000, 0.000000,-0.000000;;, - 207;4;-0.266067, 1.000000, 0.000000,-0.000000;;, - 208;4;-0.233922, 1.000000, 0.000000,-0.000000;;, - 209;4;-0.208887, 1.000000, 0.000000,-0.000000;;, - 210;4;-0.199999, 1.000000, 0.000000,-0.000000;;, - 211;4;-0.208887, 1.000000, 0.000000,-0.000000;;, - 212;4;-0.233922, 1.000000, 0.000000,-0.000000;;, - 213;4;-0.266067, 1.000000, 0.000000,-0.000000;;, - 214;4;-0.291107, 1.000000, 0.000000,-0.000000;;, - 215;4;-0.299999, 1.000000, 0.000000,-0.000000;;, - 216;4;-0.273340, 1.000000, 0.000000,-0.000000;;, - 217;4;-0.198295, 1.000000, 0.000000,-0.000000;;, - 218;4;-0.101908, 1.000000, 0.000000,-0.000000;;, - 219;4;-0.026732, 1.000000, 0.000000,-0.000000;;, - 220;4; 0.000001, 1.000000, 0.000000,-0.000000;;; - } - AnimationKey { // Scale - 1; - 221; - 0;3; 1.000000, 1.000000, 1.000000;;, - 1;3; 1.000000, 1.000000, 1.000000;;, - 2;3; 1.000000, 1.000000, 1.000000;;, - 3;3; 1.000000, 1.000000, 1.000000;;, - 4;3; 1.000000, 1.000000, 1.000000;;, - 5;3; 1.000000, 1.000000, 1.000000;;, - 6;3; 1.000000, 1.000000, 1.000000;;, - 7;3; 1.000000, 1.000000, 1.000000;;, - 8;3; 1.000000, 1.000000, 1.000000;;, - 9;3; 1.000000, 1.000000, 1.000000;;, - 10;3; 1.000000, 1.000000, 1.000000;;, - 11;3; 1.000000, 1.000000, 1.000000;;, - 12;3; 1.000000, 1.000000, 1.000000;;, - 13;3; 1.000000, 1.000000, 1.000000;;, - 14;3; 1.000000, 1.000000, 1.000000;;, - 15;3; 1.000000, 1.000000, 1.000000;;, - 16;3; 1.000000, 1.000000, 1.000000;;, - 17;3; 1.000000, 1.000000, 1.000000;;, - 18;3; 1.000000, 1.000000, 1.000000;;, - 19;3; 1.000000, 1.000000, 1.000000;;, - 20;3; 1.000000, 1.000000, 1.000000;;, - 21;3; 1.000000, 1.000000, 1.000000;;, - 22;3; 1.000000, 1.000000, 1.000000;;, - 23;3; 1.000000, 1.000000, 1.000000;;, - 24;3; 1.000000, 1.000000, 1.000000;;, - 25;3; 1.000000, 1.000000, 1.000000;;, - 26;3; 1.000000, 1.000000, 1.000000;;, - 27;3; 1.000000, 1.000000, 1.000000;;, - 28;3; 1.000000, 1.000000, 1.000000;;, - 29;3; 1.000000, 1.000000, 1.000000;;, - 30;3; 1.000000, 1.000000, 1.000000;;, - 31;3; 1.000000, 1.000000, 1.000000;;, - 32;3; 1.000000, 1.000000, 1.000000;;, - 33;3; 1.000000, 1.000000, 1.000000;;, - 34;3; 1.000000, 1.000000, 1.000000;;, - 35;3; 1.000000, 1.000000, 1.000000;;, - 36;3; 1.000000, 1.000000, 1.000000;;, - 37;3; 1.000000, 1.000000, 1.000000;;, - 38;3; 1.000000, 1.000000, 1.000000;;, - 39;3; 1.000000, 1.000000, 1.000000;;, - 40;3; 1.000000, 1.000000, 1.000000;;, - 41;3; 1.000000, 1.000000, 1.000000;;, - 42;3; 1.000000, 1.000000, 1.000000;;, - 43;3; 1.000000, 1.000000, 1.000000;;, - 44;3; 1.000000, 1.000000, 1.000000;;, - 45;3; 1.000000, 1.000000, 1.000000;;, - 46;3; 1.000000, 1.000000, 1.000000;;, - 47;3; 1.000000, 1.000000, 1.000000;;, - 48;3; 1.000000, 1.000000, 1.000000;;, - 49;3; 1.000000, 1.000000, 1.000000;;, - 50;3; 1.000000, 1.000000, 1.000000;;, - 51;3; 1.000000, 1.000000, 1.000000;;, - 52;3; 1.000000, 1.000000, 1.000000;;, - 53;3; 1.000000, 1.000000, 1.000000;;, - 54;3; 1.000000, 1.000000, 1.000000;;, - 55;3; 1.000000, 1.000000, 1.000000;;, - 56;3; 1.000000, 1.000000, 1.000000;;, - 57;3; 1.000000, 1.000000, 1.000000;;, - 58;3; 1.000000, 1.000000, 1.000000;;, - 59;3; 1.000000, 1.000000, 1.000000;;, - 60;3; 1.000000, 1.000000, 1.000000;;, - 61;3; 1.000000, 1.000000, 1.000000;;, - 62;3; 1.000000, 1.000000, 1.000000;;, - 63;3; 1.000000, 1.000000, 1.000000;;, - 64;3; 1.000000, 1.000000, 1.000000;;, - 65;3; 1.000000, 1.000000, 1.000000;;, - 66;3; 1.000000, 1.000000, 1.000000;;, - 67;3; 1.000000, 1.000000, 1.000000;;, - 68;3; 1.000000, 1.000000, 1.000000;;, - 69;3; 1.000000, 1.000000, 1.000000;;, - 70;3; 1.000000, 1.000000, 1.000000;;, - 71;3; 1.000000, 1.000000, 1.000000;;, - 72;3; 1.000000, 1.000000, 1.000000;;, - 73;3; 1.000000, 1.000000, 1.000000;;, - 74;3; 1.000000, 1.000000, 1.000000;;, - 75;3; 1.000000, 1.000000, 1.000000;;, - 76;3; 1.000000, 1.000000, 1.000000;;, - 77;3; 1.000000, 1.000000, 1.000000;;, - 78;3; 1.000000, 1.000000, 1.000000;;, - 79;3; 1.000000, 1.000000, 1.000000;;, - 80;3; 1.000000, 1.000000, 1.000000;;, - 81;3; 1.000000, 1.000000, 1.000000;;, - 82;3; 1.000000, 1.000000, 1.000000;;, - 83;3; 1.000000, 1.000000, 1.000000;;, - 84;3; 1.000000, 1.000000, 1.000000;;, - 85;3; 1.000000, 1.000000, 1.000000;;, - 86;3; 1.000000, 1.000000, 1.000000;;, - 87;3; 1.000000, 1.000000, 1.000000;;, - 88;3; 1.000000, 1.000000, 1.000000;;, - 89;3; 1.000000, 1.000000, 1.000000;;, - 90;3; 1.000000, 1.000000, 1.000000;;, - 91;3; 1.000000, 1.000000, 1.000000;;, - 92;3; 1.000000, 1.000000, 1.000000;;, - 93;3; 1.000000, 1.000000, 1.000000;;, - 94;3; 1.000000, 1.000000, 1.000000;;, - 95;3; 1.000000, 1.000000, 1.000000;;, - 96;3; 1.000000, 1.000000, 1.000000;;, - 97;3; 1.000000, 1.000000, 1.000000;;, - 98;3; 1.000000, 1.000000, 1.000000;;, - 99;3; 1.000000, 1.000000, 1.000000;;, - 100;3; 1.000000, 1.000000, 1.000000;;, - 101;3; 1.000000, 1.000000, 1.000000;;, - 102;3; 1.000000, 1.000000, 1.000000;;, - 103;3; 1.000000, 1.000000, 1.000000;;, - 104;3; 1.000000, 1.000000, 1.000000;;, - 105;3; 1.000000, 1.000000, 1.000000;;, - 106;3; 1.000000, 1.000000, 1.000000;;, - 107;3; 1.000000, 1.000000, 1.000000;;, - 108;3; 1.000000, 1.000000, 1.000000;;, - 109;3; 1.000000, 1.000000, 1.000000;;, - 110;3; 1.000000, 1.000000, 1.000000;;, - 111;3; 1.000000, 1.000000, 1.000000;;, - 112;3; 1.000000, 1.000000, 1.000000;;, - 113;3; 1.000000, 1.000000, 1.000000;;, - 114;3; 1.000000, 1.000000, 1.000000;;, - 115;3; 1.000000, 1.000000, 1.000000;;, - 116;3; 1.000000, 1.000000, 1.000000;;, - 117;3; 1.000000, 1.000000, 1.000000;;, - 118;3; 1.000000, 1.000000, 1.000000;;, - 119;3; 1.000000, 1.000000, 1.000000;;, - 120;3; 1.000000, 1.000000, 1.000000;;, - 121;3; 1.000000, 1.000000, 1.000000;;, - 122;3; 1.000000, 1.000000, 1.000000;;, - 123;3; 1.000000, 1.000000, 1.000000;;, - 124;3; 1.000000, 1.000000, 1.000000;;, - 125;3; 1.000000, 1.000000, 1.000000;;, - 126;3; 1.000000, 1.000000, 1.000000;;, - 127;3; 1.000000, 1.000000, 1.000000;;, - 128;3; 1.000000, 1.000000, 1.000000;;, - 129;3; 1.000000, 1.000000, 1.000000;;, - 130;3; 1.000000, 1.000000, 1.000000;;, - 131;3; 1.000000, 1.000000, 1.000000;;, - 132;3; 1.000000, 1.000000, 1.000000;;, - 133;3; 1.000000, 1.000000, 1.000000;;, - 134;3; 1.000000, 1.000000, 1.000000;;, - 135;3; 1.000000, 1.000000, 1.000000;;, - 136;3; 1.000000, 1.000000, 1.000000;;, - 137;3; 1.000000, 1.000000, 1.000000;;, - 138;3; 1.000000, 1.000000, 1.000000;;, - 139;3; 1.000000, 1.000000, 1.000000;;, - 140;3; 1.000000, 1.000000, 1.000000;;, - 141;3; 1.000000, 1.000000, 1.000000;;, - 142;3; 1.000000, 1.000000, 1.000000;;, - 143;3; 1.000000, 1.000000, 1.000000;;, - 144;3; 1.000000, 1.000000, 1.000000;;, - 145;3; 1.000000, 1.000000, 1.000000;;, - 146;3; 1.000000, 1.000000, 1.000000;;, - 147;3; 1.000000, 1.000000, 1.000000;;, - 148;3; 1.000000, 1.000000, 1.000000;;, - 149;3; 1.000000, 1.000000, 1.000000;;, - 150;3; 1.000000, 1.000000, 1.000000;;, - 151;3; 1.000000, 1.000000, 1.000000;;, - 152;3; 1.000000, 1.000000, 1.000000;;, - 153;3; 1.000000, 1.000000, 1.000000;;, - 154;3; 1.000000, 1.000000, 1.000000;;, - 155;3; 1.000000, 1.000000, 1.000000;;, - 156;3; 1.000000, 1.000000, 1.000000;;, - 157;3; 1.000000, 1.000000, 1.000000;;, - 158;3; 1.000000, 1.000000, 1.000000;;, - 159;3; 1.000000, 1.000000, 1.000000;;, - 160;3; 1.000000, 1.000000, 1.000000;;, - 161;3; 1.000000, 1.000000, 1.000000;;, - 162;3; 1.000000, 1.000000, 1.000000;;, - 163;3; 1.000000, 1.000000, 1.000000;;, - 164;3; 1.000000, 1.000000, 1.000000;;, - 165;3; 1.000000, 1.000000, 1.000000;;, - 166;3; 1.000000, 1.000000, 1.000000;;, - 167;3; 1.000000, 1.000000, 1.000000;;, - 168;3; 1.000000, 1.000000, 1.000000;;, - 169;3; 1.000000, 1.000000, 1.000000;;, - 170;3; 1.000000, 1.000000, 1.000000;;, - 171;3; 1.000000, 1.000000, 1.000000;;, - 172;3; 1.000000, 1.000000, 1.000000;;, - 173;3; 1.000000, 1.000000, 1.000000;;, - 174;3; 1.000000, 1.000000, 1.000000;;, - 175;3; 1.000000, 1.000000, 1.000000;;, - 176;3; 1.000000, 1.000000, 1.000000;;, - 177;3; 1.000000, 1.000000, 1.000000;;, - 178;3; 1.000000, 1.000000, 1.000000;;, - 179;3; 1.000000, 1.000000, 1.000000;;, - 180;3; 1.000000, 1.000000, 1.000000;;, - 181;3; 1.000000, 1.000000, 1.000000;;, - 182;3; 1.000000, 1.000000, 1.000000;;, - 183;3; 1.000000, 1.000000, 1.000000;;, - 184;3; 1.000000, 1.000000, 1.000000;;, - 185;3; 1.000000, 1.000000, 1.000000;;, - 186;3; 1.000000, 1.000000, 1.000000;;, - 187;3; 1.000000, 1.000000, 1.000000;;, - 188;3; 1.000000, 1.000000, 1.000000;;, - 189;3; 1.000000, 1.000000, 1.000000;;, - 190;3; 1.000000, 1.000000, 1.000000;;, - 191;3; 1.000000, 1.000000, 1.000000;;, - 192;3; 1.000000, 1.000000, 1.000000;;, - 193;3; 1.000000, 1.000000, 1.000000;;, - 194;3; 1.000000, 1.000000, 1.000000;;, - 195;3; 1.000000, 1.000000, 1.000000;;, - 196;3; 1.000000, 1.000000, 1.000000;;, - 197;3; 1.000000, 1.000000, 1.000000;;, - 198;3; 1.000000, 1.000000, 1.000000;;, - 199;3; 1.000000, 1.000000, 1.000000;;, - 200;3; 1.000000, 1.000000, 1.000000;;, - 201;3; 1.000000, 1.000000, 1.000000;;, - 202;3; 1.000000, 1.000000, 1.000000;;, - 203;3; 1.000000, 1.000000, 1.000000;;, - 204;3; 1.000000, 1.000000, 1.000000;;, - 205;3; 1.000000, 1.000000, 1.000000;;, - 206;3; 1.000000, 1.000000, 1.000000;;, - 207;3; 1.000000, 1.000000, 1.000000;;, - 208;3; 1.000000, 1.000000, 1.000000;;, - 209;3; 1.000000, 1.000000, 1.000000;;, - 210;3; 1.000000, 1.000000, 1.000000;;, - 211;3; 1.000000, 1.000000, 1.000000;;, - 212;3; 1.000000, 1.000000, 1.000000;;, - 213;3; 1.000000, 1.000000, 1.000000;;, - 214;3; 1.000000, 1.000000, 1.000000;;, - 215;3; 1.000000, 1.000000, 1.000000;;, - 216;3; 1.000000, 1.000000, 1.000000;;, - 217;3; 1.000000, 1.000000, 1.000000;;, - 218;3; 1.000000, 1.000000, 1.000000;;, - 219;3; 1.000000, 1.000000, 1.000000;;, - 220;3; 1.000000, 1.000000, 1.000000;;; - } - AnimationKey { // Position - 2; - 221; - 0;3; 0.000000, 6.750000, 0.976707;;, - 1;3; 0.000000, 6.750000, 0.976707;;, - 2;3; 0.000000, 6.750000, 0.976707;;, - 3;3; 0.000000, 6.750000, 0.976707;;, - 4;3; 0.000000, 6.750000, 0.976707;;, - 5;3; 0.000000, 6.750000, 0.976707;;, - 6;3; 0.000000, 6.750000, 0.976707;;, - 7;3; 0.000000, 6.750000, 0.976707;;, - 8;3; 0.000000, 6.750000, 0.976707;;, - 9;3; 0.000000, 6.750000, 0.976707;;, - 10;3; 0.000000, 6.750000, 0.976707;;, - 11;3; 0.000000, 6.750000, 0.976707;;, - 12;3; 0.000000, 6.750000, 0.976707;;, - 13;3; 0.000000, 6.750000, 0.976707;;, - 14;3; 0.000000, 6.750000, 0.976707;;, - 15;3; 0.000000, 6.750000, 0.976707;;, - 16;3; 0.000000, 6.750000, 0.976707;;, - 17;3; 0.000000, 6.750000, 0.976707;;, - 18;3; 0.000000, 6.750000, 0.976707;;, - 19;3; 0.000000, 6.750000, 0.976707;;, - 20;3; 0.000000, 6.750000, 0.976707;;, - 21;3; 0.000000, 6.750000, 0.976707;;, - 22;3; 0.000000, 6.750000, 0.976707;;, - 23;3; 0.000000, 6.750000, 0.976707;;, - 24;3; 0.000000, 6.750000, 0.976707;;, - 25;3; 0.000000, 6.750000, 0.976707;;, - 26;3; 0.000000, 6.750000, 0.976707;;, - 27;3; 0.000000, 6.750000, 0.976707;;, - 28;3; 0.000000, 6.750000, 0.976707;;, - 29;3; 0.000000, 6.750000, 0.976707;;, - 30;3; 0.000000, 6.750000, 0.976707;;, - 31;3; 0.000000, 6.750000, 0.976707;;, - 32;3; 0.000000, 6.750000, 0.976707;;, - 33;3; 0.000000, 6.750000, 0.976707;;, - 34;3; 0.000000, 6.750000, 0.976707;;, - 35;3; 0.000000, 6.750000, 0.976707;;, - 36;3; 0.000000, 6.750000, 0.976707;;, - 37;3; 0.000000, 6.750000, 0.976707;;, - 38;3; 0.000000, 6.750000, 0.976707;;, - 39;3; 0.000000, 6.750000, 0.976707;;, - 40;3; 0.000000, 6.750000, 0.976707;;, - 41;3; 0.000000, 6.750000, 0.976707;;, - 42;3; 0.000000, 6.750000, 0.976707;;, - 43;3; 0.000000, 6.750000, 0.976707;;, - 44;3; 0.000000, 6.750000, 0.976707;;, - 45;3; 0.000000, 6.750000, 0.976707;;, - 46;3; 0.000000, 6.750000, 0.976707;;, - 47;3; 0.000000, 6.750000, 0.976707;;, - 48;3; 0.000000, 6.750000, 0.976707;;, - 49;3; 0.000000, 6.750000, 0.976707;;, - 50;3; 0.000000, 6.750000, 0.976707;;, - 51;3; 0.000000, 6.750000, 0.976707;;, - 52;3; 0.000000, 6.750000, 0.976707;;, - 53;3; 0.000000, 6.750000, 0.976707;;, - 54;3; 0.000000, 6.750000, 0.976707;;, - 55;3; 0.000000, 6.750000, 0.976707;;, - 56;3; 0.000000, 6.750000, 0.976707;;, - 57;3; 0.000000, 6.750000, 0.976707;;, - 58;3; 0.000000, 6.750000, 0.976707;;, - 59;3; 0.000000, 6.750000, 0.976707;;, - 60;3; 0.000000, 6.750000, 0.976707;;, - 61;3; 0.000000, 6.750000, 0.976707;;, - 62;3; 0.000000, 6.750000, 0.976707;;, - 63;3; 0.000000, 6.750000, 0.976707;;, - 64;3; 0.000000, 6.750000, 0.976707;;, - 65;3; 0.000000, 6.750000, 0.976707;;, - 66;3; 0.000000, 6.750000, 0.976707;;, - 67;3; 0.000000, 6.750000, 0.976707;;, - 68;3; 0.000000, 6.750000, 0.976707;;, - 69;3; 0.000000, 6.750000, 0.976707;;, - 70;3; 0.000000, 6.750000, 0.976707;;, - 71;3; 0.000000, 6.750000, 0.976707;;, - 72;3; 0.000000, 6.750000, 0.976707;;, - 73;3; 0.000000, 6.750000, 0.976707;;, - 74;3; 0.000000, 6.750000, 0.976707;;, - 75;3; 0.000000, 6.750000, 0.976707;;, - 76;3; 0.000000, 6.750000, 0.976707;;, - 77;3; 0.000000, 6.750000, 0.976707;;, - 78;3; 0.000000, 6.750000, 0.976707;;, - 79;3; 0.000000, 6.750000, 0.976707;;, - 80;3; 0.000000, 6.750000, 0.976707;;, - 81;3; 0.000000, 6.750000, 0.976707;;, - 82;3; 0.000000, 6.750000, 0.976707;;, - 83;3; 0.000000, 6.750000, 0.976707;;, - 84;3; 0.000000, 6.750000, 0.976707;;, - 85;3; 0.000000, 6.750000, 0.976707;;, - 86;3; 0.000000, 6.750000, 0.976707;;, - 87;3; 0.000000, 6.750000, 0.976707;;, - 88;3; 0.000000, 6.750000, 0.976707;;, - 89;3; 0.000000, 6.750000, 0.976707;;, - 90;3; 0.000000, 6.750000, 0.976707;;, - 91;3; 0.000000, 6.750000, 0.976707;;, - 92;3; 0.000000, 6.750000, 0.976707;;, - 93;3; 0.000000, 6.750000, 0.976707;;, - 94;3; 0.000000, 6.750000, 0.976707;;, - 95;3; 0.000000, 6.750000, 0.976707;;, - 96;3; 0.000000, 6.750000, 0.976707;;, - 97;3; 0.000000, 6.750000, 0.976707;;, - 98;3; 0.000000, 6.750000, 0.976707;;, - 99;3; 0.000000, 6.750000, 0.976707;;, - 100;3; 0.000000, 6.750000, 0.976707;;, - 101;3; 0.000000, 6.750000, 0.976707;;, - 102;3; 0.000000, 6.750000, 0.976707;;, - 103;3; 0.000000, 6.750000, 0.976707;;, - 104;3; 0.000000, 6.750000, 0.976707;;, - 105;3; 0.000000, 6.750000, 0.976707;;, - 106;3; 0.000000, 6.750000, 0.976707;;, - 107;3; 0.000000, 6.750000, 0.976707;;, - 108;3; 0.000000, 6.750000, 0.976707;;, - 109;3; 0.000000, 6.750000, 0.976707;;, - 110;3; 0.000000, 6.750000, 0.976707;;, - 111;3; 0.000000, 6.750000, 0.976707;;, - 112;3; 0.000000, 6.750000, 0.976707;;, - 113;3; 0.000000, 6.750000, 0.976707;;, - 114;3; 0.000000, 6.750000, 0.976707;;, - 115;3; 0.000000, 6.750000, 0.976707;;, - 116;3; 0.000000, 6.750000, 0.976707;;, - 117;3; 0.000000, 6.750000, 0.976707;;, - 118;3; 0.000000, 6.750000, 0.976707;;, - 119;3; 0.000000, 6.750000, 0.976707;;, - 120;3; 0.000000, 6.750000, 0.976707;;, - 121;3; 0.000000, 6.750000, 0.976707;;, - 122;3; 0.000000, 6.750000, 0.976707;;, - 123;3; 0.000000, 6.750000, 0.976707;;, - 124;3; 0.000000, 6.750000, 0.976707;;, - 125;3; 0.000000, 6.750000, 0.976707;;, - 126;3; 0.000000, 6.750000, 0.976707;;, - 127;3; 0.000000, 6.750000, 0.976707;;, - 128;3; 0.000000, 6.750000, 0.976707;;, - 129;3; 0.000000, 6.750000, 0.976707;;, - 130;3; 0.000000, 6.750000, 0.976707;;, - 131;3; 0.000000, 6.750000, 0.976707;;, - 132;3; 0.000000, 6.750000, 0.976707;;, - 133;3; 0.000000, 6.750000, 0.976707;;, - 134;3; 0.000000, 6.750000, 0.976707;;, - 135;3; 0.000000, 6.750000, 0.976707;;, - 136;3; 0.000000, 6.750000, 0.976707;;, - 137;3; 0.000000, 6.750000, 0.976707;;, - 138;3; 0.000000, 6.750000, 0.976707;;, - 139;3; 0.000000, 6.750000, 0.976707;;, - 140;3; 0.000000, 6.750000, 0.976707;;, - 141;3; 0.000000, 6.750000, 0.976707;;, - 142;3; 0.000000, 6.750000, 0.976707;;, - 143;3; 0.000000, 6.750000, 0.976707;;, - 144;3; 0.000000, 6.750000, 0.976707;;, - 145;3; 0.000000, 6.750000, 0.976707;;, - 146;3; 0.000000, 6.750000, 0.976707;;, - 147;3; 0.000000, 6.750000, 0.976707;;, - 148;3; 0.000000, 6.750000, 0.976707;;, - 149;3; 0.000000, 6.750000, 0.976707;;, - 150;3; 0.000000, 6.750000, 0.976707;;, - 151;3; 0.000000, 6.750000, 0.976707;;, - 152;3; 0.000000, 6.750000, 0.976707;;, - 153;3; 0.000000, 6.750000, 0.976707;;, - 154;3; 0.000000, 6.750000, 0.976707;;, - 155;3; 0.000000, 6.750000, 0.976707;;, - 156;3; 0.000000, 6.750000, 0.976707;;, - 157;3; 0.000000, 6.750000, 0.976707;;, - 158;3; 0.000000, 6.750000, 0.976707;;, - 159;3; 0.000000, 6.750000, 0.976707;;, - 160;3; 0.000000, 6.750000, 0.976707;;, - 161;3; 0.000000, 6.750000, 0.976707;;, - 162;3; 0.000000, 6.750000, 0.976707;;, - 163;3; 0.000000, 6.750000, 0.976707;;, - 164;3; 0.000000, 6.750000, 0.976707;;, - 165;3; 0.000000, 6.750000, 0.976707;;, - 166;3; 0.000000, 6.750000, 0.976707;;, - 167;3; 0.000000, 6.750000, 0.976707;;, - 168;3; 0.000000, 6.750000, 0.976707;;, - 169;3; 0.000000, 6.750000, 0.976707;;, - 170;3; 0.000000, 6.750000, 0.976707;;, - 171;3; 0.000000, 6.750000, 0.976707;;, - 172;3; 0.000000, 6.750000, 0.976707;;, - 173;3; 0.000000, 6.750000, 0.976707;;, - 174;3; 0.000000, 6.750000, 0.976707;;, - 175;3; 0.000000, 6.750000, 0.976707;;, - 176;3; 0.000000, 6.750000, 0.976707;;, - 177;3; 0.000000, 6.750000, 0.976707;;, - 178;3; 0.000000, 6.750000, 0.976707;;, - 179;3; 0.000000, 6.750000, 0.976707;;, - 180;3; 0.000000, 6.750000, 0.976707;;, - 181;3; 0.000000, 6.750000, 0.976707;;, - 182;3; 0.000000, 6.750000, 0.976707;;, - 183;3; 0.000000, 6.750000, 0.976707;;, - 184;3; 0.000000, 6.750000, 0.976707;;, - 185;3; 0.000000, 6.750000, 0.976707;;, - 186;3; 0.000000, 6.750000, 0.976707;;, - 187;3; 0.000000, 6.750000, 0.976707;;, - 188;3; 0.000000, 6.750000, 0.976707;;, - 189;3; 0.000000, 6.750000, 0.976707;;, - 190;3; 0.000000, 6.750000, 0.976707;;, - 191;3; 0.000000, 6.750000, 0.976707;;, - 192;3; 0.000000, 6.750000, 0.976707;;, - 193;3; 0.000000, 6.750000, 0.976707;;, - 194;3; 0.000000, 6.750000, 0.976707;;, - 195;3; 0.000000, 6.750000, 0.976707;;, - 196;3; 0.000000, 6.750000, 0.976707;;, - 197;3; 0.000000, 6.750000, 0.976707;;, - 198;3; 0.000000, 6.750000, 0.976707;;, - 199;3; 0.000000, 6.750000, 0.976707;;, - 200;3; 0.000000, 6.750000, 0.976707;;, - 201;3; 0.000000, 6.750000, 0.976707;;, - 202;3; 0.000000, 6.750000, 0.976707;;, - 203;3; 0.000000, 6.750000, 0.976707;;, - 204;3; 0.000000, 6.750000, 0.976707;;, - 205;3; 0.000000, 6.750000, 0.976707;;, - 206;3; 0.000000, 6.750000, 0.976707;;, - 207;3; 0.000000, 6.750000, 0.976707;;, - 208;3; 0.000000, 6.750000, 0.976707;;, - 209;3; 0.000000, 6.750000, 0.976707;;, - 210;3; 0.000000, 6.750000, 0.976707;;, - 211;3; 0.000000, 6.750000, 0.976707;;, - 212;3; 0.000000, 6.750000, 0.976707;;, - 213;3; 0.000000, 6.750000, 0.976707;;, - 214;3; 0.000000, 6.750000, 0.976707;;, - 215;3; 0.000000, 6.750000, 0.976707;;, - 216;3; 0.000000, 6.750000, 0.976707;;, - 217;3; 0.000000, 6.750000, 0.976707;;, - 218;3; 0.000000, 6.750000, 0.976707;;, - 219;3; 0.000000, 6.750000, 0.976707;;, - 220;3; 0.000000, 6.750000, 0.976707;;; - } - } -} // End of AnimationSet ArmatureAction -AnimationSet Default_Action { - Animation { - {Player} - AnimationKey { // Rotation - 0; - 221; - 0;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 1;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 2;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 3;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 4;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 5;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 6;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 7;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 8;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 9;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 10;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 11;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 12;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 13;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 14;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 15;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 16;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 17;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 18;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 19;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 20;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 21;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 22;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 23;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 24;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 25;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 26;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 27;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 28;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 29;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 30;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 31;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 32;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 33;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 34;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 35;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 36;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 37;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 38;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 39;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 40;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 41;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 42;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 43;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 44;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 45;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 46;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 47;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 48;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 49;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 50;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 51;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 52;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 53;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 54;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 55;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 56;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 57;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 58;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 59;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 60;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 61;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 62;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 63;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 64;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 65;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 66;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 67;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 68;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 69;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 70;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 71;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 72;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 73;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 74;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 75;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 76;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 77;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 78;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 79;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 80;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 81;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 82;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 83;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 84;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 85;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 86;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 87;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 88;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 89;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 90;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 91;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 92;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 93;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 94;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 95;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 96;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 97;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 98;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 99;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 100;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 101;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 102;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 103;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 104;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 105;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 106;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 107;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 108;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 109;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 110;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 111;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 112;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 113;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 114;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 115;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 116;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 117;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 118;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 119;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 120;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 121;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 122;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 123;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 124;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 125;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 126;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 127;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 128;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 129;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 130;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 131;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 132;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 133;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 134;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 135;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 136;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 137;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 138;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 139;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 140;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 141;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 142;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 143;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 144;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 145;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 146;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 147;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 148;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 149;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 150;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 151;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 152;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 153;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 154;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 155;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 156;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 157;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 158;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 159;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 160;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 161;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 162;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 163;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 164;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 165;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 166;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 167;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 168;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 169;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 170;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 171;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 172;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 173;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 174;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 175;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 176;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 177;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 178;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 179;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 180;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 181;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 182;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 183;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 184;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 185;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 186;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 187;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 188;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 189;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 190;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 191;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 192;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 193;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 194;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 195;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 196;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 197;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 198;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 199;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 200;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 201;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 202;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 203;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 204;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 205;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 206;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 207;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 208;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 209;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 210;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 211;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 212;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 213;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 214;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 215;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 216;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 217;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 218;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 219;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 220;4;-1.000000, 0.000000, 0.000000, 0.000000;;; - } - AnimationKey { // Scale - 1; - 221; - 0;3; 1.000000, 1.000000, 1.000000;;, - 1;3; 1.000000, 1.000000, 1.000000;;, - 2;3; 1.000000, 1.000000, 1.000000;;, - 3;3; 1.000000, 1.000000, 1.000000;;, - 4;3; 1.000000, 1.000000, 1.000000;;, - 5;3; 1.000000, 1.000000, 1.000000;;, - 6;3; 1.000000, 1.000000, 1.000000;;, - 7;3; 1.000000, 1.000000, 1.000000;;, - 8;3; 1.000000, 1.000000, 1.000000;;, - 9;3; 1.000000, 1.000000, 1.000000;;, - 10;3; 1.000000, 1.000000, 1.000000;;, - 11;3; 1.000000, 1.000000, 1.000000;;, - 12;3; 1.000000, 1.000000, 1.000000;;, - 13;3; 1.000000, 1.000000, 1.000000;;, - 14;3; 1.000000, 1.000000, 1.000000;;, - 15;3; 1.000000, 1.000000, 1.000000;;, - 16;3; 1.000000, 1.000000, 1.000000;;, - 17;3; 1.000000, 1.000000, 1.000000;;, - 18;3; 1.000000, 1.000000, 1.000000;;, - 19;3; 1.000000, 1.000000, 1.000000;;, - 20;3; 1.000000, 1.000000, 1.000000;;, - 21;3; 1.000000, 1.000000, 1.000000;;, - 22;3; 1.000000, 1.000000, 1.000000;;, - 23;3; 1.000000, 1.000000, 1.000000;;, - 24;3; 1.000000, 1.000000, 1.000000;;, - 25;3; 1.000000, 1.000000, 1.000000;;, - 26;3; 1.000000, 1.000000, 1.000000;;, - 27;3; 1.000000, 1.000000, 1.000000;;, - 28;3; 1.000000, 1.000000, 1.000000;;, - 29;3; 1.000000, 1.000000, 1.000000;;, - 30;3; 1.000000, 1.000000, 1.000000;;, - 31;3; 1.000000, 1.000000, 1.000000;;, - 32;3; 1.000000, 1.000000, 1.000000;;, - 33;3; 1.000000, 1.000000, 1.000000;;, - 34;3; 1.000000, 1.000000, 1.000000;;, - 35;3; 1.000000, 1.000000, 1.000000;;, - 36;3; 1.000000, 1.000000, 1.000000;;, - 37;3; 1.000000, 1.000000, 1.000000;;, - 38;3; 1.000000, 1.000000, 1.000000;;, - 39;3; 1.000000, 1.000000, 1.000000;;, - 40;3; 1.000000, 1.000000, 1.000000;;, - 41;3; 1.000000, 1.000000, 1.000000;;, - 42;3; 1.000000, 1.000000, 1.000000;;, - 43;3; 1.000000, 1.000000, 1.000000;;, - 44;3; 1.000000, 1.000000, 1.000000;;, - 45;3; 1.000000, 1.000000, 1.000000;;, - 46;3; 1.000000, 1.000000, 1.000000;;, - 47;3; 1.000000, 1.000000, 1.000000;;, - 48;3; 1.000000, 1.000000, 1.000000;;, - 49;3; 1.000000, 1.000000, 1.000000;;, - 50;3; 1.000000, 1.000000, 1.000000;;, - 51;3; 1.000000, 1.000000, 1.000000;;, - 52;3; 1.000000, 1.000000, 1.000000;;, - 53;3; 1.000000, 1.000000, 1.000000;;, - 54;3; 1.000000, 1.000000, 1.000000;;, - 55;3; 1.000000, 1.000000, 1.000000;;, - 56;3; 1.000000, 1.000000, 1.000000;;, - 57;3; 1.000000, 1.000000, 1.000000;;, - 58;3; 1.000000, 1.000000, 1.000000;;, - 59;3; 1.000000, 1.000000, 1.000000;;, - 60;3; 1.000000, 1.000000, 1.000000;;, - 61;3; 1.000000, 1.000000, 1.000000;;, - 62;3; 1.000000, 1.000000, 1.000000;;, - 63;3; 1.000000, 1.000000, 1.000000;;, - 64;3; 1.000000, 1.000000, 1.000000;;, - 65;3; 1.000000, 1.000000, 1.000000;;, - 66;3; 1.000000, 1.000000, 1.000000;;, - 67;3; 1.000000, 1.000000, 1.000000;;, - 68;3; 1.000000, 1.000000, 1.000000;;, - 69;3; 1.000000, 1.000000, 1.000000;;, - 70;3; 1.000000, 1.000000, 1.000000;;, - 71;3; 1.000000, 1.000000, 1.000000;;, - 72;3; 1.000000, 1.000000, 1.000000;;, - 73;3; 1.000000, 1.000000, 1.000000;;, - 74;3; 1.000000, 1.000000, 1.000000;;, - 75;3; 1.000000, 1.000000, 1.000000;;, - 76;3; 1.000000, 1.000000, 1.000000;;, - 77;3; 1.000000, 1.000000, 1.000000;;, - 78;3; 1.000000, 1.000000, 1.000000;;, - 79;3; 1.000000, 1.000000, 1.000000;;, - 80;3; 1.000000, 1.000000, 1.000000;;, - 81;3; 1.000000, 1.000000, 1.000000;;, - 82;3; 1.000000, 1.000000, 1.000000;;, - 83;3; 1.000000, 1.000000, 1.000000;;, - 84;3; 1.000000, 1.000000, 1.000000;;, - 85;3; 1.000000, 1.000000, 1.000000;;, - 86;3; 1.000000, 1.000000, 1.000000;;, - 87;3; 1.000000, 1.000000, 1.000000;;, - 88;3; 1.000000, 1.000000, 1.000000;;, - 89;3; 1.000000, 1.000000, 1.000000;;, - 90;3; 1.000000, 1.000000, 1.000000;;, - 91;3; 1.000000, 1.000000, 1.000000;;, - 92;3; 1.000000, 1.000000, 1.000000;;, - 93;3; 1.000000, 1.000000, 1.000000;;, - 94;3; 1.000000, 1.000000, 1.000000;;, - 95;3; 1.000000, 1.000000, 1.000000;;, - 96;3; 1.000000, 1.000000, 1.000000;;, - 97;3; 1.000000, 1.000000, 1.000000;;, - 98;3; 1.000000, 1.000000, 1.000000;;, - 99;3; 1.000000, 1.000000, 1.000000;;, - 100;3; 1.000000, 1.000000, 1.000000;;, - 101;3; 1.000000, 1.000000, 1.000000;;, - 102;3; 1.000000, 1.000000, 1.000000;;, - 103;3; 1.000000, 1.000000, 1.000000;;, - 104;3; 1.000000, 1.000000, 1.000000;;, - 105;3; 1.000000, 1.000000, 1.000000;;, - 106;3; 1.000000, 1.000000, 1.000000;;, - 107;3; 1.000000, 1.000000, 1.000000;;, - 108;3; 1.000000, 1.000000, 1.000000;;, - 109;3; 1.000000, 1.000000, 1.000000;;, - 110;3; 1.000000, 1.000000, 1.000000;;, - 111;3; 1.000000, 1.000000, 1.000000;;, - 112;3; 1.000000, 1.000000, 1.000000;;, - 113;3; 1.000000, 1.000000, 1.000000;;, - 114;3; 1.000000, 1.000000, 1.000000;;, - 115;3; 1.000000, 1.000000, 1.000000;;, - 116;3; 1.000000, 1.000000, 1.000000;;, - 117;3; 1.000000, 1.000000, 1.000000;;, - 118;3; 1.000000, 1.000000, 1.000000;;, - 119;3; 1.000000, 1.000000, 1.000000;;, - 120;3; 1.000000, 1.000000, 1.000000;;, - 121;3; 1.000000, 1.000000, 1.000000;;, - 122;3; 1.000000, 1.000000, 1.000000;;, - 123;3; 1.000000, 1.000000, 1.000000;;, - 124;3; 1.000000, 1.000000, 1.000000;;, - 125;3; 1.000000, 1.000000, 1.000000;;, - 126;3; 1.000000, 1.000000, 1.000000;;, - 127;3; 1.000000, 1.000000, 1.000000;;, - 128;3; 1.000000, 1.000000, 1.000000;;, - 129;3; 1.000000, 1.000000, 1.000000;;, - 130;3; 1.000000, 1.000000, 1.000000;;, - 131;3; 1.000000, 1.000000, 1.000000;;, - 132;3; 1.000000, 1.000000, 1.000000;;, - 133;3; 1.000000, 1.000000, 1.000000;;, - 134;3; 1.000000, 1.000000, 1.000000;;, - 135;3; 1.000000, 1.000000, 1.000000;;, - 136;3; 1.000000, 1.000000, 1.000000;;, - 137;3; 1.000000, 1.000000, 1.000000;;, - 138;3; 1.000000, 1.000000, 1.000000;;, - 139;3; 1.000000, 1.000000, 1.000000;;, - 140;3; 1.000000, 1.000000, 1.000000;;, - 141;3; 1.000000, 1.000000, 1.000000;;, - 142;3; 1.000000, 1.000000, 1.000000;;, - 143;3; 1.000000, 1.000000, 1.000000;;, - 144;3; 1.000000, 1.000000, 1.000000;;, - 145;3; 1.000000, 1.000000, 1.000000;;, - 146;3; 1.000000, 1.000000, 1.000000;;, - 147;3; 1.000000, 1.000000, 1.000000;;, - 148;3; 1.000000, 1.000000, 1.000000;;, - 149;3; 1.000000, 1.000000, 1.000000;;, - 150;3; 1.000000, 1.000000, 1.000000;;, - 151;3; 1.000000, 1.000000, 1.000000;;, - 152;3; 1.000000, 1.000000, 1.000000;;, - 153;3; 1.000000, 1.000000, 1.000000;;, - 154;3; 1.000000, 1.000000, 1.000000;;, - 155;3; 1.000000, 1.000000, 1.000000;;, - 156;3; 1.000000, 1.000000, 1.000000;;, - 157;3; 1.000000, 1.000000, 1.000000;;, - 158;3; 1.000000, 1.000000, 1.000000;;, - 159;3; 1.000000, 1.000000, 1.000000;;, - 160;3; 1.000000, 1.000000, 1.000000;;, - 161;3; 1.000000, 1.000000, 1.000000;;, - 162;3; 1.000000, 1.000000, 1.000000;;, - 163;3; 1.000000, 1.000000, 1.000000;;, - 164;3; 1.000000, 1.000000, 1.000000;;, - 165;3; 1.000000, 1.000000, 1.000000;;, - 166;3; 1.000000, 1.000000, 1.000000;;, - 167;3; 1.000000, 1.000000, 1.000000;;, - 168;3; 1.000000, 1.000000, 1.000000;;, - 169;3; 1.000000, 1.000000, 1.000000;;, - 170;3; 1.000000, 1.000000, 1.000000;;, - 171;3; 1.000000, 1.000000, 1.000000;;, - 172;3; 1.000000, 1.000000, 1.000000;;, - 173;3; 1.000000, 1.000000, 1.000000;;, - 174;3; 1.000000, 1.000000, 1.000000;;, - 175;3; 1.000000, 1.000000, 1.000000;;, - 176;3; 1.000000, 1.000000, 1.000000;;, - 177;3; 1.000000, 1.000000, 1.000000;;, - 178;3; 1.000000, 1.000000, 1.000000;;, - 179;3; 1.000000, 1.000000, 1.000000;;, - 180;3; 1.000000, 1.000000, 1.000000;;, - 181;3; 1.000000, 1.000000, 1.000000;;, - 182;3; 1.000000, 1.000000, 1.000000;;, - 183;3; 1.000000, 1.000000, 1.000000;;, - 184;3; 1.000000, 1.000000, 1.000000;;, - 185;3; 1.000000, 1.000000, 1.000000;;, - 186;3; 1.000000, 1.000000, 1.000000;;, - 187;3; 1.000000, 1.000000, 1.000000;;, - 188;3; 1.000000, 1.000000, 1.000000;;, - 189;3; 1.000000, 1.000000, 1.000000;;, - 190;3; 1.000000, 1.000000, 1.000000;;, - 191;3; 1.000000, 1.000000, 1.000000;;, - 192;3; 1.000000, 1.000000, 1.000000;;, - 193;3; 1.000000, 1.000000, 1.000000;;, - 194;3; 1.000000, 1.000000, 1.000000;;, - 195;3; 1.000000, 1.000000, 1.000000;;, - 196;3; 1.000000, 1.000000, 1.000000;;, - 197;3; 1.000000, 1.000000, 1.000000;;, - 198;3; 1.000000, 1.000000, 1.000000;;, - 199;3; 1.000000, 1.000000, 1.000000;;, - 200;3; 1.000000, 1.000000, 1.000000;;, - 201;3; 1.000000, 1.000000, 1.000000;;, - 202;3; 1.000000, 1.000000, 1.000000;;, - 203;3; 1.000000, 1.000000, 1.000000;;, - 204;3; 1.000000, 1.000000, 1.000000;;, - 205;3; 1.000000, 1.000000, 1.000000;;, - 206;3; 1.000000, 1.000000, 1.000000;;, - 207;3; 1.000000, 1.000000, 1.000000;;, - 208;3; 1.000000, 1.000000, 1.000000;;, - 209;3; 1.000000, 1.000000, 1.000000;;, - 210;3; 1.000000, 1.000000, 1.000000;;, - 211;3; 1.000000, 1.000000, 1.000000;;, - 212;3; 1.000000, 1.000000, 1.000000;;, - 213;3; 1.000000, 1.000000, 1.000000;;, - 214;3; 1.000000, 1.000000, 1.000000;;, - 215;3; 1.000000, 1.000000, 1.000000;;, - 216;3; 1.000000, 1.000000, 1.000000;;, - 217;3; 1.000000, 1.000000, 1.000000;;, - 218;3; 1.000000, 1.000000, 1.000000;;, - 219;3; 1.000000, 1.000000, 1.000000;;, - 220;3; 1.000000, 1.000000, 1.000000;;; - } - AnimationKey { // Position - 2; - 221; - 0;3; 0.000000, 0.000000, 0.000000;;, - 1;3; 0.000000, 0.000000, 0.000000;;, - 2;3; 0.000000, 0.000000, 0.000000;;, - 3;3; 0.000000, 0.000000, 0.000000;;, - 4;3; 0.000000, 0.000000, 0.000000;;, - 5;3; 0.000000, 0.000000, 0.000000;;, - 6;3; 0.000000, 0.000000, 0.000000;;, - 7;3; 0.000000, 0.000000, 0.000000;;, - 8;3; 0.000000, 0.000000, 0.000000;;, - 9;3; 0.000000, 0.000000, 0.000000;;, - 10;3; 0.000000, 0.000000, 0.000000;;, - 11;3; 0.000000, 0.000000, 0.000000;;, - 12;3; 0.000000, 0.000000, 0.000000;;, - 13;3; 0.000000, 0.000000, 0.000000;;, - 14;3; 0.000000, 0.000000, 0.000000;;, - 15;3; 0.000000, 0.000000, 0.000000;;, - 16;3; 0.000000, 0.000000, 0.000000;;, - 17;3; 0.000000, 0.000000, 0.000000;;, - 18;3; 0.000000, 0.000000, 0.000000;;, - 19;3; 0.000000, 0.000000, 0.000000;;, - 20;3; 0.000000, 0.000000, 0.000000;;, - 21;3; 0.000000, 0.000000, 0.000000;;, - 22;3; 0.000000, 0.000000, 0.000000;;, - 23;3; 0.000000, 0.000000, 0.000000;;, - 24;3; 0.000000, 0.000000, 0.000000;;, - 25;3; 0.000000, 0.000000, 0.000000;;, - 26;3; 0.000000, 0.000000, 0.000000;;, - 27;3; 0.000000, 0.000000, 0.000000;;, - 28;3; 0.000000, 0.000000, 0.000000;;, - 29;3; 0.000000, 0.000000, 0.000000;;, - 30;3; 0.000000, 0.000000, 0.000000;;, - 31;3; 0.000000, 0.000000, 0.000000;;, - 32;3; 0.000000, 0.000000, 0.000000;;, - 33;3; 0.000000, 0.000000, 0.000000;;, - 34;3; 0.000000, 0.000000, 0.000000;;, - 35;3; 0.000000, 0.000000, 0.000000;;, - 36;3; 0.000000, 0.000000, 0.000000;;, - 37;3; 0.000000, 0.000000, 0.000000;;, - 38;3; 0.000000, 0.000000, 0.000000;;, - 39;3; 0.000000, 0.000000, 0.000000;;, - 40;3; 0.000000, 0.000000, 0.000000;;, - 41;3; 0.000000, 0.000000, 0.000000;;, - 42;3; 0.000000, 0.000000, 0.000000;;, - 43;3; 0.000000, 0.000000, 0.000000;;, - 44;3; 0.000000, 0.000000, 0.000000;;, - 45;3; 0.000000, 0.000000, 0.000000;;, - 46;3; 0.000000, 0.000000, 0.000000;;, - 47;3; 0.000000, 0.000000, 0.000000;;, - 48;3; 0.000000, 0.000000, 0.000000;;, - 49;3; 0.000000, 0.000000, 0.000000;;, - 50;3; 0.000000, 0.000000, 0.000000;;, - 51;3; 0.000000, 0.000000, 0.000000;;, - 52;3; 0.000000, 0.000000, 0.000000;;, - 53;3; 0.000000, 0.000000, 0.000000;;, - 54;3; 0.000000, 0.000000, 0.000000;;, - 55;3; 0.000000, 0.000000, 0.000000;;, - 56;3; 0.000000, 0.000000, 0.000000;;, - 57;3; 0.000000, 0.000000, 0.000000;;, - 58;3; 0.000000, 0.000000, 0.000000;;, - 59;3; 0.000000, 0.000000, 0.000000;;, - 60;3; 0.000000, 0.000000, 0.000000;;, - 61;3; 0.000000, 0.000000, 0.000000;;, - 62;3; 0.000000, 0.000000, 0.000000;;, - 63;3; 0.000000, 0.000000, 0.000000;;, - 64;3; 0.000000, 0.000000, 0.000000;;, - 65;3; 0.000000, 0.000000, 0.000000;;, - 66;3; 0.000000, 0.000000, 0.000000;;, - 67;3; 0.000000, 0.000000, 0.000000;;, - 68;3; 0.000000, 0.000000, 0.000000;;, - 69;3; 0.000000, 0.000000, 0.000000;;, - 70;3; 0.000000, 0.000000, 0.000000;;, - 71;3; 0.000000, 0.000000, 0.000000;;, - 72;3; 0.000000, 0.000000, 0.000000;;, - 73;3; 0.000000, 0.000000, 0.000000;;, - 74;3; 0.000000, 0.000000, 0.000000;;, - 75;3; 0.000000, 0.000000, 0.000000;;, - 76;3; 0.000000, 0.000000, 0.000000;;, - 77;3; 0.000000, 0.000000, 0.000000;;, - 78;3; 0.000000, 0.000000, 0.000000;;, - 79;3; 0.000000, 0.000000, 0.000000;;, - 80;3; 0.000000, 0.000000, 0.000000;;, - 81;3; 0.000000, 0.000000, 0.000000;;, - 82;3; 0.000000, 0.000000, 0.000000;;, - 83;3; 0.000000, 0.000000, 0.000000;;, - 84;3; 0.000000, 0.000000, 0.000000;;, - 85;3; 0.000000, 0.000000, 0.000000;;, - 86;3; 0.000000, 0.000000, 0.000000;;, - 87;3; 0.000000, 0.000000, 0.000000;;, - 88;3; 0.000000, 0.000000, 0.000000;;, - 89;3; 0.000000, 0.000000, 0.000000;;, - 90;3; 0.000000, 0.000000, 0.000000;;, - 91;3; 0.000000, 0.000000, 0.000000;;, - 92;3; 0.000000, 0.000000, 0.000000;;, - 93;3; 0.000000, 0.000000, 0.000000;;, - 94;3; 0.000000, 0.000000, 0.000000;;, - 95;3; 0.000000, 0.000000, 0.000000;;, - 96;3; 0.000000, 0.000000, 0.000000;;, - 97;3; 0.000000, 0.000000, 0.000000;;, - 98;3; 0.000000, 0.000000, 0.000000;;, - 99;3; 0.000000, 0.000000, 0.000000;;, - 100;3; 0.000000, 0.000000, 0.000000;;, - 101;3; 0.000000, 0.000000, 0.000000;;, - 102;3; 0.000000, 0.000000, 0.000000;;, - 103;3; 0.000000, 0.000000, 0.000000;;, - 104;3; 0.000000, 0.000000, 0.000000;;, - 105;3; 0.000000, 0.000000, 0.000000;;, - 106;3; 0.000000, 0.000000, 0.000000;;, - 107;3; 0.000000, 0.000000, 0.000000;;, - 108;3; 0.000000, 0.000000, 0.000000;;, - 109;3; 0.000000, 0.000000, 0.000000;;, - 110;3; 0.000000, 0.000000, 0.000000;;, - 111;3; 0.000000, 0.000000, 0.000000;;, - 112;3; 0.000000, 0.000000, 0.000000;;, - 113;3; 0.000000, 0.000000, 0.000000;;, - 114;3; 0.000000, 0.000000, 0.000000;;, - 115;3; 0.000000, 0.000000, 0.000000;;, - 116;3; 0.000000, 0.000000, 0.000000;;, - 117;3; 0.000000, 0.000000, 0.000000;;, - 118;3; 0.000000, 0.000000, 0.000000;;, - 119;3; 0.000000, 0.000000, 0.000000;;, - 120;3; 0.000000, 0.000000, 0.000000;;, - 121;3; 0.000000, 0.000000, 0.000000;;, - 122;3; 0.000000, 0.000000, 0.000000;;, - 123;3; 0.000000, 0.000000, 0.000000;;, - 124;3; 0.000000, 0.000000, 0.000000;;, - 125;3; 0.000000, 0.000000, 0.000000;;, - 126;3; 0.000000, 0.000000, 0.000000;;, - 127;3; 0.000000, 0.000000, 0.000000;;, - 128;3; 0.000000, 0.000000, 0.000000;;, - 129;3; 0.000000, 0.000000, 0.000000;;, - 130;3; 0.000000, 0.000000, 0.000000;;, - 131;3; 0.000000, 0.000000, 0.000000;;, - 132;3; 0.000000, 0.000000, 0.000000;;, - 133;3; 0.000000, 0.000000, 0.000000;;, - 134;3; 0.000000, 0.000000, 0.000000;;, - 135;3; 0.000000, 0.000000, 0.000000;;, - 136;3; 0.000000, 0.000000, 0.000000;;, - 137;3; 0.000000, 0.000000, 0.000000;;, - 138;3; 0.000000, 0.000000, 0.000000;;, - 139;3; 0.000000, 0.000000, 0.000000;;, - 140;3; 0.000000, 0.000000, 0.000000;;, - 141;3; 0.000000, 0.000000, 0.000000;;, - 142;3; 0.000000, 0.000000, 0.000000;;, - 143;3; 0.000000, 0.000000, 0.000000;;, - 144;3; 0.000000, 0.000000, 0.000000;;, - 145;3; 0.000000, 0.000000, 0.000000;;, - 146;3; 0.000000, 0.000000, 0.000000;;, - 147;3; 0.000000, 0.000000, 0.000000;;, - 148;3; 0.000000, 0.000000, 0.000000;;, - 149;3; 0.000000, 0.000000, 0.000000;;, - 150;3; 0.000000, 0.000000, 0.000000;;, - 151;3; 0.000000, 0.000000, 0.000000;;, - 152;3; 0.000000, 0.000000, 0.000000;;, - 153;3; 0.000000, 0.000000, 0.000000;;, - 154;3; 0.000000, 0.000000, 0.000000;;, - 155;3; 0.000000, 0.000000, 0.000000;;, - 156;3; 0.000000, 0.000000, 0.000000;;, - 157;3; 0.000000, 0.000000, 0.000000;;, - 158;3; 0.000000, 0.000000, 0.000000;;, - 159;3; 0.000000, 0.000000, 0.000000;;, - 160;3; 0.000000, 0.000000, 0.000000;;, - 161;3; 0.000000, 0.000000, 0.000000;;, - 162;3; 0.000000, 0.000000, 0.000000;;, - 163;3; 0.000000, 0.000000, 0.000000;;, - 164;3; 0.000000, 0.000000, 0.000000;;, - 165;3; 0.000000, 0.000000, 0.000000;;, - 166;3; 0.000000, 0.000000, 0.000000;;, - 167;3; 0.000000, 0.000000, 0.000000;;, - 168;3; 0.000000, 0.000000, 0.000000;;, - 169;3; 0.000000, 0.000000, 0.000000;;, - 170;3; 0.000000, 0.000000, 0.000000;;, - 171;3; 0.000000, 0.000000, 0.000000;;, - 172;3; 0.000000, 0.000000, 0.000000;;, - 173;3; 0.000000, 0.000000, 0.000000;;, - 174;3; 0.000000, 0.000000, 0.000000;;, - 175;3; 0.000000, 0.000000, 0.000000;;, - 176;3; 0.000000, 0.000000, 0.000000;;, - 177;3; 0.000000, 0.000000, 0.000000;;, - 178;3; 0.000000, 0.000000, 0.000000;;, - 179;3; 0.000000, 0.000000, 0.000000;;, - 180;3; 0.000000, 0.000000, 0.000000;;, - 181;3; 0.000000, 0.000000, 0.000000;;, - 182;3; 0.000000, 0.000000, 0.000000;;, - 183;3; 0.000000, 0.000000, 0.000000;;, - 184;3; 0.000000, 0.000000, 0.000000;;, - 185;3; 0.000000, 0.000000, 0.000000;;, - 186;3; 0.000000, 0.000000, 0.000000;;, - 187;3; 0.000000, 0.000000, 0.000000;;, - 188;3; 0.000000, 0.000000, 0.000000;;, - 189;3; 0.000000, 0.000000, 0.000000;;, - 190;3; 0.000000, 0.000000, 0.000000;;, - 191;3; 0.000000, 0.000000, 0.000000;;, - 192;3; 0.000000, 0.000000, 0.000000;;, - 193;3; 0.000000, 0.000000, 0.000000;;, - 194;3; 0.000000, 0.000000, 0.000000;;, - 195;3; 0.000000, 0.000000, 0.000000;;, - 196;3; 0.000000, 0.000000, 0.000000;;, - 197;3; 0.000000, 0.000000, 0.000000;;, - 198;3; 0.000000, 0.000000, 0.000000;;, - 199;3; 0.000000, 0.000000, 0.000000;;, - 200;3; 0.000000, 0.000000, 0.000000;;, - 201;3; 0.000000, 0.000000, 0.000000;;, - 202;3; 0.000000, 0.000000, 0.000000;;, - 203;3; 0.000000, 0.000000, 0.000000;;, - 204;3; 0.000000, 0.000000, 0.000000;;, - 205;3; 0.000000, 0.000000, 0.000000;;, - 206;3; 0.000000, 0.000000, 0.000000;;, - 207;3; 0.000000, 0.000000, 0.000000;;, - 208;3; 0.000000, 0.000000, 0.000000;;, - 209;3; 0.000000, 0.000000, 0.000000;;, - 210;3; 0.000000, 0.000000, 0.000000;;, - 211;3; 0.000000, 0.000000, 0.000000;;, - 212;3; 0.000000, 0.000000, 0.000000;;, - 213;3; 0.000000, 0.000000, 0.000000;;, - 214;3; 0.000000, 0.000000, 0.000000;;, - 215;3; 0.000000, 0.000000, 0.000000;;, - 216;3; 0.000000, 0.000000, 0.000000;;, - 217;3; 0.000000, 0.000000, 0.000000;;, - 218;3; 0.000000, 0.000000, 0.000000;;, - 219;3; 0.000000, 0.000000, 0.000000;;, - 220;3; 0.000000, 0.000000, 0.000000;;; - } - } -} // End of AnimationSet Default_Action diff --git a/mods/default/nodes.lua b/mods/default/nodes.lua old mode 100644 new mode 100755 index 93d6981c..030cbd60 --- a/mods/default/nodes.lua +++ b/mods/default/nodes.lua @@ -1,211 +1,500 @@ -- mods/default/nodes.lua + +--[[ Node name convention: + +Although many node names are in combined-word form, the required form for new +node names is words separated by underscores. If both forms are used in written +language (for example pinewood and pine wood) the underscore form should be used. + +--]] + + +--[[ Index: + +Stone +----- +(1. Material 2. Cobble variant 3. Brick variant 4. Modified forms) + +default:stone +default:cobble +default:stonebrick +default:stone_block +default:mossycobble + +default:desert_stone +default:desert_cobble +default:desert_stonebrick +default:desert_stone_block + +default:sandstone +default:sandstonebrick +default:sandstone_block + +default:obsidian +default:obsidian_cooled +default:obsidianbrick +default:obsidian_block + +Soft / Non-Stone +---------------- +(1. Material 2. Modified forms) + +default:dirt +default:dirt_with_grass +default:dirt_with_grass_footsteps +default:dirt_with_dry_grass +default:dirt_with_snow + +default:sand +default:desert_sand +default:silver_sand + +default:gravel + +default:clay +default:clay_burned + +default:snow +default:snowblock + +default:ice + +Trees +----- +(1. Trunk 2. Fabricated trunk 3. Leaves 4. Sapling 5. Fruits) + +default:tree +default:wood +default:leaves +default:sapling +default:apple + +default:jungletree +default:junglewood +default:jungleleaves +default:junglesapling + +default:pine_tree +default:pine_wood +default:pine_needles +default:pine_sapling + +default:acacia_tree +default:acacia_wood +default:acacia_leaves +default:acacia_sapling + +default:aspen_tree +default:aspen_wood +default:aspen_leaves +default:aspen_sapling + +default:cherry_tree +default:cherry_log +default:cherry_plank +default:cherry_blossom_leaves +default:cherry_leaves_deco + +Ores +---- +(1. In stone 2. Blocks) + +default:stone_with_coal +default:desert_stone_with_coal +default:coalblock + +default:stone_with_iron +default:steelblock + +default:stone_with_copper +default:desert_stone_with_copper +default:copperblock + +default:stone_with_tin +default:desert_stone_with_tin +default:tinblock + +default:bronzeblock + +default:stone_with_silver +default:desert_stone_with_silver +default:silverblock + +default:stone_with_mithril +default:mithrilblock + +default:stone_with_gold +default:goldblock + +default:stone_with_mese +default:mese +default:meze + +default:stone_with_diamond +default:diamondblock + +default:stone_with_coin + +Plantlife +--------- + +default:cactus +default:papyrus +default:dry_shrub +default:junglegrass + +default:grass_1 +default:grass_2 +default:grass_3 +default:grass_4 +default:grass_5 + +default:dry_grass_1 +default:dry_grass_2 +default:dry_grass_3 +default:dry_grass_4 +default:dry_grass_5 + +default:bush_stem +default:bush_leaves +default:acacia_bush_stem +default:acacia_bush_leaves + +Corals +------ + +default:coral_brown +default:coral_orange +default:coral_skeleton + +Liquids +------- +(1. Source 2. Flowing) + +default:water_source +default:water_flowing + +default:river_water_source +default:river_water_flowing + +default:lava_source +default:lava_flowing + +default:acid_source +default:acid_flowing + +default:sand_source +default:sand_flowing + +Tools / "Advanced" crafting / Non-"natural" +------------------------------------------- + +default:torch + +default:chest +default:chest_locked + +default:bookshelf + +default:sign_wall_wood +default:sign_wall_steel + +default:ladder_wood +default:ladder_steel +default:ladder_obsidian + +default:fence_wood +default:fence_acacia_wood +default:fence_junglewood +default:fence_pine_wood +default:fence_aspen_wood +default:fence_cobble +default:fence_desert_cobble +default:fence_steelblock +default:fence_brick + +default:glass +default:obsidian_glass + +default:rail + +default:brick + +default:meselamp + +Misc +---- + +default:cloud + +--]] + +-- +-- Stone +-- + minetest.register_node("default:stone", { description = "Stone", tiles = {"default_stone.png"}, - is_ground_content = true, - groups = {cracky=3, stone=1}, + 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, +minetest.register_node("default:cobble", { + description = "Cobblestone", + tiles = {"default_cobble.png"}, + is_ground_content = false, + groups = {cracky=3, stone=2}, sounds = default.node_sound_stone_defaults(), }) -minetest.register_node("default:stone_with_coal", { - description = "Coal Ore", - tiles = {"default_stone.png^default_mineral_coal.png"}, +minetest.register_node("default:cobble_cooled", { + description = "Cobblestone (cooled)", + tiles = {"default_cobble.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", + drop = "default:cobble", + groups = {cracky = 3, stone = 2}, sounds = default.node_sound_stone_defaults(), }) minetest.register_node("default:stonebrick", { description = "Stone Brick", + paramtype2 = "facedir", + place_param2 = 0, tiles = {"default_stone_brick.png"}, - groups = {cracky=2, stone=1}, + is_ground_content = false, + groups = {cracky = 2, stone = 1}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:stone_block", { + description = "Stone Block", + tiles = {"default_stone_block.png"}, + is_ground_content = false, + groups = {cracky = 2, stone = 1}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:mossycobble", { + description = "Mossy Cobblestone", + tiles = {"default_mossycobble.png"}, + is_ground_content = false, + groups = {cracky = 3, stone = 1}, + sounds = default.node_sound_stone_defaults(), +}) + + +minetest.register_node("default:desert_stone", { + description = "Desert Stone", + tiles = {"default_desert_stone.png"}, + groups = {cracky = 3, stone = 1}, + drop = 'default:desert_cobble', + legacy_mineral = true, + drop = { + items = { + {items = {"default:desert_cobble"}}, + {items = {"maptools:copper_coin"}, rarity = 20}, + }, + }, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:desert_cobble", { + description = "Desert Cobblestone", + tiles = {"default_desert_cobble.png"}, + is_ground_content = false, + groups = {cracky = 3, stone = 2}, sounds = default.node_sound_stone_defaults(), }) minetest.register_node("default:desert_stonebrick", { description = "Desert Stone Brick", + paramtype2 = "facedir", + place_param2 = 0, tiles = {"default_desert_stone_brick.png"}, - groups = {cracky=2, stone=1}, + is_ground_content = false, + groups = {cracky = 2, stone = 1}, sounds = default.node_sound_stone_defaults(), }) +minetest.register_node("default:desert_stone_block", { + description = "Desert Stone Block", + tiles = {"default_desert_stone_block.png"}, + is_ground_content = false, + groups = {cracky = 2, stone = 1}, + sounds = default.node_sound_stone_defaults(), +}) + + +minetest.register_node("default:sandstone", { + description = "Sandstone", + tiles = {"default_sandstone.png"}, + groups = {crumbly = 1, cracky = 3}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:sandstonebrick", { + description = "Sandstone Brick", + paramtype2 = "facedir", + place_param2 = 0, + tiles = {"default_sandstone_brick.png"}, + is_ground_content = false, + groups = {cracky = 2}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:sandstone_block", { + description = "Sandstone Block", + tiles = {"default_sandstone_block.png"}, + is_ground_content = false, + groups = {cracky = 2}, + sounds = default.node_sound_stone_defaults(), +}) + + +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:obsidian_cooled", { + description = "Obsidian (cooled)", + tiles = {"default_obsidian.png"}, + is_ground_content = true, + drop = "default:obsidian", + sounds = default.node_sound_stone_defaults(), + groups = {cracky = 1, level = 2}, +}) + +minetest.register_node("default:obsidianbrick", { + description = "Obsidian Brick", + paramtype2 = "facedir", + place_param2 = 0, + tiles = {"default_obsidian_brick.png"}, + is_ground_content = false, + sounds = default.node_sound_stone_defaults(), + groups = {cracky = 1, level = 2}, +}) + +minetest.register_node("default:obsidian_block", { + description = "Obsidian Block", + tiles = {"default_obsidian_block.png"}, + is_ground_content = false, + sounds = default.node_sound_stone_defaults(), + groups = {cracky = 1, level = 2}, +}) + +-- +-- Soft / Non-Stone +-- + +minetest.register_node("default:dirt", { + description = "Dirt", + tiles = {"default_dirt.png"}, + groups = {crumbly = 3, soil = 1}, + drop = { + items = { + {items = {"default:dirt"}}, + {items = {"maptools:copper_coin"}, rarity = 32}, + }, + }, + sounds = default.node_sound_dirt_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}, + tiles = {"default_grass.png", "default_dirt.png", + {name = "default_dirt.png^default_grass_side.png", + tileable_vertical = false}}, + groups = {crumbly = 3, soil = 1, spreading_dirt_type = 1}, drop = 'default:dirt', sounds = default.node_sound_dirt_defaults({ - footstep = {name="default_grass_footstep", gain=0.25}, + 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}, + tiles = {"default_grass.png^default_footprint.png", "default_dirt.png", + {name = "default_dirt.png^default_grass_side.png", + tileable_vertical = false}}, + 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}, + footstep = {name = "default_grass_footstep", gain = 0.25}, + }), +}) + +minetest.register_node("default:dirt_with_dry_grass", { + description = "Dirt with Dry Grass", + tiles = {"default_dry_grass.png", + "default_dirt.png", + {name = "default_dirt.png^default_dry_grass_side.png", + tileable_vertical = false}}, + groups = {crumbly = 3, soil = 1, spreading_dirt_type = 1}, + drop = 'default:dirt', + sounds = default.node_sound_dirt_defaults({ + footstep = {name = "default_grass_footstep", gain = 0.4}, }), }) 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', + tiles = {"default_snow.png", "default_dirt.png", + {name = "default_dirt.png^default_snow_side.png", + tileable_vertical = false}}, + groups = {crumbly = 3, soil = 1, spreading_dirt_type = 1}, + drop = { + items = { + {items = {"default:dirt"}}, + {items = {"default:snow"}}, + }, + }, sounds = default.node_sound_dirt_defaults({ - footstep = {name="default_snow_footstep", gain=0.25}, + footstep = {name = "default_snow_footstep", gain = 0.15}, }), }) -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}, + 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}, + groups = {crumbly = 3, falling_node = 1, sand = 1}, sounds = default.node_sound_sand_defaults(), }) +minetest.register_node("default:silver_sand", { + description = "Silver Sand", + tiles = {"default_silver_sand.png"}, + 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(), + groups = {crumbly = 2, falling_node = 1}, + sounds = default.node_sound_gravel_defaults(), + drop = { + max_items = 1, + items = { + {items = {'default:flint'}, rarity = 16}, + {items = {'default:gravel'}} + } + } }) minetest.register_node("default:clay", { @@ -213,118 +502,154 @@ minetest.register_node("default:clay", { tiles = {"default_clay.png"}, is_ground_content = true, groups = {crumbly=3}, + drop = { + items = { + {items = {"default:clay_lump 4"}}, + }, + }, + stack_max = 200, -- /MFF(Mg|07/24/25) + sounds = default.node_sound_dirt_defaults(), +}) + +minetest.register_node("default:clay_burned", { + description = "Burned Clay", + tiles = {"default_clay_burned.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:snow", { + description = "Snow", + tiles = {"default_snow.png"}, + inventory_image = "default_snowball.png", + wield_image = "default_snowball.png", + paramtype = "light", + buildable_to = true, + floodable = true, + walkable = false, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.25, 0.5}, + }, + }, + groups = {crumbly = 3, falling_node = 1, puts_out_fire = 1}, + sounds = default.node_sound_dirt_defaults({ + footstep = {name = "default_snow_footstep", gain = 0.15}, + dug = {name = "default_snow_footstep", gain = 0.2}, + dig = {name = "default_snow_footstep", gain = 0.2} + }), + + 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_node("default:snowblock", { + description = "Snow Block", + tiles = {"default_snow.png"}, + groups = {crumbly = 3, puts_out_fire = 1}, + sounds = default.node_sound_dirt_defaults({ + footstep = {name = "default_snow_footstep", gain = 0.15}, + dug = {name = "default_snow_footstep", gain = 0.2}, + dig = {name = "default_snow_footstep", gain = 0.2} + }), + + 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_node("default:ice", { + description = "Ice", + tiles = {"default_ice.png"}, + is_ground_content = false, + paramtype = "light", + groups = {cracky = 3, puts_out_fire = 1}, + sounds = default.node_sound_glass_defaults(), +}) + +-- +-- Trees +-- + minetest.register_node("default:tree", { description = "Tree", tiles = {"default_tree_top.png", "default_tree_top.png", "default_tree.png"}, paramtype2 = "facedir", is_ground_content = false, - groups = {tree=1,choppy=2,oddly_breakable_by_hand=1,flammable=2}, + groups = {tree = 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"}, +minetest.register_node("default:wood", { + description = "Wooden Planks", paramtype2 = "facedir", + place_param2 = 0, + tiles = {"default_wood.png"}, is_ground_content = false, - groups = {tree=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}, + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, 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_jungleleaves.png"}, - paramtype = "light", - is_ground_content = false, - groups = {snappy=3, leafdecay=3, 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", +minetest.register_node("default:sapling", { + description = "Sapling", drawtype = "plantlike", visual_scale = 1.0, - tiles = {"default_junglesapling.png"}, - inventory_image = "default_junglesapling.png", - wield_image = "default_junglesapling.png", + tiles = {"default_sapling.png"}, + inventory_image = "default_sapling.png", + wield_image = "default_sapling.png", paramtype = "light", + sunlight_propagates = true, walkable = false, + on_timer = default.grow_sapling, selection_box = { type = "fixed", - fixed = {-0.3, -0.5, -0.3, 0.3, 0.35, 0.3} + fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16} }, - groups = {snappy=2,dig_immediate=3,flammable=2,attached_node=1}, + groups = {snappy = 2, dig_immediate = 3, flammable = 2, + attached_node = 1, sapling = 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}, - }, + on_construct = function(pos) + minetest.get_node_timer(pos):start(math.random(2400,4800)) + end, + + on_place = function(itemstack, placer, pointed_thing) + itemstack = default.sapling_on_place(itemstack, placer, pointed_thing, + "default:sapling", + -- minp, maxp to be checked, relative to sapling pos + -- minp_relative.y = 1 because sapling pos has been checked + {x = -2, y = 1, z = -2}, + {x = 2, y = 6, z = 2}, + -- maximum interval of interior volume check + 4) + + return itemstack + end, }) minetest.register_node("default:leaves", { description = "Leaves", drawtype = "allfaces_optional", waving = 1, - visual_scale = 1.3, tiles = {"default_leaves.png"}, + special_tiles = {"default_leaves_simple.png"}, paramtype = "light", is_ground_content = false, - groups = {snappy=3, leafdecay=3, flammable=2, leaves=1}, + groups = {snappy = 3, leafdecay = 3, leafdecay_drop = 1, flammable = 2, leaves = 1}, drop = { max_items = 1, items = { @@ -341,16 +666,798 @@ minetest.register_node("default:leaves", { } }, sounds = default.node_sound_leaves_defaults(), + + after_place_node = default.after_place_leaves, }) +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 = false, + selection_box = { + type = "fixed", + fixed = {-3 / 16, -7 / 16, -3 / 16, 3 / 16, 4 / 16, 3 / 16} + }, + groups = {fleshy = 3, dig_immediate = 3, flammable = 2, + leafdecay = 3, leafdecay_drop = 1}, + on_use = minetest.item_eat(2), + 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:jungletree", { + description = "Jungle Tree", + tiles = {"default_jungletree_top.png", "default_jungletree_top.png", + "default_jungletree.png"}, + paramtype2 = "facedir", + is_ground_content = false, + groups = {tree = 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", + paramtype2 = "facedir", + place_param2 = 0, + tiles = {"default_junglewood.png"}, + is_ground_content = false, + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, wood = 1}, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node("default:jungleleaves", { + description = "Jungle Leaves", + drawtype = "allfaces_optional", + waving = 1, + tiles = {"default_jungleleaves.png"}, + special_tiles = {"default_jungleleaves_simple.png"}, + paramtype = "light", + is_ground_content = false, + groups = {snappy = 3, leafdecay = 3, leafdecay_drop = 1, flammable = 2, leaves = 1}, + drop = { + max_items = 1, + items = { + {items = {'default:junglesapling'}, rarity = 20}, + {items = {'default:jungleleaves'}} + } + }, + sounds = default.node_sound_leaves_defaults(), + + after_place_node = default.after_place_leaves, +}) + +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", + sunlight_propagates = true, + walkable = false, + on_timer = default.grow_sapling, + selection_box = { + type = "fixed", + fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16} + }, + groups = {snappy = 2, dig_immediate = 3, flammable = 2, + attached_node = 1, sapling = 1}, + sounds = default.node_sound_leaves_defaults(), + + on_construct = function(pos) + minetest.get_node_timer(pos):start(math.random(2400,4800)) + end, + + on_place = function(itemstack, placer, pointed_thing) + itemstack = default.sapling_on_place(itemstack, placer, pointed_thing, + "default:junglesapling", + -- minp, maxp to be checked, relative to sapling pos + -- minp_relative.y = 1 because sapling pos has been checked + {x = -2, y = 1, z = -2}, + {x = 2, y = 15, z = 2}, + -- maximum interval of interior volume check + 4) + + return itemstack + end, +}) + + +minetest.register_node("default:pine_tree", { + description = "Pine Tree", + tiles = {"default_pine_tree_top.png", "default_pine_tree_top.png", + "default_pine_tree.png"}, + paramtype2 = "facedir", + is_ground_content = false, + groups = {tree = 1, choppy = 3, oddly_breakable_by_hand = 1, flammable = 3}, + sounds = default.node_sound_wood_defaults(), + + on_place = minetest.rotate_node +}) + +minetest.register_node("default:pine_wood", { + description = "Pine Wood Planks", + paramtype2 = "facedir", + place_param2 = 0, + tiles = {"default_pine_wood.png"}, + is_ground_content = false, + groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3, wood = 1}, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node("default:pine_needles",{ + description = "Pine Needles", + drawtype = "allfaces_optional", + tiles = {"default_pine_needles.png"}, + waving = 1, + paramtype = "light", + is_ground_content = false, + groups = {snappy = 3, leafdecay = 3, leafdecay_drop = 1, flammable = 2, leaves = 1}, + drop = { + max_items = 1, + items = { + {items = {"default:pine_sapling"}, rarity = 20}, + {items = {"default:pine_needles"}} + } + }, + sounds = default.node_sound_leaves_defaults(), + + after_place_node = default.after_place_leaves, +}) + +minetest.register_node("default:pine_sapling", { + description = "Pine Sapling", + drawtype = "plantlike", + visual_scale = 1.0, + tiles = {"default_pine_sapling.png"}, + inventory_image = "default_pine_sapling.png", + wield_image = "default_pine_sapling.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + on_timer = default.grow_sapling, + selection_box = { + type = "fixed", + fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16} + }, + groups = {snappy = 2, dig_immediate = 3, flammable = 3, + attached_node = 1, sapling = 1}, + sounds = default.node_sound_leaves_defaults(), + + on_construct = function(pos) + minetest.get_node_timer(pos):start(math.random(2400,4800)) + end, + + on_place = function(itemstack, placer, pointed_thing) + itemstack = default.sapling_on_place(itemstack, placer, pointed_thing, + "default:pine_sapling", + -- minp, maxp to be checked, relative to sapling pos + -- minp_relative.y = 1 because sapling pos has been checked + {x = -2, y = 1, z = -2}, + {x = 2, y = 12, z = 2}, + -- maximum interval of interior volume check + 4) + + return itemstack + end, +}) + + +minetest.register_node("default:acacia_tree", { + description = "Acacia Tree", + tiles = {"default_acacia_tree_top.png", "default_acacia_tree_top.png", + "default_acacia_tree.png"}, + paramtype2 = "facedir", + is_ground_content = false, + groups = {tree = 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:acacia_wood", { + description = "Acacia Wood Planks", + paramtype2 = "facedir", + place_param2 = 0, + tiles = {"default_acacia_wood.png"}, + is_ground_content = false, + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, wood = 1}, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node("default:acacia_leaves", { + description = "Acacia Leaves", + drawtype = "allfaces_optional", + tiles = {"default_acacia_leaves.png"}, + special_tiles = {"default_acacia_leaves_simple.png"}, + waving = 1, + paramtype = "light", + is_ground_content = false, + groups = {snappy = 3, leafdecay = 3, leafdecay_drop = 1, flammable = 2, leaves = 1}, + drop = { + max_items = 1, + items = { + {items = {"default:acacia_sapling"}, rarity = 20}, + {items = {"default:acacia_leaves"}} + } + }, + sounds = default.node_sound_leaves_defaults(), + + after_place_node = default.after_place_leaves, +}) + +minetest.register_node("default:acacia_sapling", { + description = "Acacia Tree Sapling", + drawtype = "plantlike", + visual_scale = 1.0, + tiles = {"default_acacia_sapling.png"}, + inventory_image = "default_acacia_sapling.png", + wield_image = "default_acacia_sapling.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + on_timer = default.grow_sapling, + selection_box = { + type = "fixed", + fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16} + }, + groups = {snappy = 2, dig_immediate = 3, flammable = 2, + attached_node = 1, sapling = 1}, + sounds = default.node_sound_leaves_defaults(), + + on_construct = function(pos) + minetest.get_node_timer(pos):start(math.random(2400,4800)) + end, + + on_place = function(itemstack, placer, pointed_thing) + itemstack = default.sapling_on_place(itemstack, placer, pointed_thing, + "default:acacia_sapling", + -- minp, maxp to be checked, relative to sapling pos + -- minp_relative.y = 1 because sapling pos has been checked + {x = -4, y = 1, z = -4}, + {x = 4, y = 6, z = 4}, + -- maximum interval of interior volume check + 4) + + return itemstack + end, +}) + +minetest.register_node("default:aspen_tree", { + description = "Aspen Tree", + tiles = {"default_aspen_tree_top.png", "default_aspen_tree_top.png", + "default_aspen_tree.png"}, + paramtype2 = "facedir", + is_ground_content = false, + groups = {tree = 1, choppy = 3, oddly_breakable_by_hand = 1, flammable = 3}, + sounds = default.node_sound_wood_defaults(), + + on_place = minetest.rotate_node +}) + +minetest.register_node("default:aspen_wood", { + description = "Aspen Wood Planks", + paramtype2 = "facedir", + place_param2 = 0, + tiles = {"default_aspen_wood.png"}, + is_ground_content = false, + groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3, wood = 1}, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node("default:aspen_leaves", { + description = "Aspen Leaves", + drawtype = "allfaces_optional", + tiles = {"default_aspen_leaves.png"}, + waving = 1, + paramtype = "light", + is_ground_content = false, + groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1}, + drop = { + max_items = 1, + items = { + {items = {"default:aspen_sapling"}, rarity = 20}, + {items = {"default:aspen_leaves"}} + } + }, + sounds = default.node_sound_leaves_defaults(), + + after_place_node = default.after_place_leaves, +}) + +minetest.register_node("default:aspen_sapling", { + description = "Aspen Tree Sapling", + drawtype = "plantlike", + visual_scale = 1.0, + tiles = {"default_aspen_sapling.png"}, + inventory_image = "default_aspen_sapling.png", + wield_image = "default_aspen_sapling.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + on_timer = default.grow_sapling, + selection_box = { + type = "fixed", + fixed = {-3 / 16, -0.5, -3 / 16, 3 / 16, 0.5, 3 / 16} + }, + groups = {snappy = 2, dig_immediate = 3, flammable = 3, + attached_node = 1, sapling = 1}, + sounds = default.node_sound_leaves_defaults(), + + on_construct = function(pos) + minetest.get_node_timer(pos):start(math.random(2400,4800)) + end, + + on_place = function(itemstack, placer, pointed_thing) + itemstack = default.sapling_on_place(itemstack, placer, pointed_thing, + "default:aspen_sapling", + -- minp, maxp to be checked, relative to sapling pos + -- minp_relative.y = 1 because sapling pos has been checked + {x = -2, y = 1, z = -2}, + {x = 2, y = 12, z = 2}, + -- maximum interval of interior volume check + 4) + + return itemstack + end, +}) + +-- From BFD, cherry tree +minetest.register_node("default:cherry_tree", { + description = "Cherry Log", + tiles = {"default_cherry_top.png", "default_cherry_top.png", "default_cherry_tree.png"}, + is_ground_content = false, + groups = {tree=1,choppy=2,oddly_breakable_by_hand=1,flammable=2}, + sounds = default.node_sound_wood_defaults(), + drop = "default:cherry_log" +}) + +minetest.register_node("default:cherry_log", { + description = "Cherry Log", + tiles = {"default_cherry_top.png", "default_cherry_top.png", "default_cherry_tree.png"}, + paramtype2 = "facedir", + is_ground_content = false, + groups = {choppy=2,oddly_breakable_by_hand=1,flammable=2}, + sounds = default.node_sound_wood_defaults(), + on_place = minetest.rotate_node, +}) + +minetest.register_node("default:cherry_plank", { + description = "Cherry Planks", + tiles = {"default_wood_cherry_planks.png"}, + sounds = default.node_sound_wood_defaults(), + groups = {oddly_breakable_by_hand=1, flammable=1, choppy=3, wood=1}, +}) + +minetest.register_node("default:cherry_blossom_leaves", { + description = "Cherry Blossom Leaves", + drawtype = "allfaces_optional", + visual_scale = 1.3, + tiles = {"default_cherry_blossom_leaves.png"}, + paramtype = "light", + waving = 1, + is_ground_content = false, + groups = {snappy=3, leafdecay=3, leafdecay_drop = 1, flammable=2, leaves=1}, + drop = { + max_items = 1, + items = { + { + items = {'default:cherry_sapling'}, + rarity = 32, + }, + { + items = {'default:cherry_blossom_leaves'}, + } + } + }, + sounds = default.node_sound_leaves_defaults(), + on_place = function(itemstack, placer, pointed_thing) + -- place a random grass node + local stack = ItemStack("default:cherry_leaves_deco") + local ret = minetest.item_place(stack, placer, pointed_thing) + return ItemStack("default:cherry_blossom_leaves".." "..itemstack:get_count()-(1-ret:get_count())) + end, +}) + +minetest.register_node("default:cherry_leaves_deco", { + description = "Cherry Leaves", + drawtype = "allfaces_optional", + visual_scale = 1.3, + tiles = {"default_cherry_blossom_leaves.png"}, + paramtype = "light", + waving=1, + is_ground_content = false, + groups = {snappy=3, flammable=2, leaves=1}, + sounds = default.node_sound_leaves_defaults(), + drop = {'default:cherry_blossom_leaves'}, +}) + +minetest.register_node("default:cherry_sapling", { + description = "Cherry Sapling", + waving = 1, + visual_scale = 1.0, + inventory_image = "default_cherry_sapling.png", + wield_image = "default_cherry_sapling.png", + drawtype = "plantlike", + paramtype = "light", + tiles = {"default_cherry_sapling.png"}, + 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, sapling = 1}, + sounds = default.node_sound_leaves_defaults(), +}) +-- +-- Ores +-- + +minetest.register_node("default:stone_with_coal", { + description = "Coal Ore", + tiles = {"default_stone.png^default_mineral_coal.png"}, + groups = {cracky = 3}, + drop = { + items = { + {items = {"default:cobble"}}, + {items = {"default:coal_lump"}}, + {items = {"maptools:copper_coin"}}, + }, + }, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:desert_stone_with_coal", { + description = "Coal Ore", + tiles = {"default_desert_stone.png^default_mineral_coal.png"}, + is_ground_content = true, + groups = {crumbly = 1, cracky = 3}, + drop = { + items = { + {items = {"default:desert_cobble"}}, + {items = {"default:coal_lump"}}, + {items = {"maptools:copper_coin"}}, + }, + }, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:coalblock", { + description = "Coal Block", + tiles = {"default_coal_block.png"}, + is_ground_content = false, + groups = {cracky = 3}, + sounds = default.node_sound_stone_defaults(), +}) + + +minetest.register_node("default:stone_with_iron", { + description = "Iron Ore", + tiles = {"default_stone.png^default_mineral_iron.png"}, + groups = {cracky = 2}, + drop = { + items = { + {items = {"default:cobble"}}, + {items = {"default:iron_lump"}}, + {items = {"maptools:copper_coin 3"}}, + }, + }, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:steelblock", { + description = "Steel Block", + tiles = {"default_steel_block.png"}, + is_ground_content = false, + groups = {cracky = 1, level = 2}, + sounds = default.node_sound_metal_defaults(), +}) + + +minetest.register_node("default:stone_with_copper", { + description = "Copper Ore", + tiles = {"default_stone.png^default_mineral_copper.png"}, + groups = {cracky = 2}, + drop = { + items = { + {items = {"default:cobble"}}, + {items = {"default:copper_lump"}}, + {items = {"maptools:copper_coin 3"}}, + }, + }, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:desert_stone_with_copper", { + description = "Copper Ore", + tiles = {"default_desert_stone.png^default_mineral_copper.png"}, + is_ground_content = true, + groups = {crumbly = 1, cracky = 3}, + drop = { + items = { + {items = {"default:desert_cobble"}}, + {items = {"default:copper_lump"}}, + {items = {"maptools:copper_coin 3"}}, + }, + }, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:copperblock", { + description = "Copper Block", + tiles = {"default_copper_block.png"}, + is_ground_content = false, + groups = {cracky = 1, level = 2}, + sounds = default.node_sound_metal_defaults(), +}) + +minetest.register_node("default:bronzeblock", { + description = "Bronze Block", + tiles = {"default_bronze_block.png"}, + is_ground_content = false, + groups = {cracky = 1, level = 2}, + sounds = default.node_sound_metal_defaults(), +}) + +minetest.register_node("default:stone_with_tin", { + description = "Tin Ore", + tiles = {"default_stone.png^default_mineral_tin.png"}, + is_ground_content = true, + groups = {cracky = 3}, + drop = { + items = { + {items = {"default:cobble"}}, + {items = {"default:tin_lump"}}, + {items = {"maptools:copper_coin 3"}}, + }, + }, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:desert_stone_with_tin", { + description = "Tin Ore", + tiles = {"default_desert_stone.png^default_mineral_tin.png"}, + is_ground_content = true, + groups = {crumbly = 1, cracky = 3}, + drop = { + items = { + {items = {"default:desert_cobble"}}, + {items = {"default:tin_lump"}}, + {items = {"maptools:copper_coin 3"}}, + }, + }, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:tinblock", { + description = "Tin Block", + tiles = {"default_tin_block.png"}, + is_ground_content = false, + groups = {snappy = 1, bendy = 2, cracky = 1, melty = 2, level = 2}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:stone_with_silver", { + description = "Silver Ore", + tiles = {"default_stone.png^default_mineral_silver.png"}, + is_ground_content = true, + groups = {cracky = 3}, + drop = { + items = { + {items = {"default:cobble"}}, + {items = {"default:silver_lump"}}, + {items = {"maptools:copper_coin 3"}}, + }, + }, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:desert_stone_with_silver", { + description = "Silver Ore", + tiles = {"default_desert_stone.png^default_mineral_silver.png"}, + is_ground_content = true, + groups = {crumbly = 1, cracky = 3}, + drop = { + items = { + {items = {"default:desert_cobble"}}, + {items = {"default:silver_lump"}}, + {items = {"maptools:copper_coin 3"}}, + }, + }, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:silverblock", { + description = "Silver Block", + tiles = {"default_silver_block.png"}, + is_ground_content = false, + groups = {snappy = 1, bendy = 2, cracky = 1, melty = 2, level = 2}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:stone_with_mese", { + description = "Mese Ore", + tiles = {"default_stone.png^default_mineral_mese.png"}, + groups = {cracky = 1}, + drop = { + items = { + {items = {"default:cobble"}}, + {items = {"default:mese_crystal"}}, + {items = {"maptools:silver_coin 2", rarity = 75}}, + }, + }, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:mese", { + description = "Mese Block", + tiles = {"default_mese_block.png"}, + paramtype = "light", + groups = {cracky = 1, level = 2}, + sounds = default.node_sound_stone_defaults(), + light_source = 3, +}) + +local function die_later(digger) + digger:set_hp(0) +end + +minetest.register_node("default:meze", { + description = "Meze Block", + tiles = {"default_meze_block.png"}, + is_ground_content = true, + drop = "", + groups = {cracky = 1, level = 2, fall_damage_add_percent = -75}, + sounds = default.node_sound_wood_defaults(), -- Intended. + + on_dig = function(pos, node, digger) + if digger and minetest.setting_getbool("enable_damage") and not minetest.setting_getbool("creative_mode") then + minetest.after(3, die_later, digger) + minetest.chat_send_player(digger:get_player_name(), "You feel like you did a mistake.") + minetest.node_dig(pos, node, digger) + elseif digger then + minetest.node_dig(pos, node, digger) + end + end, +}) +minetest.register_alias("default:meze_block", "default:meze") + + +minetest.register_node("default:stone_with_gold", { + description = "Gold Ore", + tiles = {"default_stone.png^default_mineral_gold.png"}, + groups = {cracky = 2}, + drop = { + items = { + {items = {"default:cobble"}}, + {items = {"default:gold_lump"}}, + {items = {"maptools:silver_coin", rarity = 80}}, + }, + }, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:goldblock", { + description = "Gold Block", + tiles = {"default_gold_block.png"}, + is_ground_content = false, + groups = {cracky = 1}, + sounds = default.node_sound_metal_defaults(), +}) + +minetest.register_node("default:stone_with_mithril", { + description = "Mithril Ore", + tiles = {"default_stone.png^default_mineral_mithril.png"}, + is_ground_content = true, + groups = {cracky = 3}, + drop = { + items = { + {items = {"default:cobble"}}, + {items = {"default:mithril_lump"}}, + {items = {"maptools:copper_coin 3"}}, + }, + }, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:mithrilblock", { + description = "Mithril Block", + tiles = {"default_mithril_block.png"}, + is_ground_content = false, + groups = {snappy = 1, bendy = 2, cracky = 1, melty = 2, level = 2}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:stone_with_diamond", { + description = "Diamond Ore", + tiles = {"default_stone.png^default_mineral_diamond.png"}, + groups = {cracky = 1}, + drop = { + items = { + {items = {"default:cobble"}}, + {items = {"default:diamond"}}, + {items = {"maptools:silver_coin 1"}}, + }, + }, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:diamondblock", { + description = "Diamond Block", + tiles = {"default_diamond_block.png"}, + is_ground_content = false, + groups = {cracky = 1, level = 3}, + sounds = default.node_sound_defaults(), +}) + + +minetest.register_node("default:stone_with_coin", { + description = "Stone with Coin", + tiles = {"default_stone.png^maptools_gold_coin.png"}, + is_ground_content = true, + groups = {cracky = 3}, + drop = { + items = { + {items = {"default:cobble"}}, + {items = {"maptools:gold_coin"}}, + }, + }, + sounds = default.node_sound_stone_defaults(), +}) + +-- +-- Plantlife (non-cubic) +-- + minetest.register_node("default:cactus", { description = "Cactus", - tiles = {"default_cactus_top.png", "default_cactus_top.png", "default_cactus_side.png"}, + tiles = {"default_cactus_top.png", "default_cactus_top.png", + "default_cactus_side.png"}, paramtype2 = "facedir", - is_ground_content = true, - groups = {snappy=1,choppy=3,flammable=2}, + groups = {snappy = 1, choppy = 3, flammable = 2}, + drop = { + items = { + {items = {"default:cactus"}}, + }, + }, 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:cactus_spiky", { + description = "Spiky Cactus", + tiles = {"default_cactus_top.png", "default_cactus_top.png", + "default_cactus_spiky.png"}, + paramtype2 = "facedir", + groups = {snappy = 1, choppy = 3, flammable = 2}, + drop = { + items = { + {items = {"default:cactus_spiky"}}, + }, + }, + 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, @@ -363,411 +1470,776 @@ minetest.register_node("default:papyrus", { inventory_image = "default_papyrus.png", wield_image = "default_papyrus.png", paramtype = "light", + sunlight_propagates = true, walkable = false, - is_ground_content = true, selection_box = { type = "fixed", - fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3} + fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 0.5, 6 / 16}, }, - groups = {snappy=3,flammable=2}, + 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"), +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", 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}, + groups = {snappy = 3, flammable = 3, attached_node = 1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-5 / 16, -0.5, -5 / 16, 5 / 16, 4 / 16, 5 / 16}, + }, }) +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", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + groups = {snappy = 3, flora = 1, attached_node = 1, grass = 1, flammable = 1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-7 / 16, -0.5, -7 / 16, 7 / 16, 1.19, 7 / 16}, + }, +}) + + +minetest.register_node("default:grass_1", { + description = "Grass", + drawtype = "plantlike", + waving = 1, + tiles = {"default_grass_1.png"}, + -- Use texture of a taller grass stage in inventory + inventory_image = "default_grass_3.png", + wield_image = "default_grass_3.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + groups = {snappy = 3, flammable = 3, flora = 1, attached_node = 1, grass = 1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -5 / 16, 6 / 16}, + }, + + 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", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + drop = "default:grass_1", + groups = {snappy = 3, flora = 1, attached_node = 1, + not_in_creative_inventory = 1, grass = 1, flammable = 1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -3 / 16, 6 / 16}, + }, + }) +end + + +minetest.register_node("default:dry_grass_1", { + description = "Dry Grass", + drawtype = "plantlike", + waving = 1, + tiles = {"default_dry_grass_1.png"}, + inventory_image = "default_dry_grass_3.png", + wield_image = "default_dry_grass_3.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + groups = {snappy = 3, flammable = 3, flora = 1, + attached_node = 1, dry_grass = 1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -3 / 16, 6 / 16}, + }, + + on_place = function(itemstack, placer, pointed_thing) + -- place a random dry grass node + local stack = ItemStack("default:dry_grass_" .. math.random(1, 5)) + local ret = minetest.item_place(stack, placer, pointed_thing) + return ItemStack("default:dry_grass_1 " .. + itemstack:get_count() - (1 - ret:get_count())) + end, +}) + +for i = 2, 5 do + minetest.register_node("default:dry_grass_" .. i, { + description = "Dry Grass", + drawtype = "plantlike", + waving = 1, + tiles = {"default_dry_grass_" .. i .. ".png"}, + inventory_image = "default_dry_grass_" .. i .. ".png", + wield_image = "default_dry_grass_" .. i .. ".png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + groups = {snappy = 3, flammable = 3, flora = 1, attached_node = 1, + not_in_creative_inventory=1, dry_grass = 1}, + drop = "default:dry_grass_1", + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -1 / 16, 6 / 16}, + }, + }) +end + + +minetest.register_node("default:bush_stem", { + description = "Bush Stem", + drawtype = "plantlike", + visual_scale = 1.18, + tiles = {"default_bush_stem.png"}, + inventory_image = "default_bush_stem.png", + wield_image = "default_bush_stem.png", + paramtype = "light", + sunlight_propagates = true, + groups = {choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, + sounds = default.node_sound_wood_defaults(), + selection_box = { + type = "fixed", + fixed = {-7 / 16, -0.5, -7 / 16, 7 / 16, 0.54, 7 / 16}, + }, +}) + +minetest.register_node("default:bush_leaves", { + description = "Bush Leaves", + drawtype = "allfaces_optional", + waving = 1, + tiles = {"default_leaves_simple.png"}, + paramtype = "light", + groups = {snappy = 3, flammable = 2, leaves = 1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("default:acacia_bush_stem", { + description = "Acacia Bush Stem", + drawtype = "plantlike", + visual_scale = 1.18, + tiles = {"default_acacia_bush_stem.png"}, + inventory_image = "default_acacia_bush_stem.png", + wield_image = "default_acacia_bush_stem.png", + paramtype = "light", + sunlight_propagates = true, + groups = {choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, + sounds = default.node_sound_wood_defaults(), + selection_box = { + type = "fixed", + fixed = {-7 / 16, -0.5, -7 / 16, 7 / 16, 0.54, 7 / 16}, + }, +}) + +minetest.register_node("default:acacia_bush_leaves", { + description = "Acacia Bush Leaves", + drawtype = "allfaces_optional", + waving = 1, + tiles = {"default_acacia_leaves_simple.png"}, + paramtype = "light", + groups = {snappy = 3, flammable = 2, leaves = 1}, + sounds = default.node_sound_leaves_defaults(), +}) + + +-- +-- Corals +-- + +minetest.register_node("default:coral_brown", { + description = "Brown Coral", + tiles = {"default_coral_brown.png"}, + groups = {cracky = 3}, + drop = "default:coral_skeleton", + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:coral_orange", { + description = "Orange Coral", + tiles = {"default_coral_orange.png"}, + groups = {cracky = 3}, + drop = "default:coral_skeleton", + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:coral_skeleton", { + description = "Coral Skeleton", + tiles = {"default_coral_skeleton.png"}, + groups = {cracky = 3}, + sounds = default.node_sound_stone_defaults(), +}) + + +-- +-- Liquids +-- + 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}} + { + 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}, + 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, + alpha = 160, paramtype = "light", walkable = false, pointable = false, diggable = false, buildable_to = true, + is_ground_content = false, 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}, + liquid_viscosity = 1, + post_effect_color = {a = 103, r = 30, g = 60, b = 90}, + liquid_range = 6, + groups = {water = 3, liquid = 3, puts_out_fire = 1}, }) -minetest.register_node("default:lava_flowing", { - description = "Flowing Lava", - inventory_image = minetest.inventorycube("default_lava.png"), +minetest.register_node("default:water_flowing", { + description = "Flowing Water", drawtype = "flowingliquid", - tiles = {"default_lava.png"}, + tiles = {"default_water.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} + name = "default_water_flowing_animated.png", + backface_culling = false, + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 0.8, + }, }, { - image="default_lava_flowing_animated.png", - backface_culling=true, - animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=3.3} + name = "default_water_flowing_animated.png", + backface_culling = true, + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 0.8, + }, }, }, + alpha = 160, paramtype = "light", paramtype2 = "flowingliquid", - light_source = LIGHT_MAX - 1, walkable = false, pointable = false, diggable = false, buildable_to = true, + is_ground_content = false, 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}, + liquid_alternative_flowing = "default:water_flowing", + liquid_alternative_source = "default:water_source", + liquid_viscosity = 1, + post_effect_color = {a = 103, r = 30, g = 60, b = 90}, + liquid_range = 6, + groups = {water = 3, liquid = 3, puts_out_fire = 1, + not_in_creative_inventory = 1}, }) + +minetest.register_node("default:river_water_source", { + description = "River Water Source", + drawtype = "liquid", + tiles = { + { + name = "default_river_water_source_animated.png", + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 2.0, + }, + }, + }, + special_tiles = { + { + name = "default_river_water_source_animated.png", + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 2.0, + }, + backface_culling = false, + }, + }, + alpha = 160, + paramtype = "light", + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + is_ground_content = false, + drop = "", + drowning = 1, + liquidtype = "source", + liquid_alternative_flowing = "default:river_water_flowing", + liquid_alternative_source = "default:river_water_source", + liquid_viscosity = 1, + liquid_renewable = false, + liquid_range = 2, + post_effect_color = {a = 103, r = 30, g = 76, b = 90}, + groups = {water = 3, liquid = 3, puts_out_fire = 1}, +}) + +minetest.register_node("default:river_water_flowing", { + description = "Flowing River Water", + drawtype = "flowingliquid", + tiles = {"default_river_water.png"}, + special_tiles = { + { + name = "default_river_water_flowing_animated.png", + backface_culling = false, + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 0.8, + }, + }, + { + name = "default_river_water_flowing_animated.png", + backface_culling = true, + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 0.8, + }, + }, + }, + alpha = 160, + paramtype = "light", + paramtype2 = "flowingliquid", + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + is_ground_content = false, + drop = "", + drowning = 1, + liquidtype = "flowing", + liquid_alternative_flowing = "default:river_water_flowing", + liquid_alternative_source = "default:river_water_source", + liquid_viscosity = 1, + liquid_renewable = false, + liquid_range = 2, + post_effect_color = {a = 103, r = 30, g = 76, b = 90}, + groups = {water = 3, liquid = 3, puts_out_fire = 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}} + { + 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}, + 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, + light_source = default.LIGHT_MAX - 1, walkable = false, pointable = false, diggable = false, buildable_to = true, + is_ground_content = false, drop = "", drowning = 1, liquidtype = "source", liquid_alternative_flowing = "default:lava_flowing", liquid_alternative_source = "default:lava_source", - liquid_viscosity = LAVA_VISC, + liquid_viscosity = 7, + liquid_range = 6, 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}, + damage_per_second = 4 * 2, + post_effect_color = {a = 191, r = 255, g = 64, b = 0}, + groups = {lava = 3, liquid = 2, hot = 3, igniter = 1}, }) +minetest.register_node("default:lava_flowing", { + description = "Flowing Lava", + drawtype = "flowingliquid", + tiles = {"default_lava.png"}, + special_tiles = { + { + name = "default_lava_flowing_animated.png", + backface_culling = false, + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 3.3, + }, + }, + { + name = "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 = default.LIGHT_MAX - 1, + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + is_ground_content = false, + drop = "", + drowning = 1, + liquidtype = "flowing", + liquid_alternative_flowing = "default:lava_flowing", + liquid_alternative_source = "default:lava_source", + liquid_viscosity = 7, + liquid_range = 6, + liquid_renewable = false, + damage_per_second = 4 * 2, + post_effect_color = {a = 191, r = 255, g = 64, b = 0}, + groups = {lava = 3, liquid = 2, hot = 3, igniter = 1, + not_in_creative_inventory = 1}, +}) + +minetest.register_node("default:acid_source", { + description = "Acid Source", + inventory_image = minetest.inventorycube("default_acid.png"), + drawtype = "liquid", + tiles = { + {name = "default_acid_source_animated.png", animation={type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 1.5}} + }, + special_tiles = { + -- New-style acid source material (mostly unused) + { + name = "default_acid_source_animated.png", + animation = {type = "vertical_frames", aspect_w= 16, aspect_h = 16, length = 1.5}, + backface_culling = false, + } + }, + alpha = 160, + paramtype = "light", + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + drop = "", + drowning = 2, + liquidtype = "source", + liquid_alternative_flowing = "default:acid_flowing", + liquid_alternative_source = "default:acid_source", + liquid_viscosity = 1, + liquid_range = 4, + damage_per_second = 3, + post_effect_color = {a = 120, r = 50, g = 90, b = 30}, + groups = {water = 3, acid = 3, liquid = 3, puts_out_fire = 1}, +}) + +minetest.register_node("default:acid_flowing", { + description = "Flowing Acid", + inventory_image = minetest.inventorycube("default_acid.png"), + drawtype = "flowingliquid", + tiles = {"default_acid.png"}, + special_tiles = { + { + image = "default_acid_flowing_animated.png", + backface_culling=false, + animation={type = "vertical_frames", aspect_w= 16, aspect_h = 16, length = 0.6} + }, + { + image = "default_acid_flowing_animated.png", + backface_culling=true, + animation={type = "vertical_frames", aspect_w= 16, aspect_h = 16, length = 0.6} + }, + }, + alpha = 160, + paramtype = "light", + paramtype2 = "flowingliquid", + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + drop = "", + drowning = 2, + liquidtype = "flowing", + liquid_alternative_flowing = "default:acid_flowing", + liquid_alternative_source = "default:acid_source", + liquid_viscosity = 1, + liquid_range = 4, + damage_per_second = 3, + post_effect_color = {a = 120, r = 50, g = 90, b = 30}, + groups = {water = 3, acid = 3, liquid = 3, puts_out_fire = 1, not_in_creative_inventory = 1}, +}) + +minetest.register_node("default:sand_source", { + description = "Sand Source", + inventory_image = minetest.inventorycube("default_sand.png"), + drawtype = "liquid", + tiles = {"default_sand.png"}, + alpha = 255, + paramtype = "light", + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + drop = "", + drowning = 4, + liquidtype = "source", + liquid_alternative_flowing = "default:sand_flowing", + liquid_alternative_source = "default:sand_source", + liquid_viscosity = 20, + liquid_renewable = false, + post_effect_color = {a = 250, r = 0, g = 0, b = 0}, + groups = {liquid = 3}, +}) + +minetest.register_node("default:sand_flowing", { + description = "Flowing Sand", + inventory_image = minetest.inventorycube("default_sand.png"), + drawtype = "flowingliquid", + tiles = {"default_sand.png"}, + special_tiles = { + { + image = "default_sand_flowing_animated.png", + backface_culling=false, + animation={type = "vertical_frames", aspect_w= 16, aspect_h = 16, length = 0.6} + }, + { + image = "default_sand_flowing_animated.png", + backface_culling=true, + animation={type = "vertical_frames", aspect_w= 16, aspect_h = 16, length = 0.6} + }, + }, + alpha = 255, + paramtype = "light", + paramtype2 = "flowingliquid", + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + drop = "", + drowning = 4, + liquidtype = "flowing", + liquid_alternative_flowing = "default:sand_flowing", + liquid_alternative_source = "default:sand_source", + liquid_viscosity = 20, + post_effect_color = {a = 250, r = 0, g = 0, b = 0}, + groups = {liquid = 3, not_in_creative_inventory = 1}, +}) + +-- +-- Tools / "Advanced" crafting / Non-"natural" +-- + minetest.register_node("default:torch", { description = "Torch", - drawtype = "torchlike", - --tiles = {"default_torch_on_floor.png", "default_torch_on_ceiling.png", "default_torch.png"}, + drawtype = "nodebox", 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}} + { + name = "default_torch_new_top.png", + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 3.0 + }, + }, + { + name="default_torch_new_bottom.png", + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 3.0 + }, + }, + { + name="default_torch_new_side.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", + inventory_image = "default_torch_new_inv.png", + wield_image = "default_torch_new_inv.png", + wield_scale = {x = 1, y = 1, z = 1.25}, paramtype = "light", paramtype2 = "wallmounted", sunlight_propagates = true, is_ground_content = false, walkable = false, - light_source = LIGHT_MAX-1, + light_source = default.LIGHT_MAX - 1, + node_box = { + type = "wallmounted", + wall_top = {-0.0625, -0.0625, -0.0625, 0.0625, 0.5 , 0.0625}, + wall_bottom = {-0.0625, -0.5 , -0.0625, 0.0625, 0.0625, 0.0625}, + wall_side = {-0.5 , -0.5 , -0.0625, -0.375, 0.0625, 0.0625}, + }, 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}, + wall_top = {-0.25, -0.0625, -0.25, 0.25, 0.5 , 0.25}, + wall_bottom = {-0.25, -0.5 , -0.25, 0.25, 0.0625, 0.25}, + wall_side = {-0.25, -0.5 , -0.25, -0.5, 0.0625, 0.25}, }, - groups = {choppy=2,dig_immediate=3,flammable=1,attached_node=1,hot=2}, + 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) - fields.text = fields.text or "" - 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]".. +local 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]" .. + "listring[current_name;main]" .. + "listring[current_player;main]" .. default.get_hotbar_bg(0,4.85) -function default.get_locked_chest_formspec(pos) - local spos = pos.x .. "," .. pos.y .. "," ..pos.z +local function 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]".. + "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]" .. + "listring[nodemeta:" .. spos .. ";main]" .. + "listring[current_player;main]" .. default.get_hotbar_bg(0,4.85) return formspec end +local function has_locked_chest_privilege(meta, player) + local name = "" + if player then + if minetest.check_player_privs(player, "protection_bypass") then + return true + end + name = player:get_player_name() + end + if name ~= meta:get_string("owner") then + return false + end + return true +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}, + 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("formspec", chest_formspec) meta:set_string("infotext", "Chest") local inv = meta:get_inventory() inv:set_size("main", 8*4) @@ -777,55 +2249,60 @@ minetest.register_node("default:chest", { 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)) + 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)) + minetest.log("action", player:get_player_name() .. + " moves " .. stack:get_name() .. + " 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)) + minetest.log("action", player:get_player_name() .. + " takes " .. stack:get_name() .. + " from chest at " .. minetest.pos_to_string(pos)) + end, + on_blast = function(pos) + local drops = {} + default.get_inventory_drops(pos, "main", drops) + drops[#drops+1] = "default:chest" + minetest.remove_node(pos) + return drops 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}, + 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")..")") + 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) + 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) + 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 @@ -847,634 +2324,378 @@ minetest.register_node("default:chest_locked", { 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)) + minetest.log("action", player:get_player_name() .. + " moves " .. stack:get_name() .. + " 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)) + minetest.log("action", player:get_player_name() .. + " takes " .. stack:get_name() .. + " from locked chest at " .. minetest.pos_to_string(pos)) end, - on_rightclick = function(pos, node, clicker) + on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) 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) + get_locked_chest_formspec(pos) ) end + return itemstack end, + on_blast = function() 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}) +local 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]" .. + "listring[context;books]" .. + "listring[current_player;main]" .. + default.get_hotbar_bg(0,2.85) + +-- Inventory slots overlay +local bx, by = 0, 0.3 +for i = 1, 16 do + if i == 9 then + bx = 0 + by = by + 1 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) + bookshelf_formspec = bookshelf_formspec .. + "image[" .. bx .. "," .. by .. ";1,1;default_bookshelf_slot.png]" + bx = bx + 1 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"}, +minetest.register_node("default:bookshelf", { + description = "Bookshelf", + tiles = {"default_wood.png", "default_wood.png", "default_wood.png", + "default_wood.png", "default_bookshelf.png", "default_bookshelf.png"}, paramtype2 = "facedir", - groups = {cracky=2}, - legacy_facedir_simple = true, is_ground_content = false, - sounds = default.node_sound_stone_defaults(), + groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3}, + sounds = default.node_sound_wood_defaults(), + on_construct = function(pos) local meta = minetest.get_meta(pos) - meta:set_string("formspec", default.furnace_inactive_formspec) - meta:set_string("infotext", "Furnace") + meta:set_string("formspec", bookshelf_formspec) local inv = meta:get_inventory() - inv:set_size("fuel", 1) - inv:set_size("src", 1) - inv:set_size("dst", 4) + inv:set_size("books", 8 * 2) 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 + local inv = minetest.get_meta(pos):get_inventory() + return inv:is_empty("books") 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 + allow_metadata_inventory_put = function(pos, listname, index, stack) + if minetest.get_item_group(stack:get_name(), "book") ~= 0 then return stack:get_count() - elseif listname == "dst" then - return 0 end + return 0 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 + 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, - 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() + 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, + on_blast = function(pos) + local drops = {} + default.get_inventory_drops(pos, "books", drops) + drops[#drops+1] = "default:bookshelf" + minetest.remove_node(pos) + return drops 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 - }, - } +local function register_sign(material, desc, def) + minetest.register_node("default:sign_wall_" .. material, { + description = desc .. " Sign", + drawtype = "nodebox", + tiles = {"default_sign_wall_" .. material .. ".png"}, + inventory_image = "default_sign_" .. material .. ".png", + wield_image = "default_sign_" .. material .. ".png", + paramtype = "light", + paramtype2 = "wallmounted", + sunlight_propagates = true, + is_ground_content = false, + walkable = false, + node_box = { + type = "wallmounted", + wall_top = {-0.4375, 0.4375, -0.3125, 0.4375, 0.5, 0.3125}, + wall_bottom = {-0.4375, -0.5, -0.3125, 0.4375, -0.4375, 0.3125}, + wall_side = {-0.5, -0.3125, -0.4375, -0.4375, 0.3125, 0.4375}, + }, + groups = def.groups, + legacy_wallmounted = true, + sounds = def.sounds, + + on_construct = function(pos) + --local n = minetest.get_node(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", "field[text;;${text}]") + end, + on_receive_fields = function(pos, formname, fields, sender) + --print("Sign at "..minetest.pos_to_string(pos).." got "..dump(fields)) + local player_name = sender:get_player_name() + if minetest.is_protected(pos, player_name) then + minetest.record_protection_violation(pos, player_name) + return + end + local meta = minetest.get_meta(pos) + if not fields.text then return end + minetest.log("action", (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, + }) +end + +register_sign("wood", "Wooden", { + sounds = default.node_sound_wood_defaults(), + groups = {choppy = 2, attached_node = 1, flammable = 2, oddly_breakable_by_hand = 3} +}) + +register_sign("steel", "Steel", { + sounds = default.node_sound_metal_defaults(), + groups = {cracky = 2, attached_node = 1} +}) + +minetest.register_node("default:ladder_wood", { + description = "Wooden Ladder", + drawtype = "signlike", + tiles = {"default_ladder_wood.png"}, + inventory_image = "default_ladder_wood.png", + wield_image = "default_ladder_wood.png", + paramtype = "light", + paramtype2 = "wallmounted", + sunlight_propagates = true, + walkable = false, + climbable = true, + is_ground_content = false, + selection_box = { + type = "wallmounted", + --wall_top = = + --wall_bottom = = + --wall_side = = }, - paramtype2 = "facedir", - light_source = 8, - drop = "default:furnace", - groups = {cracky=2, not_in_creative_inventory=1,hot=1}, - legacy_facedir_simple = true, + groups = {choppy = 2, oddly_breakable_by_hand = 3, flammable = 2}, + legacy_wallmounted = true, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node("default:ladder_obsidian", { + description = "Obsidian Ladder", + drawtype = "signlike", + tiles = {"default_ladder_obsidian.png"}, + inventory_image = "default_ladder_obsidian.png", + wield_image = "default_ladder_obsidian.png", + paramtype = "light", + paramtype2 = "wallmounted", + sunlight_propagates = true, + walkable = false, + climbable = 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}, + selection_box = { + type = "wallmounted", + --wall_top = = + --wall_bottom = = + --wall_side = = + }, + groups = {cracky = 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:ladder_steel", { + description = "Steel Ladder", + drawtype = "signlike", + tiles = {"default_ladder_steel.png"}, + inventory_image = "default_ladder_steel.png", + wield_image = "default_ladder_steel.png", + paramtype = "light", + paramtype2 = "wallmounted", + sunlight_propagates = true, + walkable = false, + climbable = true, + is_ground_content = false, + selection_box = { + type = "wallmounted", + --wall_top = = + --wall_bottom = = + --wall_side = = + }, + groups = {cracky = 2}, + sounds = default.node_sound_metal_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(), +default.register_fence("default:fence_wood", { + description = "Wooden Fence", + texture = "default_fence_wood.png", + inventory_image = "default_fence_overlay.png^default_wood.png^default_fence_overlay.png^[makealpha:255,126,126", + wield_image = "default_fence_overlay.png^default_wood.png^default_fence_overlay.png^[makealpha:255,126,126", + material = "default:wood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + sounds = default.node_sound_wood_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(), +default.register_fence("default:fence_acacia_wood", { + description = "Acacia Fence", + texture = "default_fence_acacia_wood.png", + inventory_image = "default_fence_overlay.png^default_acacia_wood.png^default_fence_overlay.png^[makealpha:255,126,126", + wield_image = "default_fence_overlay.png^default_acacia_wood.png^default_fence_overlay.png^[makealpha:255,126,126", + material = "default:acacia_wood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + sounds = default.node_sound_wood_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(), +default.register_fence("default:fence_junglewood", { + description = "Junglewood Fence", + texture = "default_fence_junglewood.png", + inventory_image = "default_fence_overlay.png^default_junglewood.png^default_fence_overlay.png^[makealpha:255,126,126", + wield_image = "default_fence_overlay.png^default_junglewood.png^default_fence_overlay.png^[makealpha:255,126,126", + material = "default:junglewood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + sounds = default.node_sound_wood_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(), +default.register_fence("default:fence_pine_wood", { + description = "Pine Fence", + texture = "default_fence_pine_wood.png", + inventory_image = "default_fence_overlay.png^default_pine_wood.png^default_fence_overlay.png^[makealpha:255,126,126", + wield_image = "default_fence_overlay.png^default_pine_wood.png^default_fence_overlay.png^[makealpha:255,126,126", + material = "default:pine_wood", + groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3}, + sounds = default.node_sound_wood_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(), +default.register_fence("default:fence_aspen_wood", { + description = "Aspen Fence", + texture = "default_fence_aspen_wood.png", + inventory_image = "default_fence_overlay.png^default_aspen_wood.png^default_fence_overlay.png^[makealpha:255,126,126", + wield_image = "default_fence_overlay.png^default_aspen_wood.png^default_fence_overlay.png^[makealpha:255,126,126", + material = "default:aspen_wood", + groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3}, + sounds = default.node_sound_wood_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(), +default.register_fence("default:fence_cobble", { + description = "Cobble Fence", + texture = "default_fence_cobble.png", + material = "default:cobble", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + sounds = default.node_sound_wood_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(), +default.register_fence("default:fence_desert_cobble", { + description = "Desert Cobble Fence", + texture = "default_fence_desert_cobble.png", + material = "default:desert_cobble", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + sounds = default.node_sound_wood_defaults() +}) + +default.register_fence("default:fence_steelblock", { + description = "Steel Block Fence", + texture = "default_fence_steelblock.png", + material = "default:steelblock", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + sounds = default.node_sound_wood_defaults() +}) + +default.register_fence("default:fence_brick", { + description = "Brick Fence", + texture = "default_fence_brick.png", + material = "default:brick", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + sounds = default.node_sound_wood_defaults() +}) + +minetest.register_node("default:glass", { + description = "Glass", + drawtype = "glasslike_framed_optional", + tiles = {"default_glass.png", "default_glass_detail.png"}, + paramtype = "light", + sunlight_propagates = true, + is_ground_content = false, + groups = {cracky = 3, oddly_breakable_by_hand = 3}, + sounds = default.node_sound_glass_defaults(), }) minetest.register_node("default:obsidian_glass", { description = "Obsidian Glass", - drawtype = "glasslike", - tiles = {"default_obsidian_glass.png"}, + drawtype = "glasslike_framed_optional", + tiles = {"default_obsidian_glass.png", "default_obsidian_glass_detail.png"}, paramtype = "light", is_ground_content = false, sunlight_propagates = true, sounds = default.node_sound_glass_defaults(), - groups = {cracky=3,oddly_breakable_by_hand=3}, + groups = {cracky = 3, oddly_breakable_by_hand = 3}, }) -minetest.register_node("default:obsidian", { - description = "Obsidian", - tiles = {"default_obsidian.png"}, - is_ground_content = true, + +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", + sunlight_propagates = true, + 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 = {dig_immediate = 2, attached_node = 1, + connect_to_raillike = minetest.raillike_group("rail")}, +}) + + +minetest.register_node("default:brick", { + description = "Brick Block", + paramtype2 = "facedir", + place_param2 = 0, + tiles = {"default_brick.png"}, + is_ground_content = false, + groups = {cracky = 3}, 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", +minetest.register_node("default:meselamp", { + description = "Mese Lamp", + drawtype = "glasslike", + tiles = {"default_meselamp.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}, + is_ground_content = false, + groups = {cracky = 3, oddly_breakable_by_hand = 3}, sounds = default.node_sound_glass_defaults(), + light_source = default.LIGHT_MAX, }) -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") +-- +-- Misc +-- -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}, - }), +minetest.register_node("default:cloud", { + description = "Cloud", + tiles = {"default_cloud.png"}, + is_ground_content = false, + sounds = default.node_sound_defaults(), + groups = {not_in_creative_inventory = 1}, }) diff --git a/mods/default/player.lua b/mods/default/player.lua old mode 100644 new mode 100755 index 0498b19f..8fb0aca8 --- a/mods/default/player.lua +++ b/mods/default/player.lua @@ -1,55 +1,6 @@ -- 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 @@ -64,7 +15,7 @@ function default.player_register_model(name, def) end -- Default player appearance -default.player_register_model("character.x", { +default.player_register_model("character.b3d", { animation_speed = 30, textures = {"character.png", }, animations = { @@ -74,7 +25,6 @@ default.player_register_model("character.x", { 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, }, }, }) @@ -142,12 +92,12 @@ end -- Update appearance when the player joins minetest.register_on_joinplayer(function(player) default.player_attached[player:get_player_name()] = false - default.player_set_model(player, "character.x") + default.player_set_model(player, "character.b3d") player:set_local_animation({x=0, y=79}, {x=168, y=187}, {x=189, y=198}, {x=200, y=219}, 30) -- set GUI if not minetest.setting_getbool("creative_mode") then - player:set_inventory_formspec(default.gui_suvival_form) + player:set_inventory_formspec(default.gui_survival_form) end player:hud_set_hotbar_image("gui_hotbar.png") player:hud_set_hotbar_selected_image("gui_hotbar_selected.png") @@ -162,6 +112,7 @@ end) -- Localize for better performance. local player_set_animation = default.player_set_animation +local player_attached = default.player_attached -- Check each player and apply animations minetest.register_globalstep(function(dtime) @@ -169,7 +120,7 @@ minetest.register_globalstep(function(dtime) local name = player:get_player_name() local model_name = player_model[name] local model = model_name and models[model_name] - if model and not default.player_attached[name] then + if model and not player_attached[name] then local controls = player:get_player_control() local walking = false local animation_speed_mod = model.animation_speed or 30 diff --git a/mods/default/schematics/acacia_tree.mts b/mods/default/schematics/acacia_tree.mts new file mode 100644 index 00000000..4732ade3 Binary files /dev/null and b/mods/default/schematics/acacia_tree.mts differ diff --git a/mods/default/schematics/acacia_tree_from_sapling.mts b/mods/default/schematics/acacia_tree_from_sapling.mts new file mode 100755 index 00000000..23e8e4b3 Binary files /dev/null and b/mods/default/schematics/acacia_tree_from_sapling.mts differ diff --git a/mods/default/schematics/apple_tree.mts b/mods/default/schematics/apple_tree.mts new file mode 100644 index 00000000..ac09b466 Binary files /dev/null and b/mods/default/schematics/apple_tree.mts differ diff --git a/mods/default/schematics/apple_tree_from_sapling.mts b/mods/default/schematics/apple_tree_from_sapling.mts new file mode 100755 index 00000000..5d35a154 Binary files /dev/null and b/mods/default/schematics/apple_tree_from_sapling.mts differ diff --git a/mods/default/schematics/aspen_tree.mts b/mods/default/schematics/aspen_tree.mts new file mode 100644 index 00000000..724aae08 Binary files /dev/null and b/mods/default/schematics/aspen_tree.mts differ diff --git a/mods/default/schematics/aspen_tree_from_sapling.mts b/mods/default/schematics/aspen_tree_from_sapling.mts new file mode 100644 index 00000000..b7ca1619 Binary files /dev/null and b/mods/default/schematics/aspen_tree_from_sapling.mts differ diff --git a/mods/default/schematics/jungle_tree.mts b/mods/default/schematics/jungle_tree.mts new file mode 100755 index 00000000..329364a8 Binary files /dev/null and b/mods/default/schematics/jungle_tree.mts differ diff --git a/mods/default/schematics/jungle_tree_from_sapling.mts b/mods/default/schematics/jungle_tree_from_sapling.mts new file mode 100755 index 00000000..babaa45f Binary files /dev/null and b/mods/default/schematics/jungle_tree_from_sapling.mts differ diff --git a/mods/default/schematics/large_cactus.mts b/mods/default/schematics/large_cactus.mts new file mode 100644 index 00000000..b71077b3 Binary files /dev/null and b/mods/default/schematics/large_cactus.mts differ diff --git a/mods/default/schematics/papyrus.mts b/mods/default/schematics/papyrus.mts new file mode 100755 index 00000000..a3b67776 Binary files /dev/null and b/mods/default/schematics/papyrus.mts differ diff --git a/mods/default/schematics/pine_tree.mts b/mods/default/schematics/pine_tree.mts new file mode 100644 index 00000000..3a3fa7ad Binary files /dev/null and b/mods/default/schematics/pine_tree.mts differ diff --git a/mods/default/schematics/pine_tree_from_sapling.mts b/mods/default/schematics/pine_tree_from_sapling.mts new file mode 100755 index 00000000..629c5da0 Binary files /dev/null and b/mods/default/schematics/pine_tree_from_sapling.mts differ diff --git a/mods/default/schematics/snowy_pine_tree_from_sapling.mts b/mods/default/schematics/snowy_pine_tree_from_sapling.mts new file mode 100644 index 00000000..0692049a Binary files /dev/null and b/mods/default/schematics/snowy_pine_tree_from_sapling.mts differ diff --git a/mods/default/sounds/default_break_glass.1.ogg b/mods/default/sounds/default_break_glass.1.ogg old mode 100644 new mode 100755 index b1ccc5fa..f209ebd7 Binary files a/mods/default/sounds/default_break_glass.1.ogg and b/mods/default/sounds/default_break_glass.1.ogg differ diff --git a/mods/default/sounds/default_break_glass.2.ogg b/mods/default/sounds/default_break_glass.2.ogg old mode 100644 new mode 100755 index b6cc9e85..33912051 Binary files a/mods/default/sounds/default_break_glass.2.ogg and b/mods/default/sounds/default_break_glass.2.ogg differ diff --git a/mods/default/sounds/default_break_glass.3.ogg b/mods/default/sounds/default_break_glass.3.ogg old mode 100644 new mode 100755 index ae6a6bfc..c7283fc1 Binary files a/mods/default/sounds/default_break_glass.3.ogg and b/mods/default/sounds/default_break_glass.3.ogg differ diff --git a/mods/default/sounds/default_breathless.ogg b/mods/default/sounds/default_breathless.ogg new file mode 100755 index 00000000..ab6b63d4 Binary files /dev/null and b/mods/default/sounds/default_breathless.ogg differ diff --git a/mods/default/sounds/default_cool_lava.1.ogg b/mods/default/sounds/default_cool_lava.1.ogg old mode 100644 new mode 100755 index 42506ddf..000c2477 Binary files a/mods/default/sounds/default_cool_lava.1.ogg and b/mods/default/sounds/default_cool_lava.1.ogg differ diff --git a/mods/default/sounds/default_cool_lava.2.ogg b/mods/default/sounds/default_cool_lava.2.ogg old mode 100644 new mode 100755 index 2747ab81..a1b08bb4 Binary files a/mods/default/sounds/default_cool_lava.2.ogg and b/mods/default/sounds/default_cool_lava.2.ogg differ diff --git a/mods/default/sounds/default_cool_lava.3.ogg b/mods/default/sounds/default_cool_lava.3.ogg old mode 100644 new mode 100755 index 8baeac32..ab919ca0 Binary files a/mods/default/sounds/default_cool_lava.3.ogg and b/mods/default/sounds/default_cool_lava.3.ogg differ diff --git a/mods/default/sounds/default_dig_choppy.ogg b/mods/default/sounds/default_dig_choppy.ogg old mode 100644 new mode 100755 index e2ecd841..cd1f12e6 Binary files a/mods/default/sounds/default_dig_choppy.ogg and b/mods/default/sounds/default_dig_choppy.ogg differ diff --git a/mods/default/sounds/default_dig_cracky.ogg b/mods/default/sounds/default_dig_cracky.ogg old mode 100644 new mode 100755 index da116791..ee7ad0cd Binary files a/mods/default/sounds/default_dig_cracky.ogg and b/mods/default/sounds/default_dig_cracky.ogg differ diff --git a/mods/default/sounds/default_dig_crumbly.ogg b/mods/default/sounds/default_dig_crumbly.ogg old mode 100644 new mode 100755 index a0b2a1f9..775ff1ef Binary files a/mods/default/sounds/default_dig_crumbly.ogg and b/mods/default/sounds/default_dig_crumbly.ogg differ diff --git a/mods/default/sounds/default_dig_dig_immediate.ogg b/mods/default/sounds/default_dig_dig_immediate.ogg old mode 100644 new mode 100755 index e65d766e..620b5385 Binary files a/mods/default/sounds/default_dig_dig_immediate.ogg and b/mods/default/sounds/default_dig_dig_immediate.ogg differ diff --git a/mods/default/sounds/default_dig_metal.ogg b/mods/default/sounds/default_dig_metal.ogg new file mode 100644 index 00000000..0b585097 Binary files /dev/null and b/mods/default/sounds/default_dig_metal.ogg differ diff --git a/mods/default/sounds/default_dig_oddly_breakable_by_hand.ogg b/mods/default/sounds/default_dig_oddly_breakable_by_hand.ogg old mode 100644 new mode 100755 index ef4d7b15..e1a90bd2 Binary files a/mods/default/sounds/default_dig_oddly_breakable_by_hand.ogg and b/mods/default/sounds/default_dig_oddly_breakable_by_hand.ogg differ diff --git a/mods/default/sounds/default_dirt_footstep.1.ogg b/mods/default/sounds/default_dirt_footstep.1.ogg old mode 100644 new mode 100755 index 84a197d2..ff0c721c Binary files a/mods/default/sounds/default_dirt_footstep.1.ogg and b/mods/default/sounds/default_dirt_footstep.1.ogg differ diff --git a/mods/default/sounds/default_dirt_footstep.2.ogg b/mods/default/sounds/default_dirt_footstep.2.ogg old mode 100644 new mode 100755 index 2e23b8a2..8f527488 Binary files a/mods/default/sounds/default_dirt_footstep.2.ogg and b/mods/default/sounds/default_dirt_footstep.2.ogg differ diff --git a/mods/default/sounds/default_dirt_footstep.3.ogg b/mods/default/sounds/default_dirt_footstep.3.ogg new file mode 100755 index 00000000..c4ce6d27 Binary files /dev/null and b/mods/default/sounds/default_dirt_footstep.3.ogg differ diff --git a/mods/default/sounds/default_dirt_footstep.4.ogg b/mods/default/sounds/default_dirt_footstep.4.ogg new file mode 100755 index 00000000..06c30656 Binary files /dev/null and b/mods/default/sounds/default_dirt_footstep.4.ogg differ diff --git a/mods/default/sounds/default_dug_metal.1.ogg b/mods/default/sounds/default_dug_metal.1.ogg new file mode 100644 index 00000000..5d6cb5b1 Binary files /dev/null and b/mods/default/sounds/default_dug_metal.1.ogg differ diff --git a/mods/default/sounds/default_dug_metal.2.ogg b/mods/default/sounds/default_dug_metal.2.ogg new file mode 100644 index 00000000..63567fc0 Binary files /dev/null and b/mods/default/sounds/default_dug_metal.2.ogg differ diff --git a/mods/default/sounds/default_dug_node.1.ogg b/mods/default/sounds/default_dug_node.1.ogg old mode 100644 new mode 100755 index c04975d4..de93189a Binary files a/mods/default/sounds/default_dug_node.1.ogg and b/mods/default/sounds/default_dug_node.1.ogg differ diff --git a/mods/default/sounds/default_dug_node.2.ogg b/mods/default/sounds/default_dug_node.2.ogg old mode 100644 new mode 100755 index 9f209268..19797ca8 Binary files a/mods/default/sounds/default_dug_node.2.ogg and b/mods/default/sounds/default_dug_node.2.ogg differ diff --git a/mods/default/sounds/default_glass_footstep.ogg b/mods/default/sounds/default_glass_footstep.ogg old mode 100644 new mode 100755 index 191287a3..d0787d3d Binary files a/mods/default/sounds/default_glass_footstep.ogg and b/mods/default/sounds/default_glass_footstep.ogg differ diff --git a/mods/default/sounds/default_grass_footstep.1.ogg b/mods/default/sounds/default_grass_footstep.1.ogg old mode 100644 new mode 100755 index 22d1ad6b..91da7cee Binary files a/mods/default/sounds/default_grass_footstep.1.ogg and b/mods/default/sounds/default_grass_footstep.1.ogg differ diff --git a/mods/default/sounds/default_grass_footstep.2.ogg b/mods/default/sounds/default_grass_footstep.2.ogg old mode 100644 new mode 100755 index 4ccd8a0f..3e687724 Binary files a/mods/default/sounds/default_grass_footstep.2.ogg and b/mods/default/sounds/default_grass_footstep.2.ogg differ diff --git a/mods/default/sounds/default_grass_footstep.3.ogg b/mods/default/sounds/default_grass_footstep.3.ogg old mode 100644 new mode 100755 index 20db84ed..d44185d3 Binary files a/mods/default/sounds/default_grass_footstep.3.ogg and b/mods/default/sounds/default_grass_footstep.3.ogg differ diff --git a/mods/default/sounds/default_grass_footstep.4.ogg b/mods/default/sounds/default_grass_footstep.4.ogg new file mode 100755 index 00000000..16586285 Binary files /dev/null and b/mods/default/sounds/default_grass_footstep.4.ogg differ diff --git a/mods/default/sounds/default_gravel_footstep.1.ogg b/mods/default/sounds/default_gravel_footstep.1.ogg old mode 100644 new mode 100755 index 8d260ce0..89402747 Binary files a/mods/default/sounds/default_gravel_footstep.1.ogg and b/mods/default/sounds/default_gravel_footstep.1.ogg differ diff --git a/mods/default/sounds/default_gravel_footstep.2.ogg b/mods/default/sounds/default_gravel_footstep.2.ogg old mode 100644 new mode 100755 index 2aba2c65..2aeaa579 Binary files a/mods/default/sounds/default_gravel_footstep.2.ogg and b/mods/default/sounds/default_gravel_footstep.2.ogg differ diff --git a/mods/default/sounds/default_gravel_footstep.3.ogg b/mods/default/sounds/default_gravel_footstep.3.ogg old mode 100644 new mode 100755 index 1bcd8a11..c389772b Binary files a/mods/default/sounds/default_gravel_footstep.3.ogg and b/mods/default/sounds/default_gravel_footstep.3.ogg differ diff --git a/mods/default/sounds/default_gravel_footstep.4.ogg b/mods/default/sounds/default_gravel_footstep.4.ogg old mode 100644 new mode 100755 index 696c9ffd..0721ed56 Binary files a/mods/default/sounds/default_gravel_footstep.4.ogg and b/mods/default/sounds/default_gravel_footstep.4.ogg differ diff --git a/mods/default/sounds/default_hard_footstep.1.ogg b/mods/default/sounds/default_hard_footstep.1.ogg old mode 100644 new mode 100755 index 1748bc56..08c12884 Binary files a/mods/default/sounds/default_hard_footstep.1.ogg and b/mods/default/sounds/default_hard_footstep.1.ogg differ diff --git a/mods/default/sounds/default_hard_footstep.2.ogg b/mods/default/sounds/default_hard_footstep.2.ogg old mode 100644 new mode 100755 index fe39fd78..0f9c6726 Binary files a/mods/default/sounds/default_hard_footstep.2.ogg and b/mods/default/sounds/default_hard_footstep.2.ogg differ diff --git a/mods/default/sounds/default_hard_footstep.3.ogg b/mods/default/sounds/default_hard_footstep.3.ogg old mode 100644 new mode 100755 index 5030e060..677d990d Binary files a/mods/default/sounds/default_hard_footstep.3.ogg and b/mods/default/sounds/default_hard_footstep.3.ogg differ diff --git a/mods/default/sounds/default_hard_footstep.4.ogg b/mods/default/sounds/default_hard_footstep.4.ogg new file mode 100755 index 00000000..e8cff58a Binary files /dev/null and b/mods/default/sounds/default_hard_footstep.4.ogg differ diff --git a/mods/default/sounds/default_item_smoke.ogg b/mods/default/sounds/default_item_smoke.ogg new file mode 100644 index 00000000..5db375fc Binary files /dev/null and b/mods/default/sounds/default_item_smoke.ogg differ diff --git a/mods/default/sounds/default_metal_footstep.1.ogg b/mods/default/sounds/default_metal_footstep.1.ogg new file mode 100755 index 00000000..09dc222a Binary files /dev/null and b/mods/default/sounds/default_metal_footstep.1.ogg differ diff --git a/mods/default/sounds/default_metal_footstep.2.ogg b/mods/default/sounds/default_metal_footstep.2.ogg new file mode 100755 index 00000000..6aa3db79 Binary files /dev/null and b/mods/default/sounds/default_metal_footstep.2.ogg differ diff --git a/mods/default/sounds/default_metal_footstep.3.ogg b/mods/default/sounds/default_metal_footstep.3.ogg new file mode 100755 index 00000000..29eeafc1 Binary files /dev/null and b/mods/default/sounds/default_metal_footstep.3.ogg differ diff --git a/mods/default/sounds/default_metal_footstep.4.ogg b/mods/default/sounds/default_metal_footstep.4.ogg new file mode 100755 index 00000000..dca0a69d Binary files /dev/null and b/mods/default/sounds/default_metal_footstep.4.ogg differ diff --git a/mods/default/sounds/default_place_node.1.ogg b/mods/default/sounds/default_place_node.1.ogg old mode 100644 new mode 100755 index 46b9756d..9f3a6cf0 Binary files a/mods/default/sounds/default_place_node.1.ogg and b/mods/default/sounds/default_place_node.1.ogg differ diff --git a/mods/default/sounds/default_place_node.2.ogg b/mods/default/sounds/default_place_node.2.ogg old mode 100644 new mode 100755 index d34c01a4..5fea93a9 Binary files a/mods/default/sounds/default_place_node.2.ogg and b/mods/default/sounds/default_place_node.2.ogg differ diff --git a/mods/default/sounds/default_place_node.3.ogg b/mods/default/sounds/default_place_node.3.ogg old mode 100644 new mode 100755 index fc293650..5713e892 Binary files a/mods/default/sounds/default_place_node.3.ogg and b/mods/default/sounds/default_place_node.3.ogg differ diff --git a/mods/default/sounds/default_place_node_hard.1.ogg b/mods/default/sounds/default_place_node_hard.1.ogg old mode 100644 new mode 100755 index 76eecf97..7d8f79a4 Binary files a/mods/default/sounds/default_place_node_hard.1.ogg and b/mods/default/sounds/default_place_node_hard.1.ogg differ diff --git a/mods/default/sounds/default_place_node_hard.2.ogg b/mods/default/sounds/default_place_node_hard.2.ogg old mode 100644 new mode 100755 index 1d3b3de2..9906b138 Binary files a/mods/default/sounds/default_place_node_hard.2.ogg and b/mods/default/sounds/default_place_node_hard.2.ogg differ diff --git a/mods/default/sounds/default_place_node_metal.1.ogg b/mods/default/sounds/default_place_node_metal.1.ogg new file mode 100644 index 00000000..5da085ea Binary files /dev/null and b/mods/default/sounds/default_place_node_metal.1.ogg differ diff --git a/mods/default/sounds/default_place_node_metal.2.ogg b/mods/default/sounds/default_place_node_metal.2.ogg new file mode 100644 index 00000000..5ee67fcf Binary files /dev/null and b/mods/default/sounds/default_place_node_metal.2.ogg differ diff --git a/mods/default/sounds/default_sand_footstep.1.ogg b/mods/default/sounds/default_sand_footstep.1.ogg old mode 100644 new mode 100755 index 65b68c7e..4aa2e30b Binary files a/mods/default/sounds/default_sand_footstep.1.ogg and b/mods/default/sounds/default_sand_footstep.1.ogg differ diff --git a/mods/default/sounds/default_sand_footstep.2.ogg b/mods/default/sounds/default_sand_footstep.2.ogg old mode 100644 new mode 100755 index 57f35f30..ee09fd64 Binary files a/mods/default/sounds/default_sand_footstep.2.ogg and b/mods/default/sounds/default_sand_footstep.2.ogg differ diff --git a/mods/default/sounds/default_sand_footstep.3.ogg b/mods/default/sounds/default_sand_footstep.3.ogg new file mode 100755 index 00000000..c9c90168 Binary files /dev/null and b/mods/default/sounds/default_sand_footstep.3.ogg differ diff --git a/mods/default/sounds/default_sand_footstep.4.ogg b/mods/default/sounds/default_sand_footstep.4.ogg new file mode 100755 index 00000000..79b2975a Binary files /dev/null and b/mods/default/sounds/default_sand_footstep.4.ogg differ diff --git a/mods/default/sounds/default_snow_footstep.1.ogg b/mods/default/sounds/default_snow_footstep.1.ogg old mode 100644 new mode 100755 index 3260b915..b75a5c1b Binary files a/mods/default/sounds/default_snow_footstep.1.ogg and b/mods/default/sounds/default_snow_footstep.1.ogg differ diff --git a/mods/default/sounds/default_snow_footstep.2.ogg b/mods/default/sounds/default_snow_footstep.2.ogg old mode 100644 new mode 100755 index 4aac1e7f..d60a6285 Binary files a/mods/default/sounds/default_snow_footstep.2.ogg and b/mods/default/sounds/default_snow_footstep.2.ogg differ diff --git a/mods/default/sounds/default_snow_footstep.3.ogg b/mods/default/sounds/default_snow_footstep.3.ogg old mode 100644 new mode 100755 index cf4235b7..0c410fca Binary files a/mods/default/sounds/default_snow_footstep.3.ogg and b/mods/default/sounds/default_snow_footstep.3.ogg differ diff --git a/mods/default/sounds/default_snow_footstep.4.ogg b/mods/default/sounds/default_snow_footstep.4.ogg new file mode 100755 index 00000000..c3537acb Binary files /dev/null and b/mods/default/sounds/default_snow_footstep.4.ogg differ diff --git a/mods/default/sounds/default_wood_footstep.1.ogg b/mods/default/sounds/default_wood_footstep.1.ogg old mode 100644 new mode 100755 index 34f63a17..b9f8f5a7 Binary files a/mods/default/sounds/default_wood_footstep.1.ogg and b/mods/default/sounds/default_wood_footstep.1.ogg differ diff --git a/mods/default/sounds/default_wood_footstep.2.ogg b/mods/default/sounds/default_wood_footstep.2.ogg old mode 100644 new mode 100755 index 124fc297..0482cf2a Binary files a/mods/default/sounds/default_wood_footstep.2.ogg and b/mods/default/sounds/default_wood_footstep.2.ogg differ diff --git a/mods/default/sounds/default_wood_footstep.3.ogg b/mods/default/sounds/default_wood_footstep.3.ogg new file mode 100755 index 00000000..3f4333a2 Binary files /dev/null and b/mods/default/sounds/default_wood_footstep.3.ogg differ diff --git a/mods/default/sounds/default_wood_footstep.4.ogg b/mods/default/sounds/default_wood_footstep.4.ogg new file mode 100755 index 00000000..c36afc33 Binary files /dev/null and b/mods/default/sounds/default_wood_footstep.4.ogg differ diff --git a/mods/default/sounds/health_gain.ogg b/mods/default/sounds/health_gain.ogg new file mode 100755 index 00000000..3d21c3fa Binary files /dev/null and b/mods/default/sounds/health_gain.ogg differ diff --git a/mods/default/sounds/lava.ogg b/mods/default/sounds/lava.ogg new file mode 100755 index 00000000..6a7ce6e8 Binary files /dev/null and b/mods/default/sounds/lava.ogg differ diff --git a/mods/default/sounds/player_damage.1.ogg b/mods/default/sounds/player_damage.1.ogg new file mode 100755 index 00000000..4d672aff Binary files /dev/null and b/mods/default/sounds/player_damage.1.ogg differ diff --git a/mods/default/sounds/player_damage.2.ogg b/mods/default/sounds/player_damage.2.ogg new file mode 100755 index 00000000..11f74fd5 Binary files /dev/null and b/mods/default/sounds/player_damage.2.ogg differ diff --git a/mods/default/sounds/player_damage.ogg b/mods/default/sounds/player_damage.ogg new file mode 100644 index 00000000..78880871 Binary files /dev/null and b/mods/default/sounds/player_damage.ogg differ diff --git a/mods/default/sounds/player_falling_damage.ogg b/mods/default/sounds/player_falling_damage.ogg new file mode 100755 index 00000000..33e2f708 Binary files /dev/null and b/mods/default/sounds/player_falling_damage.ogg differ diff --git a/mods/default/sounds/waterfall.ogg b/mods/default/sounds/waterfall.ogg new file mode 100755 index 00000000..2a313956 Binary files /dev/null and b/mods/default/sounds/waterfall.ogg differ diff --git a/mods/default/textures/bubble.png b/mods/default/textures/bubble.png old mode 100644 new mode 100755 index f48aa35c..340445fc Binary files a/mods/default/textures/bubble.png and b/mods/default/textures/bubble.png differ diff --git a/mods/default/textures/crack_anylength.png b/mods/default/textures/crack_anylength.png old mode 100644 new mode 100755 index 2788dc1d..dd3aac9a Binary files a/mods/default/textures/crack_anylength.png and b/mods/default/textures/crack_anylength.png differ diff --git a/mods/default/textures/default_acacia_bush_stem.png b/mods/default/textures/default_acacia_bush_stem.png new file mode 100644 index 00000000..29039152 Binary files /dev/null and b/mods/default/textures/default_acacia_bush_stem.png differ diff --git a/mods/default/textures/default_acacia_leaves.png b/mods/default/textures/default_acacia_leaves.png new file mode 100644 index 00000000..626e1b30 Binary files /dev/null and b/mods/default/textures/default_acacia_leaves.png differ diff --git a/mods/default/textures/default_acacia_leaves_simple.png b/mods/default/textures/default_acacia_leaves_simple.png new file mode 100644 index 00000000..3c7015bb Binary files /dev/null and b/mods/default/textures/default_acacia_leaves_simple.png differ diff --git a/mods/default/textures/default_acacia_sapling.png b/mods/default/textures/default_acacia_sapling.png new file mode 100644 index 00000000..94f6afb8 Binary files /dev/null and b/mods/default/textures/default_acacia_sapling.png differ diff --git a/mods/default/textures/default_acacia_tree.png b/mods/default/textures/default_acacia_tree.png new file mode 100755 index 00000000..169823d4 Binary files /dev/null and b/mods/default/textures/default_acacia_tree.png differ diff --git a/mods/default/textures/default_acacia_tree_top.png b/mods/default/textures/default_acacia_tree_top.png new file mode 100644 index 00000000..8d36abb3 Binary files /dev/null and b/mods/default/textures/default_acacia_tree_top.png differ diff --git a/mods/default/textures/default_acacia_wood.png b/mods/default/textures/default_acacia_wood.png new file mode 100644 index 00000000..d1a308c3 Binary files /dev/null and b/mods/default/textures/default_acacia_wood.png differ diff --git a/mods/default/textures/default_acid.png b/mods/default/textures/default_acid.png new file mode 100755 index 00000000..a746ecee Binary files /dev/null and b/mods/default/textures/default_acid.png differ diff --git a/mods/default/textures/default_acid_flowing_animated.png b/mods/default/textures/default_acid_flowing_animated.png new file mode 100755 index 00000000..0e33f5bc Binary files /dev/null and b/mods/default/textures/default_acid_flowing_animated.png differ diff --git a/mods/default/textures/default_acid_source_animated.png b/mods/default/textures/default_acid_source_animated.png new file mode 100755 index 00000000..a2510d9a Binary files /dev/null and b/mods/default/textures/default_acid_source_animated.png differ diff --git a/mods/default/textures/default_apple.png b/mods/default/textures/default_apple.png old mode 100644 new mode 100755 index 01942c1b..7549bfd2 Binary files a/mods/default/textures/default_apple.png and b/mods/default/textures/default_apple.png differ diff --git a/mods/default/textures/default_aspen_leaves.png b/mods/default/textures/default_aspen_leaves.png new file mode 100644 index 00000000..3234f7c4 Binary files /dev/null and b/mods/default/textures/default_aspen_leaves.png differ diff --git a/mods/default/textures/default_aspen_sapling.png b/mods/default/textures/default_aspen_sapling.png new file mode 100644 index 00000000..353fcaa2 Binary files /dev/null and b/mods/default/textures/default_aspen_sapling.png differ diff --git a/mods/default/textures/default_aspen_tree.png b/mods/default/textures/default_aspen_tree.png new file mode 100644 index 00000000..4ab7fd72 Binary files /dev/null and b/mods/default/textures/default_aspen_tree.png differ diff --git a/mods/default/textures/default_aspen_tree_top.png b/mods/default/textures/default_aspen_tree_top.png new file mode 100644 index 00000000..61ac0096 Binary files /dev/null and b/mods/default/textures/default_aspen_tree_top.png differ diff --git a/mods/default/textures/default_aspen_wood.png b/mods/default/textures/default_aspen_wood.png new file mode 100644 index 00000000..23843bec Binary files /dev/null and b/mods/default/textures/default_aspen_wood.png differ diff --git a/mods/default/textures/default_book.png b/mods/default/textures/default_book.png index db966364..46322345 100644 Binary files a/mods/default/textures/default_book.png and b/mods/default/textures/default_book.png differ diff --git a/mods/default/textures/default_book_written.png b/mods/default/textures/default_book_written.png new file mode 100644 index 00000000..fe8b0630 Binary files /dev/null and b/mods/default/textures/default_book_written.png differ diff --git a/mods/default/textures/default_bookshelf.png b/mods/default/textures/default_bookshelf.png index 7afbcda5..10d64837 100644 Binary files a/mods/default/textures/default_bookshelf.png and b/mods/default/textures/default_bookshelf.png differ diff --git a/mods/default/textures/default_bookshelf_slot.png b/mods/default/textures/default_bookshelf_slot.png new file mode 100644 index 00000000..31c4eb5e Binary files /dev/null and b/mods/default/textures/default_bookshelf_slot.png differ diff --git a/mods/default/textures/default_brick.png b/mods/default/textures/default_brick.png old mode 100644 new mode 100755 index d5850a0e..de98961e Binary files a/mods/default/textures/default_brick.png and b/mods/default/textures/default_brick.png differ diff --git a/mods/default/textures/default_bronze_block.png b/mods/default/textures/default_bronze_block.png old mode 100644 new mode 100755 index 710c49a4..491fc78a Binary files a/mods/default/textures/default_bronze_block.png and b/mods/default/textures/default_bronze_block.png differ diff --git a/mods/default/textures/default_bronze_ingot.png b/mods/default/textures/default_bronze_ingot.png old mode 100644 new mode 100755 index e3c0b6f6..6cccdf6e Binary files a/mods/default/textures/default_bronze_ingot.png and b/mods/default/textures/default_bronze_ingot.png differ diff --git a/mods/default/textures/default_bush_stem.png b/mods/default/textures/default_bush_stem.png new file mode 100644 index 00000000..18b615f7 Binary files /dev/null and b/mods/default/textures/default_bush_stem.png differ diff --git a/mods/default/textures/default_cactus_side.png b/mods/default/textures/default_cactus_side.png index 1fc8f275..530316a4 100644 Binary files a/mods/default/textures/default_cactus_side.png and b/mods/default/textures/default_cactus_side.png differ diff --git a/mods/default/textures/default_cactus_spiky.png b/mods/default/textures/default_cactus_spiky.png new file mode 100644 index 00000000..cdceed2f Binary files /dev/null and b/mods/default/textures/default_cactus_spiky.png differ diff --git a/mods/default/textures/default_cactus_top.png b/mods/default/textures/default_cactus_top.png old mode 100644 new mode 100755 index df48b730..6a11d9b9 Binary files a/mods/default/textures/default_cactus_top.png and b/mods/default/textures/default_cactus_top.png differ diff --git a/mods/default/textures/default_cherry_blossom_leaves.png b/mods/default/textures/default_cherry_blossom_leaves.png new file mode 100755 index 00000000..8b7e641a Binary files /dev/null and b/mods/default/textures/default_cherry_blossom_leaves.png differ diff --git a/mods/default/textures/default_cherry_sapling.png b/mods/default/textures/default_cherry_sapling.png new file mode 100755 index 00000000..0371b461 Binary files /dev/null and b/mods/default/textures/default_cherry_sapling.png differ diff --git a/mods/default/textures/default_cherry_top.png b/mods/default/textures/default_cherry_top.png new file mode 100755 index 00000000..8daa727c Binary files /dev/null and b/mods/default/textures/default_cherry_top.png differ diff --git a/mods/default/textures/default_cherry_tree.png b/mods/default/textures/default_cherry_tree.png new file mode 100755 index 00000000..8301e5d5 Binary files /dev/null and b/mods/default/textures/default_cherry_tree.png differ diff --git a/mods/default/textures/default_chest_front.png b/mods/default/textures/default_chest_front.png old mode 100644 new mode 100755 index 5bf33d4b..f4132794 Binary files a/mods/default/textures/default_chest_front.png and b/mods/default/textures/default_chest_front.png differ diff --git a/mods/default/textures/default_chest_lock.png b/mods/default/textures/default_chest_lock.png old mode 100644 new mode 100755 index cae4055d..b1885ea5 Binary files a/mods/default/textures/default_chest_lock.png and b/mods/default/textures/default_chest_lock.png differ diff --git a/mods/default/textures/default_chest_side.png b/mods/default/textures/default_chest_side.png old mode 100644 new mode 100755 index dd9d923b..44a65a43 Binary files a/mods/default/textures/default_chest_side.png and b/mods/default/textures/default_chest_side.png differ diff --git a/mods/default/textures/default_chest_top.png b/mods/default/textures/default_chest_top.png old mode 100644 new mode 100755 index ba5e2f48..1fbdbb94 Binary files a/mods/default/textures/default_chest_top.png and b/mods/default/textures/default_chest_top.png differ diff --git a/mods/default/textures/default_clay.png b/mods/default/textures/default_clay.png old mode 100644 new mode 100755 index 070b69e4..ac40a08f Binary files a/mods/default/textures/default_clay.png and b/mods/default/textures/default_clay.png differ diff --git a/mods/default/textures/default_clay_brick.png b/mods/default/textures/default_clay_brick.png index fd14ea1e..67c92bb2 100644 Binary files a/mods/default/textures/default_clay_brick.png and b/mods/default/textures/default_clay_brick.png differ diff --git a/mods/default/textures/default_clay_burned.png b/mods/default/textures/default_clay_burned.png new file mode 100644 index 00000000..d6a98030 Binary files /dev/null and b/mods/default/textures/default_clay_burned.png differ diff --git a/mods/default/textures/default_clay_lump.png b/mods/default/textures/default_clay_lump.png old mode 100644 new mode 100755 index aef6efd3..438f9236 Binary files a/mods/default/textures/default_clay_lump.png and b/mods/default/textures/default_clay_lump.png differ diff --git a/mods/default/textures/default_cloud.png b/mods/default/textures/default_cloud.png old mode 100644 new mode 100755 diff --git a/mods/default/textures/default_coal_block.png b/mods/default/textures/default_coal_block.png old mode 100644 new mode 100755 index 08fcd92b..ee4ef54e Binary files a/mods/default/textures/default_coal_block.png and b/mods/default/textures/default_coal_block.png differ diff --git a/mods/default/textures/default_coal_lump.png b/mods/default/textures/default_coal_lump.png old mode 100644 new mode 100755 index 487f4583..792961dc Binary files a/mods/default/textures/default_coal_lump.png and b/mods/default/textures/default_coal_lump.png differ diff --git a/mods/default/textures/default_cobble.png b/mods/default/textures/default_cobble.png old mode 100644 new mode 100755 index e0fe5ddc..9b1debb1 Binary files a/mods/default/textures/default_cobble.png and b/mods/default/textures/default_cobble.png differ diff --git a/mods/default/textures/default_copper_block.png b/mods/default/textures/default_copper_block.png old mode 100644 new mode 100755 index bb97a38b..e1b60f0a Binary files a/mods/default/textures/default_copper_block.png and b/mods/default/textures/default_copper_block.png differ diff --git a/mods/default/textures/default_copper_ingot.png b/mods/default/textures/default_copper_ingot.png old mode 100644 new mode 100755 index 73e4b6ff..bcad9c05 Binary files a/mods/default/textures/default_copper_ingot.png and b/mods/default/textures/default_copper_ingot.png differ diff --git a/mods/default/textures/default_copper_lump.png b/mods/default/textures/default_copper_lump.png old mode 100644 new mode 100755 index 8a706fed..998c592e Binary files a/mods/default/textures/default_copper_lump.png and b/mods/default/textures/default_copper_lump.png differ diff --git a/mods/default/textures/default_coral_brown.png b/mods/default/textures/default_coral_brown.png new file mode 100644 index 00000000..8a775fe0 Binary files /dev/null and b/mods/default/textures/default_coral_brown.png differ diff --git a/mods/default/textures/default_coral_orange.png b/mods/default/textures/default_coral_orange.png new file mode 100644 index 00000000..cefac627 Binary files /dev/null and b/mods/default/textures/default_coral_orange.png differ diff --git a/mods/default/textures/default_coral_skeleton.png b/mods/default/textures/default_coral_skeleton.png new file mode 100644 index 00000000..fa48f151 Binary files /dev/null and b/mods/default/textures/default_coral_skeleton.png differ diff --git a/mods/default/textures/default_desert_cobble.png b/mods/default/textures/default_desert_cobble.png old mode 100644 new mode 100755 diff --git a/mods/default/textures/default_desert_sand.png b/mods/default/textures/default_desert_sand.png old mode 100644 new mode 100755 diff --git a/mods/default/textures/default_desert_stone.png b/mods/default/textures/default_desert_stone.png old mode 100644 new mode 100755 diff --git a/mods/default/textures/default_desert_stone_block.png b/mods/default/textures/default_desert_stone_block.png new file mode 100644 index 00000000..ef7ba5bc Binary files /dev/null and b/mods/default/textures/default_desert_stone_block.png differ diff --git a/mods/default/textures/default_desert_stone_brick.png b/mods/default/textures/default_desert_stone_brick.png old mode 100644 new mode 100755 index e967873f..b7cc78f4 Binary files a/mods/default/textures/default_desert_stone_brick.png and b/mods/default/textures/default_desert_stone_brick.png differ diff --git a/mods/default/textures/default_diamond.png b/mods/default/textures/default_diamond.png old mode 100644 new mode 100755 diff --git a/mods/default/textures/default_diamond_block.png b/mods/default/textures/default_diamond_block.png index 7437f4df..75863646 100644 Binary files a/mods/default/textures/default_diamond_block.png and b/mods/default/textures/default_diamond_block.png differ diff --git a/mods/default/textures/default_dirt.png b/mods/default/textures/default_dirt.png old mode 100644 new mode 100755 index fa54a739..260bd01c Binary files a/mods/default/textures/default_dirt.png and b/mods/default/textures/default_dirt.png differ diff --git a/mods/default/textures/default_dry_grass.png b/mods/default/textures/default_dry_grass.png new file mode 100644 index 00000000..76dc9816 Binary files /dev/null and b/mods/default/textures/default_dry_grass.png differ diff --git a/mods/default/textures/default_dry_grass_1.png b/mods/default/textures/default_dry_grass_1.png new file mode 100644 index 00000000..c6fb01b2 Binary files /dev/null and b/mods/default/textures/default_dry_grass_1.png differ diff --git a/mods/default/textures/default_dry_grass_2.png b/mods/default/textures/default_dry_grass_2.png new file mode 100644 index 00000000..b4047ba7 Binary files /dev/null and b/mods/default/textures/default_dry_grass_2.png differ diff --git a/mods/default/textures/default_dry_grass_3.png b/mods/default/textures/default_dry_grass_3.png new file mode 100644 index 00000000..6c8e01dc Binary files /dev/null and b/mods/default/textures/default_dry_grass_3.png differ diff --git a/mods/default/textures/default_dry_grass_4.png b/mods/default/textures/default_dry_grass_4.png new file mode 100644 index 00000000..084d02df Binary files /dev/null and b/mods/default/textures/default_dry_grass_4.png differ diff --git a/mods/default/textures/default_dry_grass_5.png b/mods/default/textures/default_dry_grass_5.png new file mode 100644 index 00000000..5a3b00c4 Binary files /dev/null and b/mods/default/textures/default_dry_grass_5.png differ diff --git a/mods/default/textures/default_dry_grass_side.png b/mods/default/textures/default_dry_grass_side.png new file mode 100644 index 00000000..6415abd5 Binary files /dev/null and b/mods/default/textures/default_dry_grass_side.png differ diff --git a/mods/default/textures/default_dry_shrub.png b/mods/default/textures/default_dry_shrub.png old mode 100644 new mode 100755 diff --git a/mods/default/textures/default_fence_acacia_wood.png b/mods/default/textures/default_fence_acacia_wood.png new file mode 100644 index 00000000..d689a30b Binary files /dev/null and b/mods/default/textures/default_fence_acacia_wood.png differ diff --git a/mods/default/textures/default_fence_aspen_wood.png b/mods/default/textures/default_fence_aspen_wood.png new file mode 100644 index 00000000..812fc2ec Binary files /dev/null and b/mods/default/textures/default_fence_aspen_wood.png differ diff --git a/mods/default/textures/default_fence_brick.png b/mods/default/textures/default_fence_brick.png new file mode 100644 index 00000000..f1deb371 Binary files /dev/null and b/mods/default/textures/default_fence_brick.png differ diff --git a/mods/default/textures/default_fence_cobble.png b/mods/default/textures/default_fence_cobble.png new file mode 100644 index 00000000..f57a2d67 Binary files /dev/null and b/mods/default/textures/default_fence_cobble.png differ diff --git a/mods/default/textures/default_fence_desert_cobble.png b/mods/default/textures/default_fence_desert_cobble.png new file mode 100644 index 00000000..ed9b6876 Binary files /dev/null and b/mods/default/textures/default_fence_desert_cobble.png differ diff --git a/mods/default/textures/default_fence_junglewood.png b/mods/default/textures/default_fence_junglewood.png new file mode 100644 index 00000000..4dc7a0d9 Binary files /dev/null and b/mods/default/textures/default_fence_junglewood.png differ diff --git a/mods/default/textures/default_fence_overlay.png b/mods/default/textures/default_fence_overlay.png old mode 100644 new mode 100755 diff --git a/mods/default/textures/default_fence_pine_wood.png b/mods/default/textures/default_fence_pine_wood.png new file mode 100644 index 00000000..2abbb1d8 Binary files /dev/null and b/mods/default/textures/default_fence_pine_wood.png differ diff --git a/mods/default/textures/default_fence_steelblock.png b/mods/default/textures/default_fence_steelblock.png new file mode 100644 index 00000000..5706f12a Binary files /dev/null and b/mods/default/textures/default_fence_steelblock.png differ diff --git a/mods/default/textures/default_fence_wood.png b/mods/default/textures/default_fence_wood.png new file mode 100644 index 00000000..af736826 Binary files /dev/null and b/mods/default/textures/default_fence_wood.png differ diff --git a/mods/default/textures/default_flint.png b/mods/default/textures/default_flint.png new file mode 100644 index 00000000..19ba3e5c Binary files /dev/null and b/mods/default/textures/default_flint.png differ diff --git a/mods/default/textures/default_footprint.png b/mods/default/textures/default_footprint.png new file mode 100644 index 00000000..1075d749 Binary files /dev/null and b/mods/default/textures/default_footprint.png differ diff --git a/mods/default/textures/default_furnace_bottom.png b/mods/default/textures/default_furnace_bottom.png old mode 100644 new mode 100755 index e8191f7b..57fd4baa Binary files a/mods/default/textures/default_furnace_bottom.png and b/mods/default/textures/default_furnace_bottom.png differ diff --git a/mods/default/textures/default_furnace_fire_bg.png b/mods/default/textures/default_furnace_fire_bg.png old mode 100644 new mode 100755 index 091679ba..126204a3 Binary files a/mods/default/textures/default_furnace_fire_bg.png and b/mods/default/textures/default_furnace_fire_bg.png differ diff --git a/mods/default/textures/default_furnace_fire_fg.png b/mods/default/textures/default_furnace_fire_fg.png old mode 100644 new mode 100755 index 7a126e32..576f113b Binary files a/mods/default/textures/default_furnace_fire_fg.png and b/mods/default/textures/default_furnace_fire_fg.png differ diff --git a/mods/default/textures/default_furnace_front.png b/mods/default/textures/default_furnace_front.png old mode 100644 new mode 100755 index cbc21c6e..19e93ca2 Binary files a/mods/default/textures/default_furnace_front.png and b/mods/default/textures/default_furnace_front.png differ diff --git a/mods/default/textures/default_furnace_front_active.png b/mods/default/textures/default_furnace_front_active.png old mode 100644 new mode 100755 index caf495fc..3c6f0fad Binary files a/mods/default/textures/default_furnace_front_active.png and b/mods/default/textures/default_furnace_front_active.png differ diff --git a/mods/default/textures/default_furnace_side.png b/mods/default/textures/default_furnace_side.png old mode 100644 new mode 100755 index e8191f7b..5b9c3a07 Binary files a/mods/default/textures/default_furnace_side.png and b/mods/default/textures/default_furnace_side.png differ diff --git a/mods/default/textures/default_furnace_top.png b/mods/default/textures/default_furnace_top.png old mode 100644 new mode 100755 index e8191f7b..57fd4baa Binary files a/mods/default/textures/default_furnace_top.png and b/mods/default/textures/default_furnace_top.png differ diff --git a/mods/default/textures/default_glass.png b/mods/default/textures/default_glass.png old mode 100644 new mode 100755 diff --git a/mods/default/textures/default_glass_detail.png b/mods/default/textures/default_glass_detail.png new file mode 100755 index 00000000..261fb0b4 Binary files /dev/null and b/mods/default/textures/default_glass_detail.png differ diff --git a/mods/default/textures/default_glass_frame.png b/mods/default/textures/default_glass_frame.png new file mode 100755 index 00000000..c8783eb4 Binary files /dev/null and b/mods/default/textures/default_glass_frame.png differ diff --git a/mods/default/textures/default_gold_block.png b/mods/default/textures/default_gold_block.png index d36b0a56..cde790d6 100644 Binary files a/mods/default/textures/default_gold_block.png and b/mods/default/textures/default_gold_block.png differ diff --git a/mods/default/textures/default_gold_ingot.png b/mods/default/textures/default_gold_ingot.png old mode 100644 new mode 100755 index b39efa0d..5b08dd19 Binary files a/mods/default/textures/default_gold_ingot.png and b/mods/default/textures/default_gold_ingot.png differ diff --git a/mods/default/textures/default_gold_lump.png b/mods/default/textures/default_gold_lump.png old mode 100644 new mode 100755 index 5c5afefb..d5a1be79 Binary files a/mods/default/textures/default_gold_lump.png and b/mods/default/textures/default_gold_lump.png differ diff --git a/mods/default/textures/default_grass.png b/mods/default/textures/default_grass.png index 1a88a54f..acbdcc25 100644 Binary files a/mods/default/textures/default_grass.png and b/mods/default/textures/default_grass.png differ diff --git a/mods/default/textures/default_grass_1.png b/mods/default/textures/default_grass_1.png old mode 100644 new mode 100755 index 3f6f1379..425b6aac Binary files a/mods/default/textures/default_grass_1.png and b/mods/default/textures/default_grass_1.png differ diff --git a/mods/default/textures/default_grass_2.png b/mods/default/textures/default_grass_2.png old mode 100644 new mode 100755 index 37d9a4f6..4fde9799 Binary files a/mods/default/textures/default_grass_2.png and b/mods/default/textures/default_grass_2.png differ diff --git a/mods/default/textures/default_grass_3.png b/mods/default/textures/default_grass_3.png old mode 100644 new mode 100755 index 89e6ac89..0020122d Binary files a/mods/default/textures/default_grass_3.png and b/mods/default/textures/default_grass_3.png differ diff --git a/mods/default/textures/default_grass_4.png b/mods/default/textures/default_grass_4.png old mode 100644 new mode 100755 index 4ab0718b..d8e0032a Binary files a/mods/default/textures/default_grass_4.png and b/mods/default/textures/default_grass_4.png differ diff --git a/mods/default/textures/default_grass_5.png b/mods/default/textures/default_grass_5.png old mode 100644 new mode 100755 index 9f494d15..188cadc1 Binary files a/mods/default/textures/default_grass_5.png and b/mods/default/textures/default_grass_5.png differ diff --git a/mods/default/textures/default_grass_footsteps.png b/mods/default/textures/default_grass_footsteps.png deleted file mode 100644 index 8349033d..00000000 Binary files a/mods/default/textures/default_grass_footsteps.png and /dev/null differ diff --git a/mods/default/textures/default_grass_side.png b/mods/default/textures/default_grass_side.png index 76570750..e9a4a11c 100644 Binary files a/mods/default/textures/default_grass_side.png and b/mods/default/textures/default_grass_side.png differ diff --git a/mods/default/textures/default_gravel.png b/mods/default/textures/default_gravel.png index 752c47ca..fc8dc696 100644 Binary files a/mods/default/textures/default_gravel.png and b/mods/default/textures/default_gravel.png differ diff --git a/mods/default/textures/default_ice.png b/mods/default/textures/default_ice.png old mode 100644 new mode 100755 index 14e4f563..afeb3234 Binary files a/mods/default/textures/default_ice.png and b/mods/default/textures/default_ice.png differ diff --git a/mods/default/textures/default_iron_lump.png b/mods/default/textures/default_iron_lump.png old mode 100644 new mode 100755 index fcc799c4..07c2c00e Binary files a/mods/default/textures/default_iron_lump.png and b/mods/default/textures/default_iron_lump.png differ diff --git a/mods/default/textures/default_item_smoke.png b/mods/default/textures/default_item_smoke.png new file mode 100644 index 00000000..d62fb3b0 Binary files /dev/null and b/mods/default/textures/default_item_smoke.png differ diff --git a/mods/default/textures/default_junglegrass.png b/mods/default/textures/default_junglegrass.png old mode 100644 new mode 100755 diff --git a/mods/default/textures/default_jungleleaves.png b/mods/default/textures/default_jungleleaves.png old mode 100644 new mode 100755 index 65ad8484..f1b55e88 Binary files a/mods/default/textures/default_jungleleaves.png and b/mods/default/textures/default_jungleleaves.png differ diff --git a/mods/default/textures/default_jungleleaves_simple.png b/mods/default/textures/default_jungleleaves_simple.png new file mode 100644 index 00000000..c63edf24 Binary files /dev/null and b/mods/default/textures/default_jungleleaves_simple.png differ diff --git a/mods/default/textures/default_junglesapling.png b/mods/default/textures/default_junglesapling.png old mode 100644 new mode 100755 index fbb74d5e..7c5e5aa2 Binary files a/mods/default/textures/default_junglesapling.png and b/mods/default/textures/default_junglesapling.png differ diff --git a/mods/default/textures/default_jungletree.png b/mods/default/textures/default_jungletree.png index bf0403e9..712e48a4 100644 Binary files a/mods/default/textures/default_jungletree.png and b/mods/default/textures/default_jungletree.png differ diff --git a/mods/default/textures/default_jungletree_top.png b/mods/default/textures/default_jungletree_top.png index e3a3ccc5..204e5972 100644 Binary files a/mods/default/textures/default_jungletree_top.png and b/mods/default/textures/default_jungletree_top.png differ diff --git a/mods/default/textures/default_junglewood.png b/mods/default/textures/default_junglewood.png old mode 100644 new mode 100755 diff --git a/mods/default/textures/default_ladder.png b/mods/default/textures/default_ladder.png deleted file mode 100644 index 7abfcc6d..00000000 Binary files a/mods/default/textures/default_ladder.png and /dev/null differ diff --git a/mods/default/textures/default_ladder_new.png b/mods/default/textures/default_ladder_new.png new file mode 100755 index 00000000..d4bb3975 Binary files /dev/null and b/mods/default/textures/default_ladder_new.png differ diff --git a/mods/default/textures/default_ladder_obsidian.png b/mods/default/textures/default_ladder_obsidian.png new file mode 100755 index 00000000..a76bc553 Binary files /dev/null and b/mods/default/textures/default_ladder_obsidian.png differ diff --git a/mods/default/textures/default_ladder_obsidian_inv.png b/mods/default/textures/default_ladder_obsidian_inv.png new file mode 100755 index 00000000..d45fbef3 Binary files /dev/null and b/mods/default/textures/default_ladder_obsidian_inv.png differ diff --git a/mods/default/textures/default_ladder_steel.png b/mods/default/textures/default_ladder_steel.png new file mode 100644 index 00000000..9fa21b18 Binary files /dev/null and b/mods/default/textures/default_ladder_steel.png differ diff --git a/mods/default/textures/default_ladder_wood.png b/mods/default/textures/default_ladder_wood.png new file mode 100644 index 00000000..c167fff5 Binary files /dev/null and b/mods/default/textures/default_ladder_wood.png differ diff --git a/mods/default/textures/default_lava.png b/mods/default/textures/default_lava.png index b0d429eb..9fd26e3f 100644 Binary files a/mods/default/textures/default_lava.png and b/mods/default/textures/default_lava.png differ diff --git a/mods/default/textures/default_lava_flowing_animated.png b/mods/default/textures/default_lava_flowing_animated.png old mode 100644 new mode 100755 diff --git a/mods/default/textures/default_lava_source_animated.png b/mods/default/textures/default_lava_source_animated.png old mode 100644 new mode 100755 diff --git a/mods/default/textures/default_leaves.png b/mods/default/textures/default_leaves.png old mode 100644 new mode 100755 index 9566dab1..2012360b Binary files a/mods/default/textures/default_leaves.png and b/mods/default/textures/default_leaves.png differ diff --git a/mods/default/textures/default_leaves_simple.png b/mods/default/textures/default_leaves_simple.png new file mode 100644 index 00000000..ecba5b37 Binary files /dev/null and b/mods/default/textures/default_leaves_simple.png differ diff --git a/mods/default/textures/default_mese_block.png b/mods/default/textures/default_mese_block.png old mode 100644 new mode 100755 diff --git a/mods/default/textures/default_mese_crystal.png b/mods/default/textures/default_mese_crystal.png old mode 100644 new mode 100755 index a1777312..f1d71f16 Binary files a/mods/default/textures/default_mese_crystal.png and b/mods/default/textures/default_mese_crystal.png differ diff --git a/mods/default/textures/default_mese_crystal_fragment.png b/mods/default/textures/default_mese_crystal_fragment.png old mode 100644 new mode 100755 diff --git a/mods/default/textures/default_meselamp.png b/mods/default/textures/default_meselamp.png new file mode 100755 index 00000000..8abec28a Binary files /dev/null and b/mods/default/textures/default_meselamp.png differ diff --git a/mods/default/textures/default_meze_block.png b/mods/default/textures/default_meze_block.png new file mode 100755 index 00000000..f0ac3dca Binary files /dev/null and b/mods/default/textures/default_meze_block.png differ diff --git a/mods/default/textures/default_mineral_coal.png b/mods/default/textures/default_mineral_coal.png old mode 100644 new mode 100755 diff --git a/mods/default/textures/default_mineral_copper.png b/mods/default/textures/default_mineral_copper.png old mode 100644 new mode 100755 diff --git a/mods/default/textures/default_mineral_diamond.png b/mods/default/textures/default_mineral_diamond.png old mode 100644 new mode 100755 diff --git a/mods/default/textures/default_mineral_gold.png b/mods/default/textures/default_mineral_gold.png old mode 100644 new mode 100755 diff --git a/mods/default/textures/default_mineral_iron.png b/mods/default/textures/default_mineral_iron.png old mode 100644 new mode 100755 diff --git a/mods/default/textures/default_mineral_mese.png b/mods/default/textures/default_mineral_mese.png index b14488e4..fd8c8e09 100644 Binary files a/mods/default/textures/default_mineral_mese.png and b/mods/default/textures/default_mineral_mese.png differ diff --git a/mods/default/textures/default_mineral_mithril.png b/mods/default/textures/default_mineral_mithril.png new file mode 100755 index 00000000..9d4c84e8 Binary files /dev/null and b/mods/default/textures/default_mineral_mithril.png differ diff --git a/mods/default/textures/default_mineral_silver.png b/mods/default/textures/default_mineral_silver.png new file mode 100755 index 00000000..0259d627 Binary files /dev/null and b/mods/default/textures/default_mineral_silver.png differ diff --git a/mods/default/textures/default_mineral_tin.png b/mods/default/textures/default_mineral_tin.png new file mode 100755 index 00000000..d73add2a Binary files /dev/null and b/mods/default/textures/default_mineral_tin.png differ diff --git a/mods/default/textures/default_mithril_block.png b/mods/default/textures/default_mithril_block.png new file mode 100755 index 00000000..1b3398f6 Binary files /dev/null and b/mods/default/textures/default_mithril_block.png differ diff --git a/mods/default/textures/default_mithril_ingot.png b/mods/default/textures/default_mithril_ingot.png new file mode 100755 index 00000000..bf1db503 Binary files /dev/null and b/mods/default/textures/default_mithril_ingot.png differ diff --git a/mods/default/textures/default_mithril_lump.png b/mods/default/textures/default_mithril_lump.png new file mode 100755 index 00000000..2dd6188d Binary files /dev/null and b/mods/default/textures/default_mithril_lump.png differ diff --git a/mods/default/textures/default_mossycobble.png b/mods/default/textures/default_mossycobble.png old mode 100644 new mode 100755 index 7908a1bf..7e59e398 Binary files a/mods/default/textures/default_mossycobble.png and b/mods/default/textures/default_mossycobble.png differ diff --git a/mods/default/textures/default_nc_back.png b/mods/default/textures/default_nc_back.png old mode 100644 new mode 100755 diff --git a/mods/default/textures/default_nc_front.png b/mods/default/textures/default_nc_front.png old mode 100644 new mode 100755 diff --git a/mods/default/textures/default_nc_rb.png b/mods/default/textures/default_nc_rb.png old mode 100644 new mode 100755 diff --git a/mods/default/textures/default_nc_side.png b/mods/default/textures/default_nc_side.png old mode 100644 new mode 100755 diff --git a/mods/default/textures/default_obsidian.png b/mods/default/textures/default_obsidian.png old mode 100644 new mode 100755 diff --git a/mods/default/textures/default_obsidian_block.png b/mods/default/textures/default_obsidian_block.png new file mode 100644 index 00000000..262cd37e Binary files /dev/null and b/mods/default/textures/default_obsidian_block.png differ diff --git a/mods/default/textures/default_obsidian_brick.png b/mods/default/textures/default_obsidian_brick.png new file mode 100755 index 00000000..8a5eb6fa Binary files /dev/null and b/mods/default/textures/default_obsidian_brick.png differ diff --git a/mods/default/textures/default_obsidian_glass.png b/mods/default/textures/default_obsidian_glass.png old mode 100644 new mode 100755 diff --git a/mods/default/textures/default_obsidian_glass_detail.png b/mods/default/textures/default_obsidian_glass_detail.png new file mode 100755 index 00000000..3bfa63c2 Binary files /dev/null and b/mods/default/textures/default_obsidian_glass_detail.png differ diff --git a/mods/doors/textures/door_obsidian_glass_a.png b/mods/default/textures/default_obsidian_glass_frame.png old mode 100644 new mode 100755 similarity index 100% rename from mods/doors/textures/door_obsidian_glass_a.png rename to mods/default/textures/default_obsidian_glass_frame.png diff --git a/mods/default/textures/default_obsidian_shard.png b/mods/default/textures/default_obsidian_shard.png old mode 100644 new mode 100755 diff --git a/mods/default/textures/default_paper.png b/mods/default/textures/default_paper.png old mode 100644 new mode 100755 index db32a23e..b4cd69fc Binary files a/mods/default/textures/default_paper.png and b/mods/default/textures/default_paper.png differ diff --git a/mods/default/textures/default_papyrus.png b/mods/default/textures/default_papyrus.png old mode 100644 new mode 100755 index 96b23c43..6fe5552f Binary files a/mods/default/textures/default_papyrus.png and b/mods/default/textures/default_papyrus.png differ diff --git a/mods/default/textures/default_pine_needles.png b/mods/default/textures/default_pine_needles.png new file mode 100755 index 00000000..a84e69c1 Binary files /dev/null and b/mods/default/textures/default_pine_needles.png differ diff --git a/mods/default/textures/default_pine_sapling.png b/mods/default/textures/default_pine_sapling.png new file mode 100755 index 00000000..386d60bd Binary files /dev/null and b/mods/default/textures/default_pine_sapling.png differ diff --git a/mods/default/textures/default_pine_tree.png b/mods/default/textures/default_pine_tree.png new file mode 100755 index 00000000..5a2a8b21 Binary files /dev/null and b/mods/default/textures/default_pine_tree.png differ diff --git a/mods/default/textures/default_pine_tree_top.png b/mods/default/textures/default_pine_tree_top.png new file mode 100644 index 00000000..2ed696af Binary files /dev/null and b/mods/default/textures/default_pine_tree_top.png differ diff --git a/mods/default/textures/default_pine_wood.png b/mods/default/textures/default_pine_wood.png new file mode 100644 index 00000000..1285fd05 Binary files /dev/null and b/mods/default/textures/default_pine_wood.png differ diff --git a/mods/default/textures/default_rail.png b/mods/default/textures/default_rail.png old mode 100644 new mode 100755 index 061949e8..26fed02e Binary files a/mods/default/textures/default_rail.png and b/mods/default/textures/default_rail.png differ diff --git a/mods/default/textures/default_rail_crossing.png b/mods/default/textures/default_rail_crossing.png index 3774beb8..054a6d38 100644 Binary files a/mods/default/textures/default_rail_crossing.png and b/mods/default/textures/default_rail_crossing.png differ diff --git a/mods/default/textures/default_rail_curved.png b/mods/default/textures/default_rail_curved.png old mode 100644 new mode 100755 index b721289a..9084ac24 Binary files a/mods/default/textures/default_rail_curved.png and b/mods/default/textures/default_rail_curved.png differ diff --git a/mods/default/textures/default_rail_t_junction.png b/mods/default/textures/default_rail_t_junction.png old mode 100644 new mode 100755 index d6922416..8479cb11 Binary files a/mods/default/textures/default_rail_t_junction.png and b/mods/default/textures/default_rail_t_junction.png differ diff --git a/mods/default/textures/default_river_water.png b/mods/default/textures/default_river_water.png new file mode 100755 index 00000000..f4318607 Binary files /dev/null and b/mods/default/textures/default_river_water.png differ diff --git a/mods/default/textures/default_river_water_flowing_animated.png b/mods/default/textures/default_river_water_flowing_animated.png new file mode 100755 index 00000000..b6b706a0 Binary files /dev/null and b/mods/default/textures/default_river_water_flowing_animated.png differ diff --git a/mods/default/textures/default_river_water_source_animated.png b/mods/default/textures/default_river_water_source_animated.png new file mode 100755 index 00000000..f5d2f741 Binary files /dev/null and b/mods/default/textures/default_river_water_source_animated.png differ diff --git a/mods/default/textures/default_sand.png b/mods/default/textures/default_sand.png old mode 100644 new mode 100755 diff --git a/mods/default/textures/default_sand_flowing_animated.png b/mods/default/textures/default_sand_flowing_animated.png new file mode 100755 index 00000000..55d2891a Binary files /dev/null and b/mods/default/textures/default_sand_flowing_animated.png differ diff --git a/mods/default/textures/default_sand_normal.png b/mods/default/textures/default_sand_normal.png new file mode 100644 index 00000000..27017841 Binary files /dev/null and b/mods/default/textures/default_sand_normal.png differ diff --git a/mods/default/textures/default_sand_source_animated.png b/mods/default/textures/default_sand_source_animated.png new file mode 100755 index 00000000..bcb7a0e9 Binary files /dev/null and b/mods/default/textures/default_sand_source_animated.png differ diff --git a/mods/default/textures/default_sandstone.png b/mods/default/textures/default_sandstone.png old mode 100644 new mode 100755 diff --git a/mods/default/textures/default_sandstone_block.png b/mods/default/textures/default_sandstone_block.png new file mode 100644 index 00000000..b97c8780 Binary files /dev/null and b/mods/default/textures/default_sandstone_block.png differ diff --git a/mods/default/textures/default_sandstone_brick.png b/mods/default/textures/default_sandstone_brick.png index 82a1e6e8..8bd7db1a 100644 Binary files a/mods/default/textures/default_sandstone_brick.png and b/mods/default/textures/default_sandstone_brick.png differ diff --git a/mods/default/textures/default_sapling.png b/mods/default/textures/default_sapling.png old mode 100644 new mode 100755 diff --git a/mods/default/textures/default_scorched_stuff.png b/mods/default/textures/default_scorched_stuff.png new file mode 100755 index 00000000..2a667ecb Binary files /dev/null and b/mods/default/textures/default_scorched_stuff.png differ diff --git a/mods/default/textures/default_sign.png b/mods/default/textures/default_sign.png new file mode 100755 index 00000000..3e77b44c Binary files /dev/null and b/mods/default/textures/default_sign.png differ diff --git a/mods/default/textures/default_sign_new.png b/mods/default/textures/default_sign_new.png new file mode 100755 index 00000000..c0654e4f Binary files /dev/null and b/mods/default/textures/default_sign_new.png differ diff --git a/mods/default/textures/default_sign_new_inv.png b/mods/default/textures/default_sign_new_inv.png new file mode 100755 index 00000000..76b95fd0 Binary files /dev/null and b/mods/default/textures/default_sign_new_inv.png differ diff --git a/mods/default/textures/default_sign_steel.png b/mods/default/textures/default_sign_steel.png new file mode 100644 index 00000000..f4450f06 Binary files /dev/null and b/mods/default/textures/default_sign_steel.png differ diff --git a/mods/default/textures/default_sign_wall.png b/mods/default/textures/default_sign_wall.png old mode 100644 new mode 100755 index e36361e1..11120416 Binary files a/mods/default/textures/default_sign_wall.png and b/mods/default/textures/default_sign_wall.png differ diff --git a/mods/default/textures/default_sign_wall_steel.png b/mods/default/textures/default_sign_wall_steel.png new file mode 100644 index 00000000..344d8dba Binary files /dev/null and b/mods/default/textures/default_sign_wall_steel.png differ diff --git a/mods/default/textures/default_sign_wall_wood.png b/mods/default/textures/default_sign_wall_wood.png new file mode 100644 index 00000000..4adcbbcb Binary files /dev/null and b/mods/default/textures/default_sign_wall_wood.png differ diff --git a/mods/default/textures/default_sign_wood.png b/mods/default/textures/default_sign_wood.png new file mode 100644 index 00000000..5f892a57 Binary files /dev/null and b/mods/default/textures/default_sign_wood.png differ diff --git a/mods/default/textures/default_silver_block.png b/mods/default/textures/default_silver_block.png new file mode 100755 index 00000000..789cc5a0 Binary files /dev/null and b/mods/default/textures/default_silver_block.png differ diff --git a/mods/default/textures/default_silver_ingot.png b/mods/default/textures/default_silver_ingot.png new file mode 100755 index 00000000..1357a714 Binary files /dev/null and b/mods/default/textures/default_silver_ingot.png differ diff --git a/mods/default/textures/default_silver_lump.png b/mods/default/textures/default_silver_lump.png new file mode 100755 index 00000000..b141566a Binary files /dev/null and b/mods/default/textures/default_silver_lump.png differ diff --git a/mods/default/textures/default_silver_sand.png b/mods/default/textures/default_silver_sand.png new file mode 100644 index 00000000..d381e883 Binary files /dev/null and b/mods/default/textures/default_silver_sand.png differ diff --git a/mods/default/textures/default_snow.png b/mods/default/textures/default_snow.png old mode 100644 new mode 100755 diff --git a/mods/default/textures/default_snow_side.png b/mods/default/textures/default_snow_side.png old mode 100644 new mode 100755 diff --git a/mods/default/textures/default_snowball.png b/mods/default/textures/default_snowball.png old mode 100644 new mode 100755 index 2cff65a2..c85e2051 Binary files a/mods/default/textures/default_snowball.png and b/mods/default/textures/default_snowball.png differ diff --git a/mods/default/textures/default_steel_block.png b/mods/default/textures/default_steel_block.png index b756e44f..5d2c5676 100644 Binary files a/mods/default/textures/default_steel_block.png and b/mods/default/textures/default_steel_block.png differ diff --git a/mods/default/textures/default_steel_ingot.png b/mods/default/textures/default_steel_ingot.png index 262d9326..719c56c5 100644 Binary files a/mods/default/textures/default_steel_ingot.png and b/mods/default/textures/default_steel_ingot.png differ diff --git a/mods/default/textures/default_stick.png b/mods/default/textures/default_stick.png old mode 100644 new mode 100755 diff --git a/mods/default/textures/default_stone.png b/mods/default/textures/default_stone.png old mode 100644 new mode 100755 diff --git a/mods/default/textures/default_stone_block.png b/mods/default/textures/default_stone_block.png new file mode 100644 index 00000000..3b771e72 Binary files /dev/null and b/mods/default/textures/default_stone_block.png differ diff --git a/mods/default/textures/default_stone_brick.png b/mods/default/textures/default_stone_brick.png old mode 100644 new mode 100755 diff --git a/mods/default/textures/default_tin_block.png b/mods/default/textures/default_tin_block.png new file mode 100755 index 00000000..e746a1e3 Binary files /dev/null and b/mods/default/textures/default_tin_block.png differ diff --git a/mods/default/textures/default_tin_ingot.png b/mods/default/textures/default_tin_ingot.png new file mode 100755 index 00000000..6f4327bc Binary files /dev/null and b/mods/default/textures/default_tin_ingot.png differ diff --git a/mods/default/textures/default_tin_lump.png b/mods/default/textures/default_tin_lump.png new file mode 100755 index 00000000..d0edba35 Binary files /dev/null and b/mods/default/textures/default_tin_lump.png differ diff --git a/mods/default/textures/default_tnt_bottom.png b/mods/default/textures/default_tnt_bottom.png old mode 100644 new mode 100755 diff --git a/mods/default/textures/default_tnt_side.png b/mods/default/textures/default_tnt_side.png old mode 100644 new mode 100755 diff --git a/mods/default/textures/default_tnt_top.png b/mods/default/textures/default_tnt_top.png old mode 100644 new mode 100755 diff --git a/mods/default/textures/default_tool_bronzeaxe.png b/mods/default/textures/default_tool_bronzeaxe.png old mode 100644 new mode 100755 index e35a81e2..627a9ef4 Binary files a/mods/default/textures/default_tool_bronzeaxe.png and b/mods/default/textures/default_tool_bronzeaxe.png differ diff --git a/mods/default/textures/default_tool_bronzepick.png b/mods/default/textures/default_tool_bronzepick.png old mode 100644 new mode 100755 index 18b18c92..8f26d0b5 Binary files a/mods/default/textures/default_tool_bronzepick.png and b/mods/default/textures/default_tool_bronzepick.png differ diff --git a/mods/default/textures/default_tool_bronzeshovel.png b/mods/default/textures/default_tool_bronzeshovel.png old mode 100644 new mode 100755 index e21a47ef..d90b0aea Binary files a/mods/default/textures/default_tool_bronzeshovel.png and b/mods/default/textures/default_tool_bronzeshovel.png differ diff --git a/mods/default/textures/default_tool_bronzesword.png b/mods/default/textures/default_tool_bronzesword.png index 597bbe66..473690b3 100644 Binary files a/mods/default/textures/default_tool_bronzesword.png and b/mods/default/textures/default_tool_bronzesword.png differ diff --git a/mods/default/textures/default_tool_diamondaxe.png b/mods/default/textures/default_tool_diamondaxe.png index 48c1c8b7..0a7e4b0b 100644 Binary files a/mods/default/textures/default_tool_diamondaxe.png and b/mods/default/textures/default_tool_diamondaxe.png differ diff --git a/mods/default/textures/default_tool_diamondpick.png b/mods/default/textures/default_tool_diamondpick.png index 10cdd90c..ed7ed781 100644 Binary files a/mods/default/textures/default_tool_diamondpick.png and b/mods/default/textures/default_tool_diamondpick.png differ diff --git a/mods/default/textures/default_tool_diamondshovel.png b/mods/default/textures/default_tool_diamondshovel.png index 3998022f..18c1544f 100644 Binary files a/mods/default/textures/default_tool_diamondshovel.png and b/mods/default/textures/default_tool_diamondshovel.png differ diff --git a/mods/default/textures/default_tool_diamondsword.png b/mods/default/textures/default_tool_diamondsword.png index a02acb6a..4caada25 100644 Binary files a/mods/default/textures/default_tool_diamondsword.png and b/mods/default/textures/default_tool_diamondsword.png differ diff --git a/mods/default/textures/default_tool_dungeon_master_s_blood_sword.png b/mods/default/textures/default_tool_dungeon_master_s_blood_sword.png new file mode 100755 index 00000000..85e22869 Binary files /dev/null and b/mods/default/textures/default_tool_dungeon_master_s_blood_sword.png differ diff --git a/mods/default/textures/default_tool_goldaxe.png b/mods/default/textures/default_tool_goldaxe.png new file mode 100755 index 00000000..970d118c Binary files /dev/null and b/mods/default/textures/default_tool_goldaxe.png differ diff --git a/mods/default/textures/default_tool_goldpick.png b/mods/default/textures/default_tool_goldpick.png new file mode 100755 index 00000000..456a3373 Binary files /dev/null and b/mods/default/textures/default_tool_goldpick.png differ diff --git a/mods/default/textures/default_tool_goldshovel.png b/mods/default/textures/default_tool_goldshovel.png new file mode 100755 index 00000000..b93501f0 Binary files /dev/null and b/mods/default/textures/default_tool_goldshovel.png differ diff --git a/mods/default/textures/default_tool_goldsword.png b/mods/default/textures/default_tool_goldsword.png new file mode 100644 index 00000000..d90426bf Binary files /dev/null and b/mods/default/textures/default_tool_goldsword.png differ diff --git a/mods/default/textures/default_tool_meseaxe.png b/mods/default/textures/default_tool_meseaxe.png old mode 100644 new mode 100755 index de972242..ada782b1 Binary files a/mods/default/textures/default_tool_meseaxe.png and b/mods/default/textures/default_tool_meseaxe.png differ diff --git a/mods/default/textures/default_tool_mesepick.png b/mods/default/textures/default_tool_mesepick.png old mode 100644 new mode 100755 index 17451cb2..8eafc4ff Binary files a/mods/default/textures/default_tool_mesepick.png and b/mods/default/textures/default_tool_mesepick.png differ diff --git a/mods/default/textures/default_tool_meseshovel.png b/mods/default/textures/default_tool_meseshovel.png old mode 100644 new mode 100755 index dc58644c..c7aa4ea6 Binary files a/mods/default/textures/default_tool_meseshovel.png and b/mods/default/textures/default_tool_meseshovel.png differ diff --git a/mods/default/textures/default_tool_mesesword.png b/mods/default/textures/default_tool_mesesword.png old mode 100644 new mode 100755 index 0cba3ed9..7c81909e Binary files a/mods/default/textures/default_tool_mesesword.png and b/mods/default/textures/default_tool_mesesword.png differ diff --git a/mods/default/textures/default_tool_mithrilaxe.png b/mods/default/textures/default_tool_mithrilaxe.png new file mode 100755 index 00000000..097b2d23 Binary files /dev/null and b/mods/default/textures/default_tool_mithrilaxe.png differ diff --git a/mods/default/textures/default_tool_mithrilpick.png b/mods/default/textures/default_tool_mithrilpick.png new file mode 100755 index 00000000..66d7bffc Binary files /dev/null and b/mods/default/textures/default_tool_mithrilpick.png differ diff --git a/mods/default/textures/default_tool_mithrilshovel.png b/mods/default/textures/default_tool_mithrilshovel.png new file mode 100755 index 00000000..4f2fcb99 Binary files /dev/null and b/mods/default/textures/default_tool_mithrilshovel.png differ diff --git a/mods/default/textures/default_tool_mithrilsword.png b/mods/default/textures/default_tool_mithrilsword.png new file mode 100644 index 00000000..0c03d7bb Binary files /dev/null and b/mods/default/textures/default_tool_mithrilsword.png differ diff --git a/mods/default/textures/default_tool_nyanaxe.png b/mods/default/textures/default_tool_nyanaxe.png new file mode 100755 index 00000000..9d756b52 Binary files /dev/null and b/mods/default/textures/default_tool_nyanaxe.png differ diff --git a/mods/default/textures/default_tool_nyanpick.png b/mods/default/textures/default_tool_nyanpick.png new file mode 100755 index 00000000..d100daca Binary files /dev/null and b/mods/default/textures/default_tool_nyanpick.png differ diff --git a/mods/default/textures/default_tool_nyanshovel.png b/mods/default/textures/default_tool_nyanshovel.png new file mode 100755 index 00000000..a2e26a63 Binary files /dev/null and b/mods/default/textures/default_tool_nyanshovel.png differ diff --git a/mods/default/textures/default_tool_nyansword.png b/mods/default/textures/default_tool_nyansword.png new file mode 100755 index 00000000..d4090ebe Binary files /dev/null and b/mods/default/textures/default_tool_nyansword.png differ diff --git a/mods/default/textures/default_tool_silveraxe.png b/mods/default/textures/default_tool_silveraxe.png new file mode 100755 index 00000000..eceecb59 Binary files /dev/null and b/mods/default/textures/default_tool_silveraxe.png differ diff --git a/mods/default/textures/default_tool_silverpick.png b/mods/default/textures/default_tool_silverpick.png new file mode 100755 index 00000000..283bf797 Binary files /dev/null and b/mods/default/textures/default_tool_silverpick.png differ diff --git a/mods/default/textures/default_tool_silvershovel.png b/mods/default/textures/default_tool_silvershovel.png new file mode 100755 index 00000000..447feebf Binary files /dev/null and b/mods/default/textures/default_tool_silvershovel.png differ diff --git a/mods/default/textures/default_tool_silversword.png b/mods/default/textures/default_tool_silversword.png new file mode 100755 index 00000000..64dfb25a Binary files /dev/null and b/mods/default/textures/default_tool_silversword.png differ diff --git a/mods/default/textures/default_tool_steelaxe.png b/mods/default/textures/default_tool_steelaxe.png old mode 100644 new mode 100755 index 3964a754..36152ffa Binary files a/mods/default/textures/default_tool_steelaxe.png and b/mods/default/textures/default_tool_steelaxe.png differ diff --git a/mods/default/textures/default_tool_steelpick.png b/mods/default/textures/default_tool_steelpick.png old mode 100644 new mode 100755 index 9df944ff..5f7db368 Binary files a/mods/default/textures/default_tool_steelpick.png and b/mods/default/textures/default_tool_steelpick.png differ diff --git a/mods/default/textures/default_tool_steelshovel.png b/mods/default/textures/default_tool_steelshovel.png old mode 100644 new mode 100755 index 05bc02bc..b1302f79 Binary files a/mods/default/textures/default_tool_steelshovel.png and b/mods/default/textures/default_tool_steelshovel.png differ diff --git a/mods/default/textures/default_tool_steelsword.png b/mods/default/textures/default_tool_steelsword.png index bc1e642c..27fc189e 100644 Binary files a/mods/default/textures/default_tool_steelsword.png and b/mods/default/textures/default_tool_steelsword.png differ diff --git a/mods/default/textures/default_tool_stoneaxe.png b/mods/default/textures/default_tool_stoneaxe.png old mode 100644 new mode 100755 index 9a18990b..db0bc9ce Binary files a/mods/default/textures/default_tool_stoneaxe.png and b/mods/default/textures/default_tool_stoneaxe.png differ diff --git a/mods/default/textures/default_tool_stonepick.png b/mods/default/textures/default_tool_stonepick.png old mode 100644 new mode 100755 index 0518ca7d..df7ad0ea Binary files a/mods/default/textures/default_tool_stonepick.png and b/mods/default/textures/default_tool_stonepick.png differ diff --git a/mods/default/textures/default_tool_stoneshovel.png b/mods/default/textures/default_tool_stoneshovel.png old mode 100644 new mode 100755 index fa29e85c..84911ff3 Binary files a/mods/default/textures/default_tool_stoneshovel.png and b/mods/default/textures/default_tool_stoneshovel.png differ diff --git a/mods/default/textures/default_tool_stonesword.png b/mods/default/textures/default_tool_stonesword.png index e8814ab2..c1f119f0 100644 Binary files a/mods/default/textures/default_tool_stonesword.png and b/mods/default/textures/default_tool_stonesword.png differ diff --git a/mods/default/textures/default_tool_woodaxe.png b/mods/default/textures/default_tool_woodaxe.png old mode 100644 new mode 100755 index 0d683adf..8ac4c56e Binary files a/mods/default/textures/default_tool_woodaxe.png and b/mods/default/textures/default_tool_woodaxe.png differ diff --git a/mods/default/textures/default_tool_woodpick.png b/mods/default/textures/default_tool_woodpick.png old mode 100644 new mode 100755 index 127a76cb..57d471c3 Binary files a/mods/default/textures/default_tool_woodpick.png and b/mods/default/textures/default_tool_woodpick.png differ diff --git a/mods/default/textures/default_tool_woodshovel.png b/mods/default/textures/default_tool_woodshovel.png old mode 100644 new mode 100755 index 5652580d..5ac0576b Binary files a/mods/default/textures/default_tool_woodshovel.png and b/mods/default/textures/default_tool_woodshovel.png differ diff --git a/mods/default/textures/default_tool_woodsword.png b/mods/default/textures/default_tool_woodsword.png index 792a0464..acc1f87a 100644 Binary files a/mods/default/textures/default_tool_woodsword.png and b/mods/default/textures/default_tool_woodsword.png differ diff --git a/mods/default/textures/default_torch.png b/mods/default/textures/default_torch.png old mode 100644 new mode 100755 diff --git a/mods/default/textures/default_torch_animated.png b/mods/default/textures/default_torch_animated.png old mode 100644 new mode 100755 diff --git a/mods/default/textures/default_torch_new_bottom.png b/mods/default/textures/default_torch_new_bottom.png new file mode 100755 index 00000000..8c2b797e Binary files /dev/null and b/mods/default/textures/default_torch_new_bottom.png differ diff --git a/mods/default/textures/default_torch_new_inv.png b/mods/default/textures/default_torch_new_inv.png new file mode 100755 index 00000000..61e8c108 Binary files /dev/null and b/mods/default/textures/default_torch_new_inv.png differ diff --git a/mods/default/textures/default_torch_new_side.png b/mods/default/textures/default_torch_new_side.png new file mode 100755 index 00000000..71b32df5 Binary files /dev/null and b/mods/default/textures/default_torch_new_side.png differ diff --git a/mods/default/textures/default_torch_new_top.png b/mods/default/textures/default_torch_new_top.png new file mode 100755 index 00000000..af41037f Binary files /dev/null and b/mods/default/textures/default_torch_new_top.png differ diff --git a/mods/default/textures/default_torch_on_ceiling.png b/mods/default/textures/default_torch_on_ceiling.png old mode 100644 new mode 100755 diff --git a/mods/default/textures/default_torch_on_ceiling_animated.png b/mods/default/textures/default_torch_on_ceiling_animated.png old mode 100644 new mode 100755 diff --git a/mods/default/textures/default_torch_on_floor.png b/mods/default/textures/default_torch_on_floor.png old mode 100644 new mode 100755 diff --git a/mods/default/textures/default_torch_on_floor_animated.png b/mods/default/textures/default_torch_on_floor_animated.png old mode 100644 new mode 100755 diff --git a/mods/default/textures/default_tree.png b/mods/default/textures/default_tree.png index 5fa4b65d..3f7ee15a 100644 Binary files a/mods/default/textures/default_tree.png and b/mods/default/textures/default_tree.png differ diff --git a/mods/default/textures/default_tree_top.png b/mods/default/textures/default_tree_top.png index e672d136..96b572ff 100644 Binary files a/mods/default/textures/default_tree_top.png and b/mods/default/textures/default_tree_top.png differ diff --git a/mods/default/textures/default_water.png b/mods/default/textures/default_water.png old mode 100644 new mode 100755 index 9b6ff356..e94615cc Binary files a/mods/default/textures/default_water.png and b/mods/default/textures/default_water.png differ diff --git a/mods/default/textures/default_water_flowing_animated.png b/mods/default/textures/default_water_flowing_animated.png old mode 100644 new mode 100755 index 9cb138c2..919b92f8 Binary files a/mods/default/textures/default_water_flowing_animated.png and b/mods/default/textures/default_water_flowing_animated.png differ diff --git a/mods/default/textures/default_water_source_animated.png b/mods/default/textures/default_water_source_animated.png old mode 100644 new mode 100755 index 3b9b2d9f..d4871639 Binary files a/mods/default/textures/default_water_source_animated.png and b/mods/default/textures/default_water_source_animated.png differ diff --git a/mods/default/textures/default_wood.png b/mods/default/textures/default_wood.png old mode 100644 new mode 100755 diff --git a/mods/default/textures/default_wood_cherry_planks.png b/mods/default/textures/default_wood_cherry_planks.png new file mode 100755 index 00000000..c6c0050a Binary files /dev/null and b/mods/default/textures/default_wood_cherry_planks.png differ diff --git a/mods/default/textures/gui_formbg.png b/mods/default/textures/gui_formbg.png index d38040e3..45017413 100644 Binary files a/mods/default/textures/gui_formbg.png and b/mods/default/textures/gui_formbg.png differ diff --git a/mods/default/textures/gui_furnace_arrow_bg.png b/mods/default/textures/gui_furnace_arrow_bg.png index 7fbb908c..d6f93759 100644 Binary files a/mods/default/textures/gui_furnace_arrow_bg.png and b/mods/default/textures/gui_furnace_arrow_bg.png differ diff --git a/mods/default/textures/gui_furnace_arrow_fg.png b/mods/default/textures/gui_furnace_arrow_fg.png index 8d3c396e..e5181e05 100644 Binary files a/mods/default/textures/gui_furnace_arrow_fg.png and b/mods/default/textures/gui_furnace_arrow_fg.png differ diff --git a/mods/default/textures/gui_hb_bg.png b/mods/default/textures/gui_hb_bg.png old mode 100644 new mode 100755 diff --git a/mods/default/textures/gui_hotbar.png b/mods/default/textures/gui_hotbar.png index a80ab468..f36fa17d 100644 Binary files a/mods/default/textures/gui_hotbar.png and b/mods/default/textures/gui_hotbar.png differ diff --git a/mods/default/textures/gui_hotbar_selected.png b/mods/default/textures/gui_hotbar_selected.png old mode 100644 new mode 100755 diff --git a/mods/default/textures/heart.png b/mods/default/textures/heart.png old mode 100644 new mode 100755 index 941e9731..af8399ae Binary files a/mods/default/textures/heart.png and b/mods/default/textures/heart.png differ diff --git a/mods/default/textures/moon.png b/mods/default/textures/moon.png new file mode 100755 index 00000000..ce5cbb47 Binary files /dev/null and b/mods/default/textures/moon.png differ diff --git a/mods/default/textures/moreores_tool_bronzesword.png b/mods/default/textures/moreores_tool_bronzesword.png new file mode 100644 index 00000000..473690b3 Binary files /dev/null and b/mods/default/textures/moreores_tool_bronzesword.png differ diff --git a/mods/default/textures/moreores_tool_goldsword.png b/mods/default/textures/moreores_tool_goldsword.png new file mode 100644 index 00000000..b6d30905 Binary files /dev/null and b/mods/default/textures/moreores_tool_goldsword.png differ diff --git a/mods/default/textures/moreores_tool_mithrilsword.png b/mods/default/textures/moreores_tool_mithrilsword.png new file mode 100644 index 00000000..0c03d7bb Binary files /dev/null and b/mods/default/textures/moreores_tool_mithrilsword.png differ diff --git a/mods/default/textures/player.png b/mods/default/textures/player.png old mode 100644 new mode 100755 diff --git a/mods/default/textures/player_back.png b/mods/default/textures/player_back.png old mode 100644 new mode 100755 diff --git a/mods/default/textures/smoke_puff.png b/mods/default/textures/smoke_puff.png new file mode 100755 index 00000000..03890e34 Binary files /dev/null and b/mods/default/textures/smoke_puff.png differ diff --git a/mods/default/textures/sun.png b/mods/default/textures/sun.png new file mode 100755 index 00000000..96085efa Binary files /dev/null and b/mods/default/textures/sun.png differ diff --git a/mods/default/textures/treeprop.png b/mods/default/textures/treeprop.png new file mode 100755 index 00000000..8ff3e6a1 Binary files /dev/null and b/mods/default/textures/treeprop.png differ diff --git a/mods/default/textures/unknown_item.png b/mods/default/textures/unknown_item.png new file mode 100755 index 00000000..059cf13a Binary files /dev/null and b/mods/default/textures/unknown_item.png differ diff --git a/mods/default/textures/unknown_node.png b/mods/default/textures/unknown_node.png new file mode 100755 index 00000000..20b6508a Binary files /dev/null and b/mods/default/textures/unknown_node.png differ diff --git a/mods/default/textures/unknown_object.png b/mods/default/textures/unknown_object.png new file mode 100755 index 00000000..bfeab954 Binary files /dev/null and b/mods/default/textures/unknown_object.png differ diff --git a/mods/default/textures/wieldhand.png b/mods/default/textures/wieldhand.png old mode 100644 new mode 100755 diff --git a/mods/default/textures/xfences_space.png b/mods/default/textures/xfences_space.png new file mode 100644 index 00000000..34b25c43 Binary files /dev/null and b/mods/default/textures/xfences_space.png differ diff --git a/mods/default/tools.lua b/mods/default/tools.lua old mode 100644 new mode 100755 index 25cf81b1..901dd6fd --- a/mods/default/tools.lua +++ b/mods/default/tools.lua @@ -6,14 +6,14 @@ minetest.register_item(":", { wield_image = "wieldhand.png", wield_scale = {x=1,y=1,z=2.5}, tool_capabilities = { - full_punch_interval = 0.9, + full_punch_interval = 0.8, 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} + crumbly = {times = {[2] = 2.75, [3] = 0.65}, uses = 0, maxlevel = 1}, + snappy = {times = {[3] = 0.25}, uses = 0, maxlevel = 1}, + oddly_breakable_by_hand = {times = {[1] = 3.50, [2] = 2.00, [3] = 0.65}, uses = 0} }, - damage_groups = {fleshy=1}, + damage_groups = {fleshy = 2}, } }) @@ -28,45 +28,75 @@ minetest.register_tool("default:pick_wood", { full_punch_interval = 1.2, max_drop_level=0, groupcaps={ - cracky = {times={[3]=1.60}, uses=10, maxlevel=1}, + cracky = {times = {[3] = 1.20}, uses = 15, maxlevel = 1}, }, damage_groups = {fleshy=2}, }, + groups = {flammable = 2}, }) minetest.register_tool("default:pick_stone", { description = "Stone Pickaxe", inventory_image = "default_tool_stonepick.png", tool_capabilities = { - full_punch_interval = 1.3, + full_punch_interval = 1.2, max_drop_level=0, groupcaps={ - cracky = {times={[2]=2.0, [3]=1.20}, uses=20, maxlevel=1}, + cracky = {times = {[2] = 1.60, [3] = 1.00}, uses = 20, maxlevel = 1}, + crumbly = {times = {[1] = 2.6, [2] = 1.4, [3] = 0.44}, uses = 20, maxlevel = 1}, }, - damage_groups = {fleshy=3}, + damage_groups = {fleshy = 2}, }, }) 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}, + full_punch_interval = 1.2, + max_drop_level = 1, + groupcaps = { + cracky = {times = {[1] = 4.00, [2] = 1.40, [3] = 0.80}, uses = 25, maxlevel = 2}, + crumbly = {times = {[1] = 2.4, [2] = 1.2, [3] = 0.39}, uses = 20, maxlevel = 1}, }, - damage_groups = {fleshy=4}, + damage_groups = {fleshy = 3}, }, }) 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}, + full_punch_interval = 1.2, + max_drop_level = 1, + groupcaps = { + cracky = {times = {[1] = 4.00, [2] = 1.40, [3] = 0.80}, uses = 30, maxlevel = 2}, + crumbly = {times = {[1] = 2.4, [2] = 1.2, [3] = 0.39}, uses = 30, maxlevel = 1}, }, - damage_groups = {fleshy=4}, + damage_groups = {fleshy = 3}, + }, +}) +minetest.register_tool("default:pick_silver", { + description = "Silver Pickaxe", + inventory_image = "default_tool_silverpick.png", + tool_capabilities = { + full_punch_interval = 0.8, + max_drop_level = 3, + groupcaps = { + cracky = {times = {[1] = 3.0, [2] = 1.20, [3] = 0.70}, uses = 90, maxlevel= 2}, + crumbly = {times = {[1] = 1.75, [2] = 0.80, [3] = 0.65}, uses = 90, maxlevel= 2} + }, + damage_groups = {fleshy = 3}, + }, +}) +minetest.register_tool("default:pick_gold", { + description = "Golden Pickaxe", + inventory_image = "default_tool_goldpick.png", + tool_capabilities = { + full_punch_interval = 1.2, + max_drop_level = 3, + groupcaps = { + cracky = {times = {[1] = 2.80, [2] = 1.15, [3] = 0.65}, uses = 15, maxlevel = 3}, + crumbly = {times = {[1] = 2.0, [2] = 0.9, [3] = 0.36}, uses = 5, maxlevel = 2}, + }, + damage_groups = {fleshy = 4}, }, }) minetest.register_tool("default:pick_mese", { @@ -74,23 +104,51 @@ minetest.register_tool("default:pick_mese", { 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}, + max_drop_level = 3, + groupcaps = { + cracky = {times = {[1] = 2.60, [2] = 1.10, [3] = 0.6}, uses = 20, maxlevel = 3}, + crumbly = {times = {[1] = 1.65, [2] = 0.6, [3] = 0.32}, uses = 20, maxlevel = 3}, }, - damage_groups = {fleshy=5}, + damage_groups = {fleshy = 4}, + }, +}) +minetest.register_tool("default:pick_mithril", { + description = "Mithril Pickaxe", + inventory_image = "default_tool_mithrilpick.png", + tool_capabilities = { + full_punch_interval = 0.5, + max_drop_level = 3, + groupcaps = { + cracky = {times = {[1] = 1.50, [2] = 0.80, [3] = 0.35}, uses = 200, maxlevel= 3}, + crumbly = {times = {[1] = 1.00, [2] = 0.60, [3] = 0.25}, uses = 200, maxlevel= 3} + }, + damage_groups = {fleshy = 5}, + }, +}) +minetest.register_tool("default:pick_nyan", { + description = "Nyan Pickaxe", + inventory_image = "default_tool_nyanpick.png", + tool_capabilities = { + full_punch_interval = 0.9, + max_drop_level = 3, + groupcaps = { + cracky = {times = {[1] = 2.60, [2] = 1.10, [3] = 0.60}, uses = 60, maxlevel = 3}, + crumbly = {times = {[1] = 2.0, [2] = 0.9, [3] = 0.36}, uses = 75, maxlevel = 2}, + }, + damage_groups = {fleshy = 4}, }, }) 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}, + full_punch_interval = 0.8, + max_drop_level = 3, + groupcaps = { + cracky = {times = {[1] = 2.00, [2] = 1.00, [3] = 0.50}, uses = 30, maxlevel = 3}, + crumbly = {times = {[1] = 2.0, [2] = 0.9, [3] = 0.36}, uses = 25, maxlevel = 2}, }, - damage_groups = {fleshy=5}, + damage_groups = {fleshy = 4}, }, }) @@ -104,24 +162,25 @@ minetest.register_tool("default:shovel_wood", { 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}, + max_drop_level = 0, + groupcaps = { + crumbly = {times = {[1] = 3.00, [2] = 0.90, [3] = 0.60}, uses = 15, maxlevel = 1}, }, - damage_groups = {fleshy=2}, + damage_groups = {fleshy = 2}, }, + groups = {flammable = 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}, + full_punch_interval = 1.2, + max_drop_level = 0, + groupcaps = { + crumbly = {times = {[1] = 2.50, [2] = 0.80, [3] = 0.50}, uses = 20, maxlevel = 1}, }, - damage_groups = {fleshy=2}, + damage_groups = {fleshy = 2}, }, }) minetest.register_tool("default:shovel_steel", { @@ -129,12 +188,12 @@ minetest.register_tool("default:shovel_steel", { 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}, + full_punch_interval = 1.2, + max_drop_level = 1, + groupcaps = { + crumbly = {times = {[1] = 2.00, [2] = 0.70, [3] = 0.40}, uses = 25, maxlevel = 2}, }, - damage_groups = {fleshy=3}, + damage_groups = {fleshy = 3}, }, }) minetest.register_tool("default:shovel_bronze", { @@ -142,12 +201,38 @@ minetest.register_tool("default:shovel_bronze", { 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}, + full_punch_interval = 1.2, + max_drop_level = 1, + groupcaps = { + crumbly = {times = {[1] = 2.00, [2] = 0.70, [3] = 0.40}, uses = 30, maxlevel = 2}, }, - damage_groups = {fleshy=3}, + damage_groups = {fleshy = 3}, + }, +}) +minetest.register_tool("default:shovel_silver", { + description = "Silver Shovel", + inventory_image = "default_tool_silvershovel.png", + wield_image = "default_tool_silvershovel.png^[transformR90", + tool_capabilities = { + full_punch_interval = 0.8, + max_drop_level = 1, + groupcaps = { + crumbly = {times = {[1] = 1.50, [2] = 0.60, [3] = 0.35}, uses = 90, maxlevel= 2} + }, + damage_groups = {fleshy = 3}, + }, +}) +minetest.register_tool("default:shovel_gold", { + description = "Golden Shovel", + inventory_image = "default_tool_goldshovel.png", + wield_image = "default_tool_goldshovel.png^[transformR90", + tool_capabilities = { + full_punch_interval = 1.2, + max_drop_level = 1, + groupcaps = { + crumbly = {times = {[1] = 1.40, [2] = 0.60, [3] = 0.35}, uses = 15, maxlevel = 3}, + }, + damage_groups = {fleshy = 4}, }, }) minetest.register_tool("default:shovel_mese", { @@ -155,12 +240,38 @@ minetest.register_tool("default:shovel_mese", { 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}, + full_punch_interval = 0.9, + max_drop_level = 3, + groupcaps = { + crumbly = {times = {[1] = 1.30, [2] = 0.55, [3] = 0.30}, uses = 20, maxlevel = 3}, }, - damage_groups = {fleshy=4}, + damage_groups = {fleshy = 4}, + }, +}) +minetest.register_tool("default:shovel_mithril", { + description = "Mithril Shovel", + inventory_image = "default_tool_mithrilshovel.png", + wield_image = "default_tool_mithrilshovel.png^[transformR90", + tool_capabilities = { + full_punch_interval = 0.5, + max_drop_level = 3, + groupcaps = { + crumbly = {times = {[1] = 0.75, [2] = 0.4, [3] = 0.17}, uses = 200, maxlevel= 3} + }, + damage_groups = {fleshy = 5}, + }, +}) +minetest.register_tool("default:shovel_nyan", { + description = "Nyan Shovel", + inventory_image = "default_tool_nyanshovel.png", + wield_image = "default_tool_nyanshovel.png^[transformR90", + tool_capabilities = { + full_punch_interval = 1.2, + max_drop_level = 1, + groupcaps = { + crumbly = {times = {[1] = 1.30, [2] = 0.55, [3] = 0.30}, uses = 60, maxlevel = 3}, + }, + damage_groups = {fleshy = 4}, }, }) minetest.register_tool("default:shovel_diamond", { @@ -168,12 +279,12 @@ minetest.register_tool("default:shovel_diamond", { 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}, + full_punch_interval = 1.2, + max_drop_level = 1, + groupcaps = { + crumbly = {times = {[1] = 1.00, [2] = 0.50, [3] = 0.25}, uses = 30, maxlevel = 3}, }, - damage_groups = {fleshy=4}, + damage_groups = {fleshy = 4}, }, }) @@ -185,48 +296,79 @@ 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}, + full_punch_interval = 1.2, + max_drop_level = 0, + groupcaps = { + choppy = {times = {[2] = 1.98, [3] = 1.32}, uses = 15, maxlevel = 1}, + snappy = {times = {[3] = 0.2}, uses = 0, maxlevel = 1}, }, - damage_groups = {fleshy=2}, + damage_groups = {fleshy = 2}, }, + groups = {flammable = 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}, + max_drop_level = 0, + groupcaps = { + choppy = {times = {[1] = 5.50, [2] = 1.76, [3] = 1.10}, uses = 20, maxlevel = 1}, + snappy = {times = {[3] = 0.175}, uses = 0, maxlevel = 1}, }, - damage_groups = {fleshy=3}, + damage_groups = {fleshy = 2}, }, }) 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}, + full_punch_interval = 1.2, + max_drop_level = 1, + groupcaps = { + choppy = {times = {[1] = 4.40, [2] = 1.54, [3] = 0.88}, uses = 25, maxlevel = 2}, + snappy = {times = {[3] = 0.15}, uses = 0, maxlevel = 1}, }, - damage_groups = {fleshy=4}, + damage_groups = {fleshy = 3}, }, }) 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}, + full_punch_interval = 1.2, + max_drop_level = 1, + groupcaps = { + choppy = {times = {[1] = 4.40, [2] = 1.54, [3] = 0.88}, uses = 30, maxlevel = 2}, + snappy = {times = {[3] = 0.15}, uses = 0, maxlevel = 1}, }, - damage_groups = {fleshy=4}, + damage_groups = {fleshy = 3}, + }, +}) +minetest.register_tool("default:axe_silver", { + description = "Silver Axe", + inventory_image = "default_tool_silveraxe.png", + tool_capabilities = { + full_punch_interval = 0.8, + max_drop_level = 1, + groupcaps = { + choppy = {times = {[1] = 3.30, [2] = 1.32, [3] = 0.77}, uses = 90, maxlevel= 2}, + fleshy = {times = {[2] = 1.10, [3] = 0.60}, uses = 100, maxlevel= 1} + }, + damage_groups = {fleshy = 3}, + }, +}) +minetest.register_tool("default:axe_gold", { + description = "Golden Axe", + inventory_image = "default_tool_goldaxe.png", + tool_capabilities = { + full_punch_interval = 1.2, + max_drop_level = 1, + groupcaps = { + choppy = {times = {[1] = 3.08, [2] = 1.27, [3] = 0.72}, uses = 15, maxlevel = 3}, + snappy = {times = {[3] = 0.125}, uses = 0, maxlevel = 1}, + }, + damage_groups = {fleshy = 4}, }, }) minetest.register_tool("default:axe_mese", { @@ -234,23 +376,51 @@ minetest.register_tool("default:axe_mese", { 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}, + max_drop_level = 1, + groupcaps = { + choppy = {times = {[1] = 2.86, [2] = 1.21, [3] = 0.66}, uses = 20, maxlevel = 3}, + snappy = {times = {[3] = 0.1}, uses = 0, maxlevel = 1}, }, - damage_groups = {fleshy=6}, + damage_groups = {fleshy = 4}, + }, +}) +minetest.register_tool("default:axe_mithril", { + description = "Mithril Axe", + inventory_image = "default_tool_mithrilaxe.png", + tool_capabilities = { + full_punch_interval = 0.5, + max_drop_level = 1, + groupcaps = { + choppy = {times = {[1] = 1.65, [2] = 0.88, [3] = 0.39}, uses = 200, maxlevel= 3}, + fleshy = {times = {[2] = 0.95, [3] = 0.30}, uses = 200, maxlevel= 1} + }, + damage_groups = {fleshy = 5}, + }, +}) +minetest.register_tool("default:axe_nyan", { + description = "Nyan Axe", + inventory_image = "default_tool_nyanaxe.png", + tool_capabilities = { + full_punch_interval = 1.2, + max_drop_level = 1, + groupcaps = { + choppy = {times = {[1] = 2.86, [2] = 1.21, [3] = 0.66}, uses = 60, maxlevel = 3}, + snappy = {times = {[3] = 0.125}, uses = 0, maxlevel = 1}, + }, + damage_groups = {fleshy = 4}, }, }) 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}, + full_punch_interval = 1.2, + max_drop_level = 1, + groupcaps = { + choppy = {times = {[1] = 2.20, [2] = 1.10, [3] = 0.55}, uses = 30, maxlevel = 3}, + snappy = {times = {[3] = 0.125}, uses = 0, maxlevel = 1}, }, - damage_groups = {fleshy=7}, + damage_groups = {fleshy = 5}, }, }) @@ -262,48 +432,74 @@ 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}, + full_punch_interval = 1.0, + max_drop_level = 0, + groupcaps = { + snappy = {times = {[2] = 1.4, [3] = 0.2}, uses = 20, maxlevel = 1}, }, - damage_groups = {fleshy=2}, + 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}, + full_punch_interval = 1.0, + max_drop_level = 0, + groupcaps = { + snappy = {times = {[2] = 1.2, [3] = 0.175}, uses = 25, maxlevel = 1}, }, - damage_groups = {fleshy=4}, + damage_groups = {fleshy = 3}, } }) 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}, + full_punch_interval = 0.9, + max_drop_level = 1, + groupcaps = { + snappy = {times = {[1] = 2.2, [2] = 1.2, [3] = 0.15}, uses = 30, maxlevel = 2}, }, - damage_groups = {fleshy=6}, + damage_groups = {fleshy = 4}, } }) 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}, + full_punch_interval = 0.9, + max_drop_level = 1, + groupcaps = { + snappy = {times = {[1] = 2.2, [2] = 1.2, [3] = 0.15}, uses = 35, maxlevel = 2}, }, - damage_groups = {fleshy=6}, + damage_groups = {fleshy = 5}, + } +}) +minetest.register_tool("default:sword_silver", { + description = "Silver Sword", + inventory_image = "default_tool_silversword.png", + tool_capabilities = { + full_punch_interval = 0.85, + max_drop_level = 1, + groupcaps = { + fleshy = {times = {[2] = 0.70, [3] = 0.30}, uses = 100, maxlevel= 1}, + snappy = {times = {[2] = 0.70, [3] = 0.30}, uses = 100, maxlevel= 1}, + choppy = {times = {[3] = 0.80}, uses = 40, maxlevel= 0} + }, + damage_groups = {fleshy = 5}, + } +}) +minetest.register_tool("default:sword_gold", { + description = "Golden Sword", + inventory_image = "default_tool_goldsword.png", + tool_capabilities = { + full_punch_interval = 0.8, + max_drop_level = 1, + groupcaps = { + snappy = {times = {[1] = 1.9, [2] = 0.85, [3] = 0.125}, uses = 10, maxlevel = 3}, + }, + damage_groups = {fleshy = 5}, } }) minetest.register_tool("default:sword_mese", { @@ -311,22 +507,60 @@ minetest.register_tool("default:sword_mese", { 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}, + max_drop_level = 1, + groupcaps = { + snappy = {times = {[1] = 1.5, [2] = 0.7, [3] = 0.1}, uses = 20, maxlevel = 3}, }, - damage_groups = {fleshy=7}, + damage_groups = {fleshy = 6}, + } +}) +minetest.register_tool("default:sword_mithril", { + description = "Mithril Sword (Warrior)", + inventory_image = "default_tool_mithrilsword.png", + tool_capabilities = { + full_punch_interval = 0.5, + max_drop_level = 1, + groupcaps = { + fleshy = {times = {[2] = 0.65, [3] = 0.25}, uses = 200, maxlevel= 1}, + snappy = {times = {[2] = 0.70, [3] = 0.25}, uses = 200, maxlevel= 1}, + choppy = {times = {[3] = 0.65}, uses = 200, maxlevel= 0} + }, + damage_groups = {fleshy = 9}, + } +}) +minetest.register_tool("default:sword_nyan", { + description = "Nyan Sword", + inventory_image = "default_tool_nyansword.png", + tool_capabilities = { + full_punch_interval = 0.7, + max_drop_level = 1, + groupcaps = { + snappy = {times = {[1] = 1.9, [2] = 0.85, [3] = 0.125}, uses = 40, maxlevel = 3}, + }, + damage_groups = {fleshy = 6}, } }) 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}, + full_punch_interval = 0.6, + max_drop_level = 1, + groupcaps = { + snappy = {times = {[1] = 1.9, [2] = 0.85, [3] = 0.125}, uses = 50, maxlevel = 3}, }, - damage_groups = {fleshy=8}, + damage_groups = {fleshy = 7}, + } +}) +minetest.register_tool("default:dungeon_master_s_blood_sword", { --Warrior Only + description = "Dungeon Master's Blood Sword (Warrior)", + inventory_image = "default_tool_dungeon_master_s_blood_sword.png", + tool_capabilities = { + full_punch_interval = 0.5, + max_drop_level = 1, + groupcaps = { + snappy = {times = {[1] = 1.9, [2] = 0.85, [3] = 0.125}, uses = 250, maxlevel = 3}, + }, + damage_groups = {fleshy = 10}, } }) diff --git a/mods/default/trees.lua b/mods/default/trees.lua old mode 100644 new mode 100755 index e68c0554..03a12661 --- a/mods/default/trees.lua +++ b/mods/default/trees.lua @@ -1,150 +1,612 @@ -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") +local random = math.random -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 +-- +-- Grow trees from saplings +-- + +-- 'can grow' function + +function default.can_grow(pos) + local node_under = minetest.get_node_or_nil({x = pos.x, y = pos.y - 1, z = pos.z}) + if not node_under then + return false + end + local name_under = node_under.name + local is_soil = minetest.get_item_group(name_under, "soil") + if is_soil == 0 then + return false + end + local light_level = minetest.get_node_light(pos) + if not light_level or light_level < 13 then + return false + end + return true 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 pr = PseudoRandom(seed) - local x, y, z = pos.x, pos.y, pos.z - for xi = -1, 1 do - for zi = -1, 1 do - if pr:next(1, 3) >= 2 then - local vi1 = a:index(x+xi, y, z+zi) - local vi2 = a:index(x+xi, y-1, z+zi) - if a:contains(x+xi, y-1, z+zi) and data[vi2] == c_air then - data[vi2] = c_jungletree - elseif a:contains(x+xi, y, z+zi) and data[vi1] == c_air then - data[vi1] = c_jungletree - end - end - end - end - - local th = pr:next(8, 12) - 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_jungletree - end - end - y = y+th-1 -- (x, y, z) is now last piece of trunk - local leaves_a = VoxelArea:new{MinEdge={x=-3, y=-2, z=-3}, MaxEdge={x=3, y=2, z=3}} - 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, 30 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 - data[vi] = c_jungleleaves - end - end - end - end - end - end +-- 'is snow nearby' function + +local function is_snow_nearby(pos) + return minetest.find_node_near(pos, 1, + {"default:snow", "default:snowblock", "default:dirt_with_snow"}) end + + +-- Sapling ABM + +function default.grow_sapling(pos) + if not default.can_grow(pos) then + -- try a bit later again + minetest.get_node_timer(pos):start(math.random(240, 600)) + return + end + + --local mg_name = minetest.get_mapgen_setting("mg_name") --IMPORTANT new function only in > 0.4.14 stable + local mg_name = minetest.get_mapgen_params().mgname + local node = minetest.get_node(pos) + if node.name == "default:sapling" then + minetest.log("action", "A sapling grows into a tree at ".. + minetest.pos_to_string(pos)) + if mg_name == "v6" then + default.grow_tree(pos, random(1, 4) == 1) + else + default.grow_new_apple_tree(pos) + end + elseif node.name == "default:junglesapling" then + minetest.log("action", "A jungle sapling grows into a tree at ".. + minetest.pos_to_string(pos)) + if mg_name == "v6" then + default.grow_jungle_tree(pos) + else + default.grow_new_jungle_tree(pos) + end + elseif node.name == "default:pine_sapling" then + minetest.log("action", "A pine sapling grows into a tree at ".. + minetest.pos_to_string(pos)) + local snow = is_snow_nearby(pos) + if mg_name == "v6" then + default.grow_pine_tree(pos, snow) + elseif snow then + default.grow_new_snowy_pine_tree(pos) + else + default.grow_new_pine_tree(pos) + end + elseif node.name == "default:acacia_sapling" then + minetest.log("action", "An acacia sapling grows into a tree at ".. + minetest.pos_to_string(pos)) + default.grow_new_acacia_tree(pos) + elseif node.name == "default:aspen_sapling" then + minetest.log("action", "An aspen sapling grows into a tree at ".. + minetest.pos_to_string(pos)) + default.grow_new_aspen_tree(pos) + end +end + +minetest.register_lbm({ + name = "default:convert_saplings_to_node_timer", + nodenames = {"default:sapling", "default:junglesapling", + "default:pine_sapling", "default:acacia_sapling", + "default:aspen_sapling"}, + action = function(pos) + minetest.get_node_timer(pos):start(math.random(1200, 2400)) + end +}) + +-- +-- Tree generation +-- + +-- Apple tree and jungle tree trunk and leaves function + +local function add_trunk_and_leaves(data, a, pos, tree_cid, leaves_cid, + height, size, iters, is_apple_tree) + local x, y, z = pos.x, pos.y, pos.z + local c_air = minetest.get_content_id("air") + local c_ignore = minetest.get_content_id("ignore") + local c_apple = minetest.get_content_id("default:apple") + + -- Trunk + data[a:index(x, y, z)] = tree_cid -- Force-place lowest trunk node to replace sapling + for yy = y + 1, y + height - 1 do + local vi = a:index(x, yy, z) + local node_id = data[vi] + if node_id == c_air or node_id == c_ignore or node_id == leaves_cid then + data[vi] = tree_cid + end + end + + -- Force leaves near the trunk + for z_dist = -1, 1 do + for y_dist = -size, 1 do + local vi = a:index(x - 1, y + height + y_dist, z + z_dist) + for x_dist = -1, 1 do + if data[vi] == c_air or data[vi] == c_ignore then + if is_apple_tree and random(1, 8) == 1 then + data[vi] = c_apple + else + data[vi] = leaves_cid + end + end + vi = vi + 1 + end + end + end + + -- Randomly add leaves in 2x2x2 clusters. + for i = 1, iters do + local clust_x = x + random(-size, size - 1) + local clust_y = y + height + random(-size, 0) + local clust_z = z + random(-size, size - 1) + + for xi = 0, 1 do + for yi = 0, 1 do + for zi = 0, 1 do + local vi = a:index(clust_x + xi, clust_y + yi, clust_z + zi) + if data[vi] == c_air or data[vi] == c_ignore then + if is_apple_tree and random(1, 8) == 1 then + data[vi] = c_apple + else + data[vi] = leaves_cid + end + end + end + end + end + end +end + + +-- Apple tree + +function default.grow_tree(pos, is_apple_tree, bad) + --[[ + NOTE: Tree-placing code is currently duplicated in the engine + and in games that have saplings; both are deprecated but not + replaced yet + --]] + if bad then + error("Deprecated use of default.grow_tree") + end + + local x, y, z = pos.x, pos.y, pos.z + local height = random(4, 5) + local c_tree = minetest.get_content_id("default:tree") + local c_leaves = minetest.get_content_id("default:leaves") + + local vm = minetest.get_voxel_manip() + local minp, maxp = vm:read_from_map( + {x = x - 2, y = y, z = z - 2}, + {x = x + 2, y = y + height + 1, z = z + 2} + ) + local a = VoxelArea:new({MinEdge = minp, MaxEdge = maxp}) + local data = vm:get_data() + + add_trunk_and_leaves(data, a, pos, c_tree, c_leaves, height, 2, 8, is_apple_tree) + + vm:set_data(data) + vm:write_to_map() + vm:update_map() +end + + +-- Jungle tree + +function default.grow_jungle_tree(pos, bad) + --[[ + NOTE: Jungletree-placing code is currently duplicated in the engine + and in games that have saplings; both are deprecated but not + replaced yet + --]] + if bad then + error("Deprecated use of default.grow_jungle_tree") + end + + local x, y, z = pos.x, pos.y, pos.z + local height = random(8, 12) + local c_air = minetest.get_content_id("air") + local c_ignore = minetest.get_content_id("ignore") + local c_jungletree = minetest.get_content_id("default:jungletree") + local c_jungleleaves = minetest.get_content_id("default:jungleleaves") + + local vm = minetest.get_voxel_manip() + local minp, maxp = vm:read_from_map( + {x = x - 3, y = y - 1, z = z - 3}, + {x = x + 3, y = y + height + 1, z = z + 3} + ) + local a = VoxelArea:new({MinEdge = minp, MaxEdge = maxp}) + local data = vm:get_data() + + add_trunk_and_leaves(data, a, pos, c_jungletree, c_jungleleaves, + height, 3, 30, false) + + -- Roots + for z_dist = -1, 1 do + local vi_1 = a:index(x - 1, y - 1, z + z_dist) + local vi_2 = a:index(x - 1, y, z + z_dist) + for x_dist = -1, 1 do + if random(1, 3) >= 2 then + if data[vi_1] == c_air or data[vi_1] == c_ignore then + data[vi_1] = c_jungletree + elseif data[vi_2] == c_air or data[vi_2] == c_ignore then + data[vi_2] = c_jungletree + end + end + vi_1 = vi_1 + 1 + vi_2 = vi_2 + 1 + end + end + + vm:set_data(data) + vm:write_to_map() + vm:update_map() +end + + +-- Pine tree from mg mapgen mod, design by sfan5, pointy top added by paramat + +local function add_pine_needles(data, vi, c_air, c_ignore, c_snow, c_pine_needles) + local node_id = data[vi] + if node_id == c_air or node_id == c_ignore or node_id == c_snow then + data[vi] = c_pine_needles + end +end + +local function add_snow(data, vi, c_air, c_ignore, c_snow) + local node_id = data[vi] + if node_id == c_air or node_id == c_ignore then + data[vi] = c_snow + end +end + +function default.grow_pine_tree(pos, snow) + local x, y, z = pos.x, pos.y, pos.z + local maxy = y + random(9, 13) -- Trunk top + + local c_air = minetest.get_content_id("air") + local c_ignore = minetest.get_content_id("ignore") + local c_pine_tree = minetest.get_content_id("default:pine_tree") + local c_pine_needles = minetest.get_content_id("default:pine_needles") + local c_snow = minetest.get_content_id("default:snow") + + local vm = minetest.get_voxel_manip() + local minp, maxp = vm:read_from_map( + {x = x - 3, y = y, z = z - 3}, + {x = x + 3, y = maxy + 3, z = z + 3} + ) + local a = VoxelArea:new({MinEdge = minp, MaxEdge = maxp}) + local data = vm:get_data() + + -- Upper branches layer + local dev = 3 + for yy = maxy - 1, maxy + 1 do + for zz = z - dev, z + dev do + local vi = a:index(x - dev, yy, zz) + local via = a:index(x - dev, yy + 1, zz) + for xx = x - dev, x + dev do + if random() < 0.95 - dev * 0.05 then + add_pine_needles(data, vi, c_air, c_ignore, c_snow, + c_pine_needles) + if snow then + add_snow(data, via, c_air, c_ignore, c_snow) + end + end + vi = vi + 1 + via = via + 1 + end + end + dev = dev - 1 + end + + -- Centre top nodes + add_pine_needles(data, a:index(x, maxy + 1, z), c_air, c_ignore, c_snow, + c_pine_needles) + add_pine_needles(data, a:index(x, maxy + 2, z), c_air, c_ignore, c_snow, + c_pine_needles) -- Paramat added a pointy top node + if snow then + add_snow(data, a:index(x, maxy + 3, z), c_air, c_ignore, c_snow) + end + + -- Lower branches layer + local my = 0 + for i = 1, 20 do -- Random 2x2 squares of needles + local xi = x + random(-3, 2) + local yy = maxy + random(-6, -5) + local zi = z + random(-3, 2) + if yy > my then + my = yy + end + for zz = zi, zi+1 do + local vi = a:index(xi, yy, zz) + local via = a:index(xi, yy + 1, zz) + for xx = xi, xi + 1 do + add_pine_needles(data, vi, c_air, c_ignore, c_snow, + c_pine_needles) + if snow then + add_snow(data, via, c_air, c_ignore, c_snow) + end + vi = vi + 1 + via = via + 1 + end + end + end + + local dev = 2 + for yy = my + 1, my + 2 do + for zz = z - dev, z + dev do + local vi = a:index(x - dev, yy, zz) + local via = a:index(x - dev, yy + 1, zz) + for xx = x - dev, x + dev do + if random() < 0.95 - dev * 0.05 then + add_pine_needles(data, vi, c_air, c_ignore, c_snow, + c_pine_needles) + if snow then + add_snow(data, via, c_air, c_ignore, c_snow) + end + end + vi = vi + 1 + via = via + 1 + end + end + dev = dev - 1 + end + + -- Trunk + -- Force-place lowest trunk node to replace sapling + data[a:index(x, y, z)] = c_pine_tree + for yy = y + 1, maxy do + local vi = a:index(x, yy, z) + local node_id = data[vi] + if node_id == c_air or node_id == c_ignore or + node_id == c_pine_needles or node_id == c_snow then + data[vi] = c_pine_tree + end + end + + vm:set_data(data) + vm:write_to_map() + vm:update_map() +end + + +-- New apple tree + +function default.grow_new_apple_tree(pos) + local path = minetest.get_modpath("default") .. + "/schematics/apple_tree_from_sapling.mts" + minetest.place_schematic({x = pos.x - 2, y = pos.y - 1, z = pos.z - 2}, + path, "0", nil, false) +end + + +-- New jungle tree + +function default.grow_new_jungle_tree(pos) + local path = minetest.get_modpath("default") .. + "/schematics/jungle_tree_from_sapling.mts" + minetest.place_schematic({x = pos.x - 2, y = pos.y - 1, z = pos.z - 2}, + path, "random", nil, false) +end + + +-- New pine tree + +function default.grow_new_pine_tree(pos) + local path = minetest.get_modpath("default") .. + "/schematics/pine_tree_from_sapling.mts" + minetest.place_schematic({x = pos.x - 2, y = pos.y - 1, z = pos.z - 2}, + path, "0", nil, false) +end + + +-- New snowy pine tree + +function default.grow_new_snowy_pine_tree(pos) + local path = minetest.get_modpath("default") .. + "/schematics/snowy_pine_tree_from_sapling.mts" + minetest.place_schematic({x = pos.x - 2, y = pos.y - 1, z = pos.z - 2}, + path, "random", nil, false) +end + + +-- New acacia tree + +function default.grow_new_acacia_tree(pos) + local path = minetest.get_modpath("default") .. + "/schematics/acacia_tree_from_sapling.mts" + minetest.place_schematic({x = pos.x - 4, y = pos.y - 1, z = pos.z - 4}, + path, "random", nil, false) +end + + +-- New aspen tree + +function default.grow_new_aspen_tree(pos) + local path = minetest.get_modpath("default") .. + "/schematics/aspen_tree_from_sapling.mts" + minetest.place_schematic({x = pos.x - 2, y = pos.y - 1, z = pos.z - 2}, + path, "0", nil, false) +end + + +-- +-- Sapling 'on place' function to check protection of node and resulting tree volume +-- + +function default.sapling_on_place(itemstack, placer, pointed_thing, + sapling_name, minp_relative, maxp_relative, interval) + -- Position of sapling + local pos = pointed_thing.under + local node = minetest.get_node_or_nil(pos) + local pdef = node and minetest.registered_nodes[node.name] + + if pdef and pdef.on_rightclick and not placer:get_player_control().sneak then + return pdef.on_rightclick(pos, node, placer, itemstack, pointed_thing) + end + + if not pdef or not pdef.buildable_to then + pos = pointed_thing.above + node = minetest.get_node_or_nil(pos) + pdef = node and minetest.registered_nodes[node.name] + if not pdef or not pdef.buildable_to then + return itemstack + end + end + + local player_name = placer:get_player_name() + -- Check sapling position for protection + if minetest.is_protected(pos, player_name) then + minetest.record_protection_violation(pos, player_name) + return itemstack + end + -- Check tree volume for protection + if not default.intersects_protection( + vector.add(pos, minp_relative), + vector.add(pos, maxp_relative), + player_name, + interval) then + minetest.set_node(pos, {name = sapling_name}) + if not minetest.setting_getbool("creative_mode") then + itemstack:take_item() + end + else + minetest.record_protection_violation(pos, player_name) + -- Print extra information to explain + minetest.chat_send_player(player_name, "Tree will intersect protection") + end + + return itemstack +end + + + + +-- From BFD: + +minetest.register_node("default:mg_cherry_sapling", { + description = "Impossible to get node.", + drawtype = "airlike", + paramtype = "light", + tiles = {"xfences_space.png"}, + groups = {not_in_creative_inventory=1}, +}) + +local c_mg_cherry_sapling = minetest.get_content_id("default:mg_cherry_sapling") + +minetest.register_on_generated(function(minp, maxp, seed) + local timer = os.clock() + local vm, emin, emax = minetest.get_mapgen_object("voxelmanip") + local data = vm:get_data() + local area = VoxelArea:new{MinEdge=emin, MaxEdge=emax} + local trees_grown = 0 + for z=minp.z, maxp.z, 1 do + for y=minp.y, maxp.y, 1 do + for x=minp.x, maxp.x, 1 do + local p_pos = area:index(x,y,z) + local content_id = data[p_pos] + if content_id == c_mg_cherry_sapling then + minetest.after(1, default.grow_cherry_tree, + {x=x, y=y, z=z}, + false, + "default:cherry_tree", + "default:cherry_blossom_leaves") + trees_grown = trees_grown + 1 + else + -- nope + end + end + end + end + local geninfo = string.format(" trees grown after: %.2fs", os.clock() - timer) + minetest.log("action", trees_grown..geninfo) +end) + +function default.grow_cherry_tree(pos, is_apple_tree, trunk_node, leaves_node) + --[[ + NOTE: Tree-placing code is currently duplicated in the engine + and in games that have saplings; both are deprecated but not + replaced yet + --]] + + local x, y, z = pos.x, pos.y, pos.z + local height = random(4, 5) + local c_tree = minetest.get_content_id(trunk_node) + local c_leaves = minetest.get_content_id(leaves_node) + + local vm = minetest.get_voxel_manip() + local minp, maxp = vm:read_from_map( + {x = pos.x - 2, y = pos.y, z = pos.z - 2}, + {x = pos.x + 2, y = pos.y + height + 1, z = pos.z + 2} + ) + local a = VoxelArea:new({MinEdge = minp, MaxEdge = maxp}) + local data = vm:get_data() + + add_trunk_and_leaves(data, a, pos, c_tree, c_leaves, height, 2, 8, is_apple_tree) + + vm:set_data(data) + vm:write_to_map() + vm:update_map() +end + +minetest.register_abm({ + nodenames = {"default:cherry_sapling", "default:mg_cherry_sapling"}, + interval = 80, + chance = 3, + 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({x=pos.x, y=pos.y, z=pos.z}) + default.grow_cherry_tree(pos, false, "default:cherry_tree", "default:cherry_blossom_leaves") + end, +}) + +minetest.register_biome({ + name = "cherry_blossom_forest", + node_shore_filler = "default:sand", + node_top = "default:grass", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 3, + node_dust = "air", + node_underwater = "default:gravel", + y_min = 1, + y_max = 40, + heat_point = 50, + humidity_point = 55, +}) + +minetest.register_biome({ + name = "cherry_blossom_forest_floral", + node_shore_filler = "default:sand", + node_top = "default:grass", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 3, + node_dust = "air", + node_underwater = "default:gravel", + y_min = 1, + y_max = 40, + heat_point = 47, + humidity_point = 50, +}) + +minetest.register_biome({ + name = "cherry_blossom_forest_grassy", + node_shore_filler = "default:sand", + node_top = "default:grass", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 3, + node_dust = "air", + node_underwater = "default:gravel", + y_min = 1, + y_max = 42, + heat_point = 55, + humidity_point = 55, +}) diff --git a/mods/doors/README.txt b/mods/doors/README.txt old mode 100644 new mode 100755 index 146af8ed..9ad7093d --- a/mods/doors/README.txt +++ b/mods/doors/README.txt @@ -1,46 +1,84 @@ -Minetest 0.4 mod: doors -======================= -version: 1.3 +Minetest Game mod: doors +======================== +See license.txt for license information. -License of source code: ------------------------ -Copyright (C) 2012 PilzAdam -modified by BlockMen (added sounds, glassdoors[glass, obsidian glass], trapdoor) +Authors of source code +---------------------- +Originally by PilzAdam (MIT) -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. +Modified by BlockMen (MIT): Added sounds, glass doors (glass, obsidian glass) and trapdoor. -License of textures --------------------------------------- -following Textures created by Fernando Zapata (CC BY-SA 3.0): +Modified by sofar (sofar@foo-projects.org) (MIT): +Added Steel trapdoor. +Re-implemented most of the door algorithms, added meshes, UV wrapped texture. +Added doors API to facilitate coding mods accessing and operating doors. +Added Fence Gate model, code, and sounds. + +Various Minetest developers and contributors (MIT) + + +Authors of media (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): +Following textures created by BlockMen (CC BY-SA 3.0): door_trapdoor.png door_obsidian_glass_side.png -following textures created by celeron55 (CC BY-SA 3.0): - door_trapdoor_side.png +Following textures created by celeron55 (CC BY-SA 3.0): door_glass_a.png door_glass_b.png - -following Textures created by PenguinDad (CC BY-SA 4.0): + +Following textures created by PenguinDad (CC BY-SA 4.0): door_glass.png door_obsidian_glass.png -All other textures (created by PilzAdam): WTFPL +Following textures created by sofar (CC-BY-SA-3.0): + doors_trapdoor_steel.png + doors_trapdoor_steel_side.png + door_trapdoor_side.png + +Obsidian door textures by red-001 based on textures by Pilzadam and BlockMen (CC BY-SA 3.0): + door_obsidian_glass.png + +Glass door textures by red-001 based on textures by celeron55 (CC BY-SA 3.0): + door_glass.png + +All other textures (created by PilzAdam) (CC BY-SA 3.0): + +Door textures were converted to the new texture map by sofar, paramat and +red-001, under the same license as the originals. -License of sounds --------------------------------------- +Authors of media (models) +------------------------- +Door 3d models by sofar (CC-BY-SA-3.0) + - door_a.obj + - door_b.obj +Fence gate models by sofar (CC-BY-SA-3.0) + - fencegate_open.obj + - fencegate_closed.obj + + +Authors of media (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 +fencegate_open.ogg: + http://www.freesound.org/people/mhtaylor67/sounds/126041/ - (CC0 1.0) +fencegate_close.ogg: + http://www.freesound.org/people/BarkersPinhead/sounds/274807/ - (CC-BY-3.0) + http://www.freesound.org/people/rivernile7/sounds/249573/ - (CC-BY-3.0) +Steel door sounds open & close (CC-BY-3.0) by HazMatt + - http://www.freesound.org/people/HazMattt/sounds/187283/ + doors_steel_door_open.ogg + doors_steel_door_close.ogg +doors_glass_door_open.ogg, doors_glass_door_close.ogg: + https://www.freesound.org/people/SkeetMasterFunk69/sounds/235546/ (CC0 1.0) diff --git a/mods/doors/depends.txt b/mods/doors/depends.txt old mode 100644 new mode 100755 index 4ad96d51..5e28beeb --- a/mods/doors/depends.txt +++ b/mods/doors/depends.txt @@ -1 +1,2 @@ default +screwdriver? diff --git a/mods/doors/init.lua b/mods/doors/init.lua old mode 100644 new mode 100755 index 87b15b61..ff907763 --- a/mods/doors/init.lua +++ b/mods/doors/init.lua @@ -1,447 +1,787 @@ +-- our API object 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 +-- private data +local _doors = {} +_doors.registered_doors = {} +_doors.registered_trapdoors = {} -local function is_right(pos) - local r1 = minetest.get_node({x=pos.x-1, y=pos.y, z=pos.z}) - local r2 = minetest.get_node({x=pos.x, y=pos.y, z=pos.z-1}) - if string.find(r1.name, "door_") or string.find(r2.name, "door_") then - if string.find(r1.name, "_1") or string.find(r2.name, "_1") then - return true - else - return false - end +-- returns an object to a door object or nil +function doors.get(pos) + local node_name = minetest.get_node(pos).name + if _doors.registered_doors[node_name] then + -- A normal upright door + return { + pos = pos, + open = function(self, player) + if self:state() then + return false + end + return _doors.door_toggle(self.pos, nil, player) + end, + close = function(self, player) + if not self:state() then + return false + end + return _doors.door_toggle(self.pos, nil, player) + end, + toggle = function(self, player) + return _doors.door_toggle(self.pos, nil, player) + end, + state = function(self) + local state = minetest.get_meta(self.pos):get_int("state") + return state %2 == 1 + end + } + elseif _doors.registered_trapdoors[node_name] then + -- A trapdoor + return { + pos = pos, + open = function(self, player) + if self:state() then + return false + end + return _doors.trapdoor_toggle(self.pos, nil, player) + end, + close = function(self, player) + if not self:state() then + return false + end + return _doors.trapdoor_toggle(self.pos, nil, player) + end, + toggle = function(self, player) + return _doors.trapdoor_toggle(self.pos, nil, player) + end, + state = function(self) + return minetest.get_node(self.pos).name:sub(-5) == "_open" + end + } + elseif _doors.registered_doors3[node_name] then --MFF doors3 + -- A normal upright door + return { + pos = pos, + open = function(self, player) + if self:state() then + return false + end + return _doors.door_toggle(self.pos, nil, player) + end, + close = function(self, player) + if not self:state() then + return false + end + return _doors.door_toggle(self.pos, nil, player) + end, + toggle = function(self, player) + return _doors.door_toggle(self.pos, nil, player) + end, + state = function(self) + local state = minetest.get_meta(self.pos):get_int("state") + return state %2 == 1 + end + } + else + return nil end end -function doors.register_door(name, def) - def.groups.not_in_creative_inventory = 1 +-- this hidden node is placed on top of the bottom, and prevents +-- nodes from being placed in the top half of the door. +minetest.register_node("doors:hidden", { + description = "Hidden Door Segment", + -- can't use airlike otherwise falling nodes will turn to entities + -- and will be forever stuck until door is removed. + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + -- has to be walkable for falling nodes to stop falling. + walkable = true, + pointable = false, + diggable = false, + buildable_to = false, + floodable = false, + drop = "", + groups = {not_in_creative_inventory = 1}, + on_blast = function() end, + tiles = {"doors_blank.png"}, + -- 1px transparent block inside door hinge near node top. + nodebox = { + type = "fixed", + fixed = {-15/32, 13/32, -15/32, -13/32, 1/2, -13/32}, + }, + -- collision_box needed otherise selection box would be full node size + collision_box = { + type = "fixed", + fixed = {-15/32, 13/32, -15/32, -13/32, 1/2, -13/32}, + }, +}) - local box = {{-0.5, -0.5, -0.5, 0.5, 0.5, -0.5+1.5/16}} +-- table used to aid door opening/closing +local transform = { + { + {v = "_a", param2 = 3}, + {v = "_a", param2 = 0}, + {v = "_a", param2 = 1}, + {v = "_a", param2 = 2}, + }, + { + {v = "_b", param2 = 1}, + {v = "_b", param2 = 2}, + {v = "_b", param2 = 3}, + {v = "_b", param2 = 0}, + }, + { + {v = "_b", param2 = 1}, + {v = "_b", param2 = 2}, + {v = "_b", param2 = 3}, + {v = "_b", param2 = 0}, + }, + { + {v = "_a", param2 = 3}, + {v = "_a", param2 = 0}, + {v = "_a", param2 = 1}, + {v = "_a", param2 = 2}, + }, +} - if not def.node_box_bottom then - def.node_box_bottom = box + +function doors.get_double_doors(pos, dir, p1, b) + local pos2 = nil + if b == "a" then + if p1 == 0 then + if dir == 1 then + pos2 = {x=pos.x, y=pos.y, z=pos.z-1} + elseif dir == 2 then + pos2 = {x=pos.x-1, y=pos.y, z=pos.z} + elseif dir == 3 then + pos2 = {x=pos.x, y=pos.y, z=pos.z+1} + else + pos2 = {x=pos.x+1, y=pos.y, z=pos.z} + end + elseif p1 == 3 then + if dir == 1 then + pos2 = {x=pos.x+1, y=pos.y, z=pos.z} + elseif dir == 2 then + pos2 = {x=pos.x, y=pos.y, z=pos.z-1} + elseif dir == 3 then + pos2 = {x=pos.x-1, y=pos.y, z=pos.z} + else + pos2 = {x=pos.x, y=pos.y, z=pos.z+1} + end + end + else + if p1 == 1 then + if dir == 1 then + pos2 = {x=pos.x+1, y=pos.y, z=pos.z} + elseif dir == 2 then + pos2 = {x=pos.x, y=pos.y, z=pos.z-1} + elseif dir == 3 then + pos2 = {x=pos.x-1, y=pos.y, z=pos.z} + else + pos2 = {x=pos.x, y=pos.y, z=pos.z+1} + end + elseif p1 == 2 then + if dir == 1 then + pos2 = {x=pos.x, y=pos.y, z=pos.z+1} + elseif dir == 2 then + pos2 = {x=pos.x+1, y=pos.y, z=pos.z} + elseif dir == 3 then + pos2 = {x=pos.x, y=pos.y, z=pos.z-1} + else + pos2 = {x=pos.x-1, y=pos.y, z=pos.z} + end + end 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 + return pos2 +end + + +function _doors.door_toggle(pos, node, clicker) + local meta = minetest.get_meta(pos) + node = node or minetest.get_node(pos) + local def = minetest.registered_nodes[node.name] + local name = def.door.name + + local state = meta:get_string("state") + if state == "" then + -- fix up lvm-placed right-hinged doors, default closed + if node.name:sub(-2) == "_b" then + state = 2 + else + state = 0 + end + else + state = tonumber(state) end - minetest.register_craftitem(name, { + if clicker and not minetest.check_player_privs(clicker, "protection_bypass") then + local owner = meta:get_string("doors_owner") + if owner ~= "" then + if clicker:get_player_name() ~= owner then + return false + end + end + end + + local old = state + -- until Lua-5.2 we have no bitwise operators :( + if state % 2 == 1 then + state = state - 1 + else + state = state + 1 + end + + local dir = node.param2 + minetest.swap_node(pos, { + name = name .. transform[state + 1][dir+1].v, + param2 = transform[state + 1][dir+1].param2 + }) + meta:set_int("state", state) + + --MFF double porte + local b = string.sub(node.name, -1) + local pos2 = doors.get_double_doors(pos, dir, old, b) + if pos2 then + local node2 = minetest.get_node_or_nil(pos2) + if node2 and string.sub(node2.name, 0, -3) == name then + if b ~= string.sub(node2.name, -1) then + local state2 = minetest.get_meta(pos2):get_int("state") + if (old % 2) == (state2 % 2) then + _doors.door_toggle(pos2, node2, clicker) + return true + end + end + end + end + -- /double porte + + if state % 2 == 0 then + minetest.sound_play(def.door.sounds[1], + {pos = pos, gain = 0.3, max_hear_distance = 10}) + else + minetest.sound_play(def.door.sounds[2], + {pos = pos, gain = 0.3, max_hear_distance = 10}) + end + + return true +end + + +local function on_place_node(place_to, newnode, + placer, oldnode, itemstack, pointed_thing) + -- Run script hook + for _, callback in ipairs(minetest.registered_on_placenodes) do + -- Deepcopy pos, node and pointed_thing because callback can modify them + local place_to_copy = {x = place_to.x, y = place_to.y, z = place_to.z} + local newnode_copy = + {name = newnode.name, param1 = newnode.param1, param2 = newnode.param2} + local oldnode_copy = + {name = oldnode.name, param1 = oldnode.param1, param2 = oldnode.param2} + local pointed_thing_copy = { + type = pointed_thing.type, + above = vector.new(pointed_thing.above), + under = vector.new(pointed_thing.under), + ref = pointed_thing.ref, + } + callback(place_to_copy, newnode_copy, placer, + oldnode_copy, itemstack, pointed_thing_copy) + end +end + +local function can_dig_door(pos, digger) + local digger_name = digger and digger:get_player_name() + if digger_name and minetest.get_player_privs(digger_name).protection_bypass then + return true + end + return minetest.get_meta(pos):get_string("doors_owner") == digger_name +end + +function doors.register(name, def) + if not name:find(":") then + name = "doors:" .. name + end + + -- replace old doors of this type automatically + minetest.register_lbm({ + name = ":doors:replace_" .. name:gsub(":", "_"), + nodenames = {name.."_b_1", name.."_b_2"}, + action = function(pos, node) + local l = tonumber(node.name:sub(-1)) + local meta = minetest.get_meta(pos) + local h = meta:get_int("right") + 1 + local p2 = node.param2 + local replace = { + {{type = "a", state = 0}, {type = "a", state = 3}}, + {{type = "b", state = 1}, {type = "b", state = 2}} + } + local new = replace[l][h] + -- retain infotext and doors_owner fields + minetest.swap_node(pos, {name = name .. "_" .. new.type, param2 = p2}) + meta:set_int("state", new.state) + -- properly place doors:hidden at the right spot + local p3 = p2 + if new.state >= 2 then + p3 = (p3 + 3) % 4 + end + if new.state % 2 == 1 then + if new.state >= 2 then + p3 = (p3 + 1) % 4 + else + p3 = (p3 + 3) % 4 + end + end + -- wipe meta on top node as it's unused + minetest.set_node({x = pos.x, y = pos.y + 1, z = pos.z}, + {name = "doors:hidden", param2 = p3}) + end + }) + + minetest.register_craftitem(":" .. name, { description = def.description, inventory_image = def.inventory_image, on_place = function(itemstack, placer, pointed_thing) + local pos + 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) + local node = minetest.get_node(pointed_thing.under) + local pdef = minetest.registered_nodes[node.name] + if pdef and pdef.on_rightclick then + return pdef.on_rightclick(pointed_thing.under, + node, placer, itemstack, pointed_thing) 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 not string.find(minetest.get_node(pt3).name, name.."_b_") then - minetest.set_node(pt, {name=name.."_b_1", param2=p2}) - minetest.set_node(pt2, {name=name.."_t_1", param2=p2}) + if pdef and pdef.buildable_to then + pos = pointed_thing.under else - minetest.set_node(pt, {name=name.."_b_2", param2=p2}) - minetest.set_node(pt2, {name=name.."_t_2", param2=p2}) + pos = pointed_thing.above + node = minetest.get_node(pos) + pdef = minetest.registered_nodes[node.name] + if not pdef or not pdef.buildable_to then + return itemstack + end end - if def.only_placer_can_open then - local pn = placer:get_player_name() - local meta = minetest.get_meta(pt) + local above = {x = pos.x, y = pos.y + 1, z = pos.z} + local top_node = minetest.get_node_or_nil(above) + local topdef = top_node and minetest.registered_nodes[top_node.name] + + if not topdef or not topdef.buildable_to then + return itemstack + end + + local pn = placer:get_player_name() + if minetest.is_protected(pos, pn) or minetest.is_protected(above, pn) then + return itemstack + end + + local dir = minetest.dir_to_facedir(placer:get_look_dir()) + + local ref = { + {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 aside = { + x = pos.x + ref[dir + 1].x, + y = pos.y + ref[dir + 1].y, + z = pos.z + ref[dir + 1].z, + } + + local state = 0 + if minetest.get_item_group(minetest.get_node(aside).name, "door") == 1 then + state = state + 2 + minetest.set_node(pos, {name = name .. "_b", param2 = dir}) + minetest.set_node(above, {name = "doors:hidden", param2 = (dir + 3) % 4}) + else + minetest.set_node(pos, {name = name .. "_a", param2 = dir}) + minetest.set_node(above, {name = "doors:hidden", param2 = dir}) + end + + local meta = minetest.get_meta(pos) + meta:set_int("state", state) + + if def.protected then 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) + meta:set_string("infotext", "Owned by " .. pn) end if not minetest.setting_getbool("creative_mode") then itemstack:take_item() end + + on_place_node(pos, minetest.get_node(pos), + placer, node, itemstack, pointed_thing) + return itemstack - end, + end }) + def.inventory_image = nil - 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) + if def.recipe then + minetest.register_craft({ + output = name, + recipe = def.recipe, + }) + end + def.recipe = nil + + if not def.sounds then + def.sounds = default.node_sound_wood_defaults() + end + + if not def.sound_open then + def.sound_open = "doors_door_open" + end + + if not def.sound_close then + def.sound_close = "doors_door_close" + end + + def.groups.not_in_creative_inventory = 1 + def.groups.door = 1 + def.drop = name + def.door = { + name = name, + sounds = { def.sound_close, def.sound_open }, + } + + def.on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) + _doors.door_toggle(pos, node, clicker) + return itemstack + end + def.after_dig_node = function(pos, node, meta, digger) + minetest.remove_node({x = pos.x, y = pos.y + 1, z = pos.z}) + nodeupdate({x = pos.x, y = pos.y + 1, z = pos.z}) + end + def.on_rotate = false + + if def.protected then + def.can_dig = can_dig_door + def.on_blast = function() end + else + def.on_blast = function(pos, intensity) + minetest.remove_node(pos) + -- hidden node doesn't get blasted away. + minetest.remove_node({x = pos.x, y = pos.y + 1, z = pos.z}) + return {name} 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 = "_close" - local snd_2 = "_open" - if params[1] == 3 then - snd_1 = "_open" - snd_2 = "_close" - end - - if is_right(pos) then - minetest.sound_play("door"..snd_1, {pos = pos, gain = 0.3, max_hear_distance = 10}) - else - minetest.sound_play("door"..snd_2, {pos = pos, gain = 0.3, max_hear_distance = 10}) - end + def.on_destruct = function(pos) + minetest.remove_node({x = pos.x, y = pos.y + 1, z = pos.z}) 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 + def.drawtype = "mesh" + def.paramtype = "light" + def.paramtype2 = "facedir" + def.sunlight_propagates = true + def.walkable = true + def.is_ground_content = false + def.buildable_to = false + def.selection_box = {type = "fixed", fixed = {-1/2,-1/2,-1/2,1/2,3/2,-6/16}} + def.collision_box = {type = "fixed", fixed = {-1/2,-1/2,-1/2,1/2,3/2,-6/16}} - 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 - }) + def.mesh = "door_a.obj" + minetest.register_node(":" .. name .. "_a", def) - 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 - }) + def.mesh = "door_b.obj" + minetest.register_node(":" .. name .. "_b", def) + _doors.registered_doors[name .. "_a"] = true + _doors.registered_doors[name .. "_b"] = true 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, +doors.register("door_wood", { + tiles = {{ name = "doors_door_wood.png", backface_culling = true }}, + description = "Wooden Door", + inventory_image = "doors_item_wood.png", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + recipe = { + {"group:wood", "group:wood"}, + {"group:wood", "group:wood"}, + {"group:wood", "group:wood"}, + } }) -minetest.register_craft({ - output = "doors:door_wood", +doors.register("door_steel", { + tiles = {{name = "doors_door_steel.png", backface_culling = true}}, + description = "Steel Door", + inventory_image = "doors_item_steel.png", + protected = true, + groups = {cracky = 1, level = 2}, + sounds = default.node_sound_metal_defaults(), + sound_open = "doors_steel_door_open", + sound_close = "doors_steel_door_close", + recipe = { + {"default:steel_ingot", "default:steel_ingot"}, + {"default:steel_ingot", "default:steel_ingot"}, + {"default:steel_ingot", "default:steel_ingot"}, + } +}) + +doors.register("door_glass", { + tiles = {"doors_door_glass.png"}, + description = "Glass Door", + inventory_image = "doors_item_glass.png", + groups = {cracky=3, oddly_breakable_by_hand=3}, + sounds = default.node_sound_glass_defaults(), + sound_open = "doors_glass_door_open", + sound_close = "doors_glass_door_close", + recipe = { + {"default:glass", "default:glass"}, + {"default:glass", "default:glass"}, + {"default:glass", "default:glass"}, + } +}) + +doors.register("door_obsidian_glass", { + tiles = {"doors_door_obsidian_glass.png"}, + description = "Obsidian Glass Door", + inventory_image = "doors_item_obsidian_glass.png", + groups = {cracky=3}, + sounds = default.node_sound_glass_defaults(), + sound_open = "doors_glass_door_open", + sound_close = "doors_glass_door_close", + recipe = { + {"default:obsidian_glass", "default:obsidian_glass"}, + {"default:obsidian_glass", "default:obsidian_glass"}, + {"default:obsidian_glass", "default:obsidian_glass"}, + }, +}) + +-- From BFD: Cherry planks doors +doors.register("door_cherry", { + tiles = { "doors_door_cherry.png" }, + description = "Cherry Door", + inventory_image = "doors_item_cherry.png", + groups = {choppy=2, oddly_breakable_by_hand=2, flammable=2, door=1}, + sounds = default.node_sound_wood_defaults(), recipe = { - {"group:wood", "group:wood"}, - {"group:wood", "group:wood"}, - {"group:wood", "group:wood"} + {"default:cherry_plank", "default:cherry_plank"}, + {"default:cherry_plank", "default:cherry_plank"}, + {"default:cherry_plank", "default:cherry_plank"} } }) +minetest.register_alias("doors:door_wood_cherry", "doors:door_cherry") -doors.register_door("doors:door_steel", { - description = "Steel Door", - inventory_image = "door_steel.png", +-- doors tin MFF +doors.register("door_tin", { + tiles = { "doors_door_tin.png" }, + description = "Tin Door", + inventory_image = "doors_item_tin.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(), + protected = true, + sounds = default.node_sound_stone_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"} + {"default:tin_ingot", "default:tin_ingot"}, + {"default:tin_ingot", "default:tin_ingot"}, + {"default:tin_ingot", "default:tin_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", +-- doors prison MFF +doors.register("door_prison", { + tiles = { "doors_door_prison.png" }, + description = "Prison Door", + inventory_image = "doors_item_prison.png", + groups = {snappy=1,bendy=2,cracky=1,melty=2,level=2,door=1}, + protected = true, + sounds = default.node_sound_stone_defaults(), recipe = { - {"default:glass", "default:glass"}, - {"default:glass", "default:glass"}, - {"default:glass", "default:glass"} + {"darkage:iron_stick", "darkage:iron_stick"}, + {"darkage:iron_stick", "darkage:iron_stick"}, + {"darkage:iron_stick", "darkage:iron_stick"} } }) -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", +-- MFF gardengate white +doors.register("doors:door_gardengate_white", { + tiles = { "doors_door_gardengate_white.png" }, + description = "Garden Gate White Door", + inventory_image = "doors_item_gardengate_white.png", + groups = {choppy=2,oddly_breakable_by_hand=2,flammable=2,door=1}, + sounds = default.node_sound_wood_defaults(), recipe = { - {"default:obsidian_glass", "default:obsidian_glass"}, - {"default:obsidian_glass", "default:obsidian_glass"}, - {"default:obsidian_glass", "default:obsidian_glass"} + {"dye:white", "group:stick", ""}, + {"group:stick", "group:stick", "group:stick"}, + {"group:wood", "group:wood", "group:wood"} } }) - ----trapdoor---- -local function update_door(pos, node) - minetest.set_node(pos, node) -end +-- Capture mods using the old API as best as possible. +function doors.register_door(name, def) + if def.only_placer_can_open then + def.protected = true + end + def.only_placer_can_open = nil -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} + local i = name:find(":") + local modname = name:sub(1, i - 1) + if not def.tiles then + if def.protected then + def.tiles = {{name = "doors_door_steel.png", backface_culling = true}} 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} + def.tiles = {{name = "doors_door_wood.png", backface_culling = true}} end - update_door(pos, tmp_node) - meta:set_int("state", state) + minetest.log("warning", modname .. " registered door \"" .. name .. "\" " .. + "using deprecated API method \"doors.register_door()\" but " .. + "did not provide the \"tiles\" parameter. A fallback tiledef " .. + "will be used instead.") + end + + doors.register(name, def) end -minetest.register_node("doors:trapdoor", { +----trapdoor---- + +function _doors.trapdoor_toggle(pos, node, clicker) + node = node or minetest.get_node(pos) + if clicker and not minetest.check_player_privs(clicker, "protection_bypass") then + local meta = minetest.get_meta(pos) + local owner = meta:get_string("doors_owner") + if owner ~= "" then + if clicker:get_player_name() ~= owner then + return false + end + end + end + + local def = minetest.registered_nodes[node.name] + + if string.sub(node.name, -5) == "_open" then + minetest.sound_play(def.sound_close, + {pos = pos, gain = 0.3, max_hear_distance = 10}) + minetest.swap_node(pos, {name = string.sub(node.name, 1, + string.len(node.name) - 5), param1 = node.param1, param2 = node.param2}) + else + minetest.sound_play(def.sound_open, + {pos = pos, gain = 0.3, max_hear_distance = 10}) + minetest.swap_node(pos, {name = node.name .. "_open", + param1 = node.param1, param2 = node.param2}) + end +end + +function doors.register_trapdoor(name, def) + if not name:find(":") then + name = "doors:" .. name + end + + local name_closed = name + local name_opened = name.."_open" + + def.on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) + _doors.trapdoor_toggle(pos, node, clicker) + return itemstack + end + + -- Common trapdoor configuration + def.drawtype = "nodebox" + def.paramtype = "light" + def.paramtype2 = "facedir" + def.is_ground_content = false + + if def.protected then + def.can_dig = can_dig_door + def.after_place_node = function(pos, placer, itemstack, pointed_thing) + local pn = placer:get_player_name() + local meta = minetest.get_meta(pos) + meta:set_string("doors_owner", pn) + meta:set_string("infotext", "Owned by "..pn) + + return minetest.setting_getbool("creative_mode") + end + + def.on_blast = function() end + else + def.on_blast = function(pos, intensity) + minetest.remove_node(pos) + return {name} + end + end + + if not def.sounds then + def.sounds = default.node_sound_wood_defaults() + end + + if not def.sound_open then + def.sound_open = "doors_door_open" + end + + if not def.sound_close then + def.sound_close = "doors_door_close" + end + + local def_opened = table.copy(def) + local def_closed = table.copy(def) + + def_closed.node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -6/16, 0.5} + } + def_closed.selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -6/16, 0.5} + } + def_closed.tiles = {def.tile_front, + def.tile_front .. '^[transformFY', + def.tile_side, def.tile_side, + def.tile_side, def.tile_side} + + def_opened.node_box = { + type = "fixed", + fixed = {-0.5, -0.5, 6/16, 0.5, 0.5, 0.5} + } + def_opened.selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, 6/16, 0.5, 0.5, 0.5} + } + def_opened.tiles = {def.tile_side, def.tile_side, + def.tile_side .. '^[transform3', + def.tile_side .. '^[transform1', + def.tile_front .. '^[transform46', + def.tile_front .. '^[transform6'} + + def_opened.drop = name_closed + def_opened.groups.not_in_creative_inventory = 1 + + minetest.register_node(name_opened, def_opened) + minetest.register_node(name_closed, def_closed) + + _doors.registered_trapdoors[name_opened] = true + _doors.registered_trapdoors[name_closed] = true +end + +doors.register_trapdoor("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, + inventory_image = "doors_trapdoor.png", + wield_image = "doors_trapdoor.png", + tile_front = "doors_trapdoor.png", + tile_side = "doors_trapdoor_side.png", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, door = 1}, }) -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}, - 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, +doors.register_trapdoor("doors:trapdoor_steel", { + description = "Steel Trapdoor", + inventory_image = "doors_trapdoor_steel.png", + wield_image = "doors_trapdoor_steel.png", + tile_front = "doors_trapdoor_steel.png", + tile_side = "doors_trapdoor_steel_side.png", + protected = true, + sounds = default.node_sound_metal_defaults(), + sound_open = "doors_steel_door_open", + sound_close = "doors_steel_door_close", + groups = {cracky = 1, level = 2, door = 1}, }) minetest.register_craft({ @@ -452,3 +792,480 @@ minetest.register_craft({ {'', '', ''}, } }) + +minetest.register_craft({ + output = 'doors:trapdoor_steel', + recipe = { + {'default:steel_ingot', 'default:steel_ingot'}, + {'default:steel_ingot', 'default:steel_ingot'}, + } +}) + +doors.register_trapdoor("doors:trapdoor_cherry", { + description = "Cherry tree trapdoor", + inventory_image = "doors_trapdoor_cherry.png", + wields_images = "doors_trapdoor_cherry.png", + tile_front = "doors_trapdoor_cherry.png", + tile_side = "default_wood_cherry_planks.png", + groups = {snappy=1, choppy=2, oddly_breakable_by_hand=2, flammable=2, door=1}, + sounds = default.node_sound_wood_defaults(), + sound_open = "doors_door_open", + sound_close = "doors_door_close" +}) + +minetest.register_craft({ + output = 'doors:trapdoor_cherry 2', + recipe = { + {'default:cherry_plank', 'default:cherry_plank', 'default:cherry_plank'}, + {'default:cherry_plank', 'default:cherry_plank', 'default:cherry_plank'}, + } +}) + +----fence gate---- + +function doors.register_fencegate(name, def) + local fence = { + description = def.description, + drawtype = "mesh", + tiles = {def.texture}, + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + is_ground_content = false, + drop = name .. "_closed", + connect_sides = {"left", "right"}, + groups = def.groups, + sounds = def.sounds, + on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) + local node_def = minetest.registered_nodes[node.name] + minetest.swap_node(pos, {name = node_def.gate, param2 = node.param2}) + minetest.sound_play(node_def.sound, {pos = pos, gain = 0.3, + max_hear_distance = 8}) + end, + selection_box = { + type = "fixed", + fixed = {-1/2, -1/2, -1/4, 1/2, 1/2, 1/4}, + }, + } + + if not fence.sounds then + fence.sounds = default.node_sound_wood_defaults() + end + + fence.groups.fence = 1 + + local fence_closed = table.copy(fence) + fence_closed.mesh = "doors_fencegate_closed.obj" + fence_closed.gate = name .. "_open" + fence_closed.sound = "doors_fencegate_open" + fence_closed.collision_box = { + type = "fixed", + fixed = {-1/2, -1/2, -1/4, 1/2, 1/2, 1/4}, + } + + local fence_open = table.copy(fence) + fence_open.mesh = "doors_fencegate_open.obj" + fence_open.gate = name .. "_closed" + fence_open.sound = "doors_fencegate_close" + fence_open.groups.not_in_creative_inventory = 1 + fence_open.collision_box = { + type = "fixed", + fixed = {{-1/2, -1/2, -1/4, -3/8, 1/2, 1/4}, + {-1/2, -3/8, -1/2, -3/8, 3/8, 0}}, + } + + minetest.register_node(":" .. name .. "_closed", fence_closed) + minetest.register_node(":" .. name .. "_open", fence_open) + + minetest.register_craft({ + output = name .. "_closed", + recipe = { + {"default:stick", def.material, "default:stick"}, + {"default:stick", def.material, "default:stick"} + } + }) +end + +doors.register_fencegate("doors:gate_wood", { + description = "Wooden Fence Gate", + texture = "default_wood.png", + material = "default:wood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2} +}) + +doors.register_fencegate("doors:gate_acacia_wood", { + description = "Acacia Fence Gate", + texture = "default_acacia_wood.png", + material = "default:acacia_wood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2} +}) + +doors.register_fencegate("doors:gate_junglewood", { + description = "Junglewood Fence Gate", + texture = "default_junglewood.png", + material = "default:junglewood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2} +}) + +doors.register_fencegate("doors:gate_pine_wood", { + description = "Pine Fence Gate", + texture = "default_pine_wood.png", + material = "default:pine_wood", + groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3} +}) + +doors.register_fencegate("doors:gate_aspen_wood", { + description = "Aspen Fence Gate", + texture = "default_aspen_wood.png", + material = "default:aspen_wood", + groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3} +}) + + +----fuels---- + +minetest.register_craft({ + type = "fuel", + recipe = "doors:trapdoor", + burntime = 7, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "doors:door_wood", + burntime = 14, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "doors:gate_wood_closed", + burntime = 7, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "doors:gate_acacia_wood_closed", + burntime = 8, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "doors:gate_junglewood_closed", + burntime = 9, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "doors:gate_pine_wood_closed", + burntime = 6, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "doors:gate_aspen_wood_closed", + burntime = 5, +}) + + +-- IMPORTANT MFF doors3 must be in this init file, he use local vars/functions no recopiable +_doors.registered_doors3 = {} --MFF doors3 + +-- door 3 nodes +function doors.register3(name, def) + if not name:find(":") then + name = "doors:" .. name + end + + -- replace old doors of this type automatically + minetest.register_lbm({ + name = ":doors:replace_" .. name:gsub(":", "_"), + nodenames = {name.."_b_1", name.."_b_2"}, + action = function(pos, node) + local l = tonumber(node.name:sub(-1)) + local meta = minetest.get_meta(pos) + local h = meta:get_int("right") + 1 + local p2 = node.param2 + local replace = { + {{type = "a", state = 0}, {type = "a", state = 3}}, + {{type = "b", state = 1}, {type = "b", state = 2}} + } + local new = replace[l][h] + -- retain infotext and doors_owner fields + minetest.swap_node(pos, {name = name .. "_" .. new.type, param2 = p2}) + meta:set_int("state", new.state) + -- properly place doors:hidden at the right spot + local p3 = p2 + if new.state >= 2 then + p3 = (p3 + 3) % 4 + end + if new.state % 2 == 1 then + if new.state >= 2 then + p3 = (p3 + 1) % 4 + else + p3 = (p3 + 3) % 4 + end + end + -- wipe meta on top node as it's unused + minetest.set_node({x = pos.x, y = pos.y + 1, z = pos.z}, + {name = "doors:hidden", param2 = p3}) + minetest.set_node({x = pos.x, y = pos.y + 2, z = pos.z}, + {name = "doors:hidden", param2 = p3}) + end + }) + + minetest.register_craftitem(":" .. name, { + description = def.description, + inventory_image = def.inventory_image, + + on_place = function(itemstack, placer, pointed_thing) + local pos + + if not pointed_thing.type == "node" then + return itemstack + end + + local node = minetest.get_node(pointed_thing.under) + local pdef = minetest.registered_nodes[node.name] + if pdef and pdef.on_rightclick then + return pdef.on_rightclick(pointed_thing.under, + node, placer, itemstack, pointed_thing) + end + + if pdef and pdef.buildable_to then + pos = pointed_thing.under + else + pos = pointed_thing.above + node = minetest.get_node(pos) + pdef = minetest.registered_nodes[node.name] + if not pdef or not pdef.buildable_to then + return itemstack + end + end + + local above = {x = pos.x, y = pos.y + 1, z = pos.z} + local top_node = minetest.get_node_or_nil(above) + local topdef = top_node and minetest.registered_nodes[top_node.name] + + if not topdef or not topdef.buildable_to then + return itemstack + end + + local above2 = { x = pos.x, y = pos.y + 2, z = pos.z } + local top_node2 = minetest.get_node_or_nil(above2) + local topdef2 = top_node2 and minetest.registered_nodes[top_node2.name] + + if not topdef2 or not topdef2.buildable_to then + return itemstack + end + + local pn = placer:get_player_name() + if minetest.is_protected(pos, pn) or minetest.is_protected(above, pn) or minetest.is_protected(above2, pn) then + return itemstack + end + + local dir = minetest.dir_to_facedir(placer:get_look_dir()) + + local ref = { + {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 aside = { + x = pos.x + ref[dir + 1].x, + y = pos.y + ref[dir + 1].y, + z = pos.z + ref[dir + 1].z, + } + + local state = 0 + if minetest.get_item_group(minetest.get_node(aside).name, "door") == 1 then + state = state + 2 + minetest.set_node(pos, {name = name .. "_b", param2 = dir}) + minetest.set_node(above, {name = "doors:hidden", param2 = (dir + 3) % 4}) + minetest.set_node(above2, {name = "doors:hidden", param2 = (dir + 3) % 4}) + else + minetest.set_node(pos, {name = name .. "_a", param2 = dir}) + minetest.set_node(above, {name = "doors:hidden", param2 = dir}) + minetest.set_node(above2, {name = "doors:hidden", param2 = dir}) + end + + local meta = minetest.get_meta(pos) + meta:set_int("state", state) + + if def.protected then + 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 + + on_place_node(pos, minetest.get_node(pos), + placer, node, itemstack, pointed_thing) + + return itemstack + end + }) + def.inventory_image = nil + + if def.recipe then + minetest.register_craft({ + output = name, + recipe = def.recipe, + }) + end + def.recipe = nil + + if not def.sounds then + def.sounds = default.node_sound_wood_defaults() + end + + if not def.sound_open then + def.sound_open = "doors_door_open" + end + + if not def.sound_close then + def.sound_close = "doors_door_close" + end + + def.groups.not_in_creative_inventory = 1 + def.groups.door = 1 + def.drop = name + def.door = { + name = name, + sounds = { def.sound_close, def.sound_open }, + } + + def.on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) + _doors.door_toggle(pos, node, clicker) + return itemstack + end + def.after_dig_node = function(pos, node, meta, digger) + minetest.remove_node({x = pos.x, y = pos.y + 1, z = pos.z}) + minetest.remove_node({x = pos.x, y = pos.y + 2, z = pos.z}) + nodeupdate({x = pos.x, y = pos.y + 2, z = pos.z}) + end + def.on_rotate = false + + if def.protected then + def.can_dig = can_dig_door + def.on_blast = function() end + else + def.on_blast = function(pos, intensity) + minetest.remove_node(pos) + -- hidden node doesn't get blasted away. + minetest.remove_node({x = pos.x, y = pos.y + 1, z = pos.z}) + minetest.remove_node({x = pos.x, y = pos.y + 2, z = pos.z}) + return {name} + end + end + + def.on_destruct = function(pos) + minetest.remove_node({x = pos.x, y = pos.y + 1, z = pos.z}) + minetest.remove_node({x = pos.x, y = pos.y + 2, z = pos.z}) + end + + def.drawtype = "mesh" + def.paramtype = "light" + def.paramtype2 = "facedir" + def.sunlight_propagates = true + def.walkable = true + def.is_ground_content = false + def.buildable_to = false + def.selection_box = {type = "fixed", fixed = {-1/2,-1/2,-1/2,1/2,2.5,-6/16}} + def.collision_box = {type = "fixed", fixed = {-1/2,-1/2,-1/2,1/2,2.5,-6/16}} + + def.mesh = "door3_a.obj" + minetest.register_node(":" .. name .. "_a", def) + + def.mesh = "door3_b.obj" + minetest.register_node(":" .. name .. "_b", def) + + _doors.registered_doors3[name .. "_a"] = true + _doors.registered_doors3[name .. "_b"] = true +end + +doors.register3("door3_wood", { + tiles = {{ name = "doors_door3_wood.png", backface_culling = true }}, + description = "Wooden Door 3 Nodes", + inventory_image = "doors3_item_wood.png", + groups = { snappy = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 2 }, + recipe = { + {"", "", ""}, + {"", "doors:door_wood", ""}, + {"", "doors:door_wood", ""}, + } +}) + +doors.register3("door3_steel", { + tiles = {{ name = "doors_door3_steel.png", backface_culling = true }}, + description = "Steel Door 3 Nodes", + inventory_image = "doors3_item_steel.png", + protected = true, + groups = { snappy = 1, bendy = 2, cracky = 1, melty = 2, level = 2 }, + sound_open = "doors_steel_door_open", + sound_close = "doors_steel_door_close", + recipe = { + {"", "", ""}, + {"", "doors:door_steel", ""}, + {"", "doors:door_steel", ""}, + } +}) + +doors.register3("door3_glass", { + tiles = { "doors_door3_glass.png"}, + description = "Glass Door 3 Nodes", + inventory_image = "doors3_item_glass.png", + groups = { snappy=1, cracky=1, oddly_breakable_by_hand=3 }, + sounds = default.node_sound_glass_defaults(), + recipe = { + {"", "", ""}, + {"", "doors:door_glass", ""}, + {"", "doors:door_glass", ""}, + } +}) + +doors.register3("door3_obsidian_glass", { + tiles = { "doors_door3_obsidian_glass.png" }, + description = "Obsidian Glass Door 3 Nodes", + inventory_image = "doors3_item_obsidian_glass.png", + groups = { snappy=1, cracky=1, oddly_breakable_by_hand=3 }, + sounds = default.node_sound_glass_defaults(), + recipe = { + {"", "", ""}, + {"", "doors:door_obsidian_glass", ""}, + {"", "doors:door_obsidian_glass", ""}, + }, +}) + + +-- From BFD: Cherry planks doors +doors.register3("door3_cherry", { + tiles = { "doors_door3_cherry.png" }, + description = "Cherry Door 3 Nodes", + inventory_image = "doors3_item_cherry.png", + groups = {choppy=2, oddly_breakable_by_hand=2, flammable=2, door=1}, + sounds = default.node_sound_wood_defaults(), + recipe = { + {"", "", ""}, + {"", "doors:door_cherry", ""}, + {"", "doors:door_cherry", ""}, + }, +}) + +-- doors prison MFF +doors.register3("door3_prison", { + tiles = { "doors_door3_prison.png" }, + description = "Prison Door 3 Nodes", + inventory_image = "doors3_item_prison.png", + groups = {snappy=1,bendy=2,cracky=1,melty=2,level=2,door=1}, + protected = true, + sounds = default.node_sound_stone_defaults(), + recipe = { + {"", "", ""}, + {"", "doors:door_prison", ""}, + {"", "doors:door_prison", ""}, + } +}) diff --git a/mods/doors/license.txt b/mods/doors/license.txt new file mode 100644 index 00000000..8ce73c49 --- /dev/null +++ b/mods/doors/license.txt @@ -0,0 +1,164 @@ +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2012-2016 PilzAdam +Copyright (C) 2014-2016 BlockMen +Copyright (C) 2015-2016 sofar (sofar@foo-projects.org) +Copyright (C) 2012-2016 Various Minetest developers and contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT + + +Licenses of media (textures, models and sounds) +----------------------------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2011-2016 Fernando Zapata +Copyright (C) 2014-2016 celeron55 +Copyright (C) 2012-2016 PilzAdam +Copyright (C) 2014-2016 BlockMen +Copyright (C) 2015-2016 sofar +Copyright (C) 2016 red-001 +Copyright (C) 2016 paramat + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike — If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ + +----------------------- + +Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) +Copyright (C) 2014-2016 PenguinDad + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike — If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/4.0/ + +----------------------- + +Attribution 3.0 Unported (CC BY 3.0) +Copyright (C) 2014 CGEffex +Copyright (C) 2014 bennstir +Copyright (C) 2016 BarkersPinhead +Copyright (C) 2016 rivernile7 +Copyright (C) 2016 HazMatt + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by/3.0/ + +----------------------- + +CC0 1.0 Universal (CC0 1.0) Public Domain Dedication +mhtaylor67 +SkeetMasterFunk69 + +No Copyright + +The person who associated a work with this deed has dedicated the work to the public +domain by waiving all of his or her rights to the work worldwide under copyright law, +including all related and neighboring rights, to the extent allowed by law. + +You can copy, modify, distribute and perform the work, even for commercial purposes, all +without asking permission. See Other Information below. + +Other Information + +In no way are the patent or trademark rights of any person affected by CC0, nor are the +rights that other persons may have in the work or in how the work is used, such as +publicity or privacy rights. +Unless expressly stated otherwise, the person who associated a work with this deed makes +no warranties about the work, and disclaims liability for all uses of the work, to the +fullest extent permitted by applicable law. +When using or citing the work, you should not imply endorsement by the author or the +affirmer. + +For more details: +https://creativecommons.org/publicdomain/zero/1.0/ diff --git a/mods/doors/models/door3_a.obj b/mods/doors/models/door3_a.obj new file mode 100644 index 00000000..1865e5e0 --- /dev/null +++ b/mods/doors/models/door3_a.obj @@ -0,0 +1,42 @@ +# Blender v2.76 (sub 0) OBJ File: '3node_door.blend' +# www.blender.org +mtllib 3node_door.mtl +o Cube_Cube.001 +v -0.499000 -0.499000 -0.375000 +v 0.499000 -0.499000 -0.375000 +v 0.498998 2.498000 -0.375000 +v -0.499000 2.498000 -0.375000 +v -0.499000 2.498000 -0.499000 +v -0.499000 -0.499000 -0.499000 +v 0.498998 2.498000 -0.499000 +v 0.499000 -0.499000 -0.499000 +vt 0.842905 0.000000 +vt 0.421453 0.000000 +vt 0.421453 1.000000 +vt 0.842905 1.000000 +vt 0.895270 0.000000 +vt 0.895270 1.000000 +vt 1.000000 0.665999 +vt 0.947635 0.665999 +vt 0.947635 0.333000 +vt 1.000000 0.333000 +vt 0.000000 0.000000 +vt 0.000000 1.000000 +vt 0.947635 0.000000 +vt 0.947635 1.000000 +vt 1.000000 0.000000 +vn 0.000000 -0.000000 1.000000 +vn -1.000000 0.000000 0.000000 +vn 0.000000 1.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 -1.000000 -0.000000 +usemtl None +s off +f 1/1/1 2/2/1 3/3/1 4/4/1 +f 1/4/2 4/1/2 5/5/2 6/6/2 +f 3/7/3 7/8/3 5/9/3 4/10/3 +f 6/11/4 5/12/4 7/3/4 8/2/4 +f 2/5/5 8/13/5 7/14/5 3/6/5 +s 1 +f 8/13/6 2/15/6 1/10/6 6/9/6 diff --git a/mods/doors/models/door3_b.obj b/mods/doors/models/door3_b.obj new file mode 100644 index 00000000..27b62403 --- /dev/null +++ b/mods/doors/models/door3_b.obj @@ -0,0 +1,42 @@ +# Blender v2.76 (sub 0) OBJ File: '3node_door_b.blend' +# www.blender.org +mtllib 3node_door_b.mtl +o Cube_Cube.001 +v -0.499000 -0.499000 -0.375000 +v 0.499000 -0.499000 -0.375000 +v 0.498998 2.498000 -0.375000 +v -0.499000 2.498000 -0.375000 +v -0.499000 2.498000 -0.499000 +v -0.499000 -0.499000 -0.499000 +v 0.498998 2.498000 -0.499000 +v 0.499000 -0.499000 -0.499000 +vt 0.421453 0.000000 +vt 0.842905 0.000000 +vt 0.842905 1.000000 +vt 0.421453 1.000000 +vt 0.895270 0.000000 +vt 0.895270 1.000000 +vt 1.000000 0.665999 +vt 0.947635 0.665999 +vt 0.947635 0.333000 +vt 1.000000 0.333000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 0.947635 0.000000 +vt 0.947635 1.000000 +vt 1.000000 0.000000 +vn 0.000000 -0.000000 1.000000 +vn -1.000000 0.000000 0.000000 +vn 0.000000 1.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 -1.000000 -0.000000 +usemtl None +s off +f 1/1/1 2/2/1 3/3/1 4/4/1 +f 1/3/2 4/2/2 5/5/2 6/6/2 +f 3/7/3 7/8/3 5/9/3 4/10/3 +f 6/1/4 5/4/4 7/11/4 8/12/4 +f 2/5/5 8/13/5 7/14/5 3/6/5 +s 1 +f 8/13/6 2/15/6 1/10/6 6/9/6 diff --git a/mods/doors/models/door_a.obj b/mods/doors/models/door_a.obj new file mode 100644 index 00000000..bd5127b5 --- /dev/null +++ b/mods/doors/models/door_a.obj @@ -0,0 +1,40 @@ +# Blender v2.76 (sub 0) OBJ File: 'door_a.blend' +# www.blender.org +mtllib door_a.mtl +o Cube_Cube.001 +v 0.499000 -0.499000 -0.499000 +v 0.499000 1.499000 -0.499000 +v 0.499000 -0.499000 -0.375000 +v 0.499000 1.499000 -0.375000 +v -0.499000 -0.499000 -0.499000 +v -0.499000 1.499000 -0.499000 +v -0.499000 -0.499000 -0.375000 +v -0.499000 1.499000 -0.375000 +vt 0.842105 1.000000 +vt 0.894737 1.000000 +vt 0.894737 0.000000 +vt 0.842105 0.000000 +vt 0.421053 1.000000 +vt 0.421053 0.000000 +vt 0.947368 1.000000 +vt 0.947368 0.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 0.500000 +vt 0.947368 0.500000 +vt 1.000000 1.000000 +vt 1.000000 0.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn -1.000000 0.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 1.000000 0.000000 +usemtl None +s off +f 2/1/1 4/2/1 3/3/1 1/4/1 +f 4/5/2 8/1/2 7/4/2 3/6/2 +f 8/2/3 6/7/3 5/8/3 7/3/3 +f 6/9/4 2/5/4 1/6/4 5/10/4 +f 1/11/5 3/12/5 7/7/5 5/13/5 +f 6/14/6 8/8/6 4/12/6 2/11/6 diff --git a/mods/doors/models/door_b.obj b/mods/doors/models/door_b.obj new file mode 100644 index 00000000..c5607b87 --- /dev/null +++ b/mods/doors/models/door_b.obj @@ -0,0 +1,40 @@ +# Blender v2.76 (sub 0) OBJ File: 'door_b.blend' +# www.blender.org +mtllib door_b.mtl +o Cube_Cube.001 +v -0.499000 -0.499000 -0.499000 +v -0.499000 1.499000 -0.499000 +v -0.499000 -0.499000 -0.375000 +v -0.499000 1.499000 -0.375000 +v 0.499000 -0.499000 -0.499000 +v 0.499000 1.499000 -0.499000 +v 0.499000 -0.499000 -0.375000 +v 0.499000 1.499000 -0.375000 +vt 0.842105 1.000000 +vt 0.842105 0.000000 +vt 0.894737 0.000000 +vt 0.894737 1.000000 +vt 0.421053 1.000000 +vt 0.421053 0.000000 +vt 0.947368 0.000000 +vt 0.947368 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 0.500000 +vt 0.947368 0.500000 +vt 1.000000 1.000000 +vn -1.000000 0.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 1.000000 0.000000 +usemtl None +s off +f 2/1/1 1/2/1 3/3/1 4/4/1 +f 4/5/2 3/6/2 7/2/2 8/1/2 +f 8/4/3 7/3/3 5/7/3 6/8/3 +f 6/9/4 5/10/4 1/6/4 2/5/4 +f 1/11/5 5/12/5 7/13/5 3/7/5 +f 6/8/6 2/13/6 4/12/6 8/14/6 diff --git a/mods/doors/models/doors_fencegate_closed.obj b/mods/doors/models/doors_fencegate_closed.obj new file mode 100644 index 00000000..0050f70e --- /dev/null +++ b/mods/doors/models/doors_fencegate_closed.obj @@ -0,0 +1,106 @@ +# Blender v2.76 (sub 0) OBJ File: 'gate_closed.blend' +# www.blender.org +mtllib gate_closed.mtl +o Cube_Cube.001 +v -0.625000 -0.500000 0.125000 +v -0.625000 0.500100 0.125000 +v -0.625000 -0.500000 -0.125000 +v -0.625000 0.500100 -0.125000 +v -0.375000 -0.500000 0.125000 +v -0.375000 0.500100 0.125000 +v -0.375000 -0.500000 -0.125000 +v -0.375000 0.500100 -0.125000 +v 0.375000 -0.500000 0.125000 +v 0.375000 0.500100 0.125000 +v 0.375000 -0.500000 -0.125000 +v 0.375000 0.500100 -0.125000 +v 0.625000 -0.500000 0.125000 +v 0.625000 0.500100 0.125000 +v 0.625000 -0.500000 -0.125000 +v 0.625000 0.500100 -0.125000 +v -0.375000 0.187500 0.062500 +v -0.375000 0.312500 0.062500 +v -0.375000 0.187500 -0.062500 +v -0.375000 0.312500 -0.062500 +v 0.375000 0.187500 0.062500 +v 0.375000 0.312500 0.062500 +v 0.375000 0.187500 -0.062500 +v 0.375000 0.312500 -0.062500 +v -0.374831 0.187348 0.062500 +v -0.156342 0.187363 0.062500 +v -0.374831 0.187348 -0.062500 +v -0.156342 0.187363 -0.062500 +v 0.374981 -0.343683 0.062500 +v 0.375065 -0.187304 0.062500 +v 0.374981 -0.343683 -0.062500 +v 0.375065 -0.187304 -0.062500 +vt 0.000000 0.750000 +vt 0.000000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 0.750000 +vt 1.000000 1.000000 +vt -0.000000 1.000000 +vt 1.000000 -0.000000 +vt 1.000000 0.250000 +vt 0.000000 0.250000 +vt -0.000000 0.000000 +vt 0.250000 0.000000 +vt 0.250000 0.250000 +vt 0.250000 0.750000 +vt 0.250000 1.000000 +vt 0.500000 -0.000000 +vt 0.500000 0.250000 +vt 0.500000 0.750000 +vt 0.500000 1.000000 +vt 1.000000 0.625000 +vt 0.000000 0.625000 +vt 1.000000 0.875000 +vt 0.000000 0.875000 +vt -0.000000 0.687500 +vt 0.000000 0.562500 +vt 1.000000 0.562500 +vt 1.000000 0.687500 +vt 0.813740 0.249033 +vt 0.201557 0.249293 +vt 0.120995 0.125498 +vt 0.987404 0.125469 +vt 0.125000 0.375000 +vt 0.812500 0.375000 +vt 0.937500 0.500000 +vt 0.062500 0.500000 +vt 0.000000 0.125000 +vt 1.000000 0.125000 +vt 0.312500 0.437500 +vt 0.312500 0.312500 +vt 1.000000 0.312500 +vt 1.000000 0.437500 +vn -1.000000 0.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 1.000000 0.000000 +vn -0.578000 -0.816100 0.000000 +vn 0.576200 0.817300 0.000000 +usemtl None +s off +f 2/1/1 4/2/1 3/3/1 1/4/1 +f 4/4/2 8/5/2 7/6/2 3/1/2 +f 8/7/3 6/8/3 5/9/3 7/10/3 +f 6/2/4 2/9/4 1/8/4 5/3/4 +f 1/9/5 3/10/5 7/11/5 5/12/5 +f 6/6/6 8/1/6 4/13/6 2/14/6 +f 10/1/1 12/2/1 11/3/1 9/4/1 +f 12/2/2 16/9/2 15/8/2 11/3/2 +f 16/7/3 14/8/3 13/9/3 15/10/3 +f 14/4/4 10/5/4 9/6/4 13/1/4 +f 9/12/5 11/11/5 15/15/5 13/16/5 +f 14/14/6 16/13/6 12/17/6 10/18/6 +f 20/2/2 24/3/2 23/19/2 19/20/2 +f 22/1/4 18/4/4 17/21/4 21/22/4 +f 17/23/5 19/24/5 23/25/5 21/26/5 +f 22/21/6 24/5/6 20/6/6 18/22/6 +f 28/27/2 32/28/2 31/29/2 27/30/2 +f 30/31/4 26/32/4 25/33/4 29/34/4 +f 25/35/7 27/10/7 31/7/7 29/36/7 +f 30/37/8 32/38/8 28/39/8 26/40/8 diff --git a/mods/doors/models/doors_fencegate_open.obj b/mods/doors/models/doors_fencegate_open.obj new file mode 100644 index 00000000..3fb727f4 --- /dev/null +++ b/mods/doors/models/doors_fencegate_open.obj @@ -0,0 +1,112 @@ +# Blender v2.76 (sub 0) OBJ File: 'gate_open.blend' +# www.blender.org +mtllib gate_open.mtl +o Cube_Cube.001 +v -0.625000 -0.500000 0.125000 +v -0.625000 0.500100 0.125000 +v -0.625000 -0.500000 -0.125000 +v -0.625000 0.500100 -0.125000 +v -0.375000 -0.500000 0.125000 +v -0.375000 0.500100 0.125000 +v -0.375000 -0.500000 -0.125000 +v -0.375000 0.500100 -0.125000 +v 0.375000 -0.500000 0.125000 +v 0.375000 0.500100 0.125000 +v 0.375000 -0.500000 -0.125000 +v 0.375000 0.500100 -0.125000 +v 0.625000 -0.500000 0.125000 +v 0.625000 0.500100 0.125000 +v 0.625000 -0.500000 -0.125000 +v 0.625000 0.500100 -0.125000 +v 0.434859 0.187500 -0.872359 +v 0.434859 0.312500 -0.872359 +v 0.559859 0.187500 -0.872359 +v 0.559859 0.312500 -0.872359 +v 0.434859 0.187500 -0.122359 +v 0.434859 0.312500 -0.122359 +v 0.559859 0.187500 -0.122359 +v 0.559859 0.312500 -0.122359 +v 0.434859 0.187348 -0.872190 +v 0.434859 0.187363 -0.653701 +v 0.559859 0.187348 -0.872190 +v 0.559859 0.187363 -0.653701 +v 0.434859 -0.343683 -0.122379 +v 0.434859 -0.187304 -0.122294 +v 0.559859 -0.343683 -0.122379 +v 0.559859 -0.187304 -0.122294 +v 0.499560 -0.442900 0.005495 +vt 0.000000 0.750000 +vt 0.000000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 0.750000 +vt 1.000000 1.000000 +vt -0.000000 1.000000 +vt 1.000000 -0.000000 +vt 1.000000 0.250000 +vt 0.000000 0.250000 +vt -0.000000 0.000000 +vt 0.250000 0.000000 +vt 0.250000 0.250000 +vt 0.250000 0.750000 +vt 0.250000 1.000000 +vt 0.500000 -0.000000 +vt 0.500000 0.250000 +vt 0.500000 0.750000 +vt 0.500000 1.000000 +vt 1.000000 0.625000 +vt 0.000000 0.625000 +vt 1.000000 0.875000 +vt 0.000000 0.875000 +vt -0.000000 0.687500 +vt 0.000000 0.562500 +vt 1.000000 0.562500 +vt 1.000000 0.687500 +vt 0.813740 0.249033 +vt 0.201557 0.249293 +vt 0.120995 0.125498 +vt 0.987404 0.125469 +vt 0.125000 0.375000 +vt 0.812500 0.375000 +vt 0.937500 0.500000 +vt 0.062500 0.500000 +vt 0.000000 0.125000 +vt 1.000000 0.125000 +vt 0.312500 0.437500 +vt 0.312500 0.312500 +vt 1.000000 0.312500 +vt 1.000000 0.437500 +vt 0.312500 0.625000 +vt 0.312500 0.500000 +vt 0.187500 0.500000 +vt 0.187500 0.625000 +vn -1.000000 0.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 1.000000 0.000000 +vn 0.000000 -0.816100 -0.578000 +vn 0.000000 0.817300 0.576200 +usemtl None +s off +f 2/1/1 4/2/1 3/3/1 1/4/1 +f 4/4/2 8/5/2 7/6/2 3/1/2 +f 8/7/3 6/8/3 5/9/3 7/10/3 +f 6/2/4 2/9/4 1/8/4 5/3/4 +f 1/9/5 3/10/5 7/11/5 5/12/5 +f 6/6/6 8/1/6 4/13/6 2/14/6 +f 10/1/1 12/2/1 11/3/1 9/4/1 +f 12/2/2 16/9/2 15/8/2 11/3/2 +f 16/7/3 14/8/3 13/9/3 15/10/3 +f 14/4/4 10/5/4 9/6/4 13/1/4 +f 9/12/5 11/11/5 15/15/5 13/16/5 +f 14/14/6 16/13/6 12/17/6 10/18/6 +f 20/2/3 24/3/3 23/19/3 19/20/3 +f 22/1/1 18/4/1 17/21/1 21/22/1 +f 17/23/5 19/24/5 23/25/5 21/26/5 +f 22/21/6 24/5/6 20/6/6 18/22/6 +f 28/27/3 32/28/3 31/29/3 27/30/3 +f 30/31/1 26/32/1 25/33/1 29/34/1 +f 25/35/7 27/10/7 31/7/7 29/36/7 +f 30/37/8 32/38/8 28/39/8 26/40/8 +f 17/41/2 18/42/2 20/43/2 19/44/2 diff --git a/mods/doors/sounds/door_close.ogg b/mods/doors/sounds/door_close.ogg deleted file mode 100644 index a39452ba..00000000 Binary files a/mods/doors/sounds/door_close.ogg and /dev/null differ diff --git a/mods/doors/sounds/door_open.ogg b/mods/doors/sounds/door_open.ogg deleted file mode 100644 index 7ec7f480..00000000 Binary files a/mods/doors/sounds/door_open.ogg and /dev/null differ diff --git a/mods/doors/sounds/doors_door_close.ogg b/mods/doors/sounds/doors_door_close.ogg new file mode 100755 index 00000000..fede4af3 Binary files /dev/null and b/mods/doors/sounds/doors_door_close.ogg differ diff --git a/mods/doors/sounds/doors_door_open.ogg b/mods/doors/sounds/doors_door_open.ogg new file mode 100755 index 00000000..9a4c4f11 Binary files /dev/null and b/mods/doors/sounds/doors_door_open.ogg differ diff --git a/mods/doors/sounds/doors_fencegate_close.ogg b/mods/doors/sounds/doors_fencegate_close.ogg new file mode 100644 index 00000000..9e8a6988 Binary files /dev/null and b/mods/doors/sounds/doors_fencegate_close.ogg differ diff --git a/mods/doors/sounds/doors_fencegate_open.ogg b/mods/doors/sounds/doors_fencegate_open.ogg new file mode 100644 index 00000000..b94f8a19 Binary files /dev/null and b/mods/doors/sounds/doors_fencegate_open.ogg differ diff --git a/mods/doors/sounds/doors_glass_door_close.ogg b/mods/doors/sounds/doors_glass_door_close.ogg new file mode 100644 index 00000000..67cb3431 Binary files /dev/null and b/mods/doors/sounds/doors_glass_door_close.ogg differ diff --git a/mods/doors/sounds/doors_glass_door_open.ogg b/mods/doors/sounds/doors_glass_door_open.ogg new file mode 100644 index 00000000..6dc9b505 Binary files /dev/null and b/mods/doors/sounds/doors_glass_door_open.ogg differ diff --git a/mods/doors/sounds/doors_steel_door_close.ogg b/mods/doors/sounds/doors_steel_door_close.ogg new file mode 100644 index 00000000..f762808e Binary files /dev/null and b/mods/doors/sounds/doors_steel_door_close.ogg differ diff --git a/mods/doors/sounds/doors_steel_door_open.ogg b/mods/doors/sounds/doors_steel_door_open.ogg new file mode 100644 index 00000000..d55feaad Binary files /dev/null and b/mods/doors/sounds/doors_steel_door_open.ogg differ diff --git a/mods/doors/textures/door_brown.png b/mods/doors/textures/door_brown.png deleted file mode 100644 index 74785ec8..00000000 Binary files a/mods/doors/textures/door_brown.png and /dev/null differ diff --git a/mods/doors/textures/door_glass.png b/mods/doors/textures/door_glass.png deleted file mode 100644 index 49ec245c..00000000 Binary files a/mods/doors/textures/door_glass.png and /dev/null differ diff --git a/mods/doors/textures/door_glass_a.png b/mods/doors/textures/door_glass_a.png deleted file mode 100644 index b4c7fb5f..00000000 Binary files a/mods/doors/textures/door_glass_a.png and /dev/null differ diff --git a/mods/doors/textures/door_glass_b.png b/mods/doors/textures/door_glass_b.png deleted file mode 100644 index b4c7fb5f..00000000 Binary files a/mods/doors/textures/door_glass_b.png and /dev/null differ diff --git a/mods/doors/textures/door_glass_side.png b/mods/doors/textures/door_glass_side.png deleted file mode 100644 index 755672bd..00000000 Binary files a/mods/doors/textures/door_glass_side.png and /dev/null differ diff --git a/mods/doors/textures/door_grey.png b/mods/doors/textures/door_grey.png deleted file mode 100644 index ca16af0c..00000000 Binary files a/mods/doors/textures/door_grey.png and /dev/null differ diff --git a/mods/doors/textures/door_obsidian_glass.png b/mods/doors/textures/door_obsidian_glass.png deleted file mode 100644 index c3277204..00000000 Binary files a/mods/doors/textures/door_obsidian_glass.png and /dev/null differ diff --git a/mods/doors/textures/door_obsidian_glass_b.png b/mods/doors/textures/door_obsidian_glass_b.png deleted file mode 100644 index ef5f8b5a..00000000 Binary files a/mods/doors/textures/door_obsidian_glass_b.png and /dev/null differ diff --git a/mods/doors/textures/door_obsidian_glass_side.png b/mods/doors/textures/door_obsidian_glass_side.png deleted file mode 100644 index 0df598b8..00000000 Binary files a/mods/doors/textures/door_obsidian_glass_side.png and /dev/null differ diff --git a/mods/doors/textures/door_steel.png b/mods/doors/textures/door_steel.png deleted file mode 100644 index 042a1bc0..00000000 Binary files a/mods/doors/textures/door_steel.png and /dev/null differ diff --git a/mods/doors/textures/door_steel_a.png b/mods/doors/textures/door_steel_a.png deleted file mode 100644 index 59603c17..00000000 Binary files a/mods/doors/textures/door_steel_a.png and /dev/null differ diff --git a/mods/doors/textures/door_steel_b.png b/mods/doors/textures/door_steel_b.png deleted file mode 100644 index bafacd86..00000000 Binary files a/mods/doors/textures/door_steel_b.png and /dev/null differ diff --git a/mods/doors/textures/door_trapdoor.png b/mods/doors/textures/door_trapdoor.png deleted file mode 100644 index 3039dd80..00000000 Binary files a/mods/doors/textures/door_trapdoor.png and /dev/null differ diff --git a/mods/doors/textures/door_trapdoor_side.png b/mods/doors/textures/door_trapdoor_side.png deleted file mode 100644 index c8605230..00000000 Binary files a/mods/doors/textures/door_trapdoor_side.png and /dev/null differ diff --git a/mods/doors/textures/door_wood.png b/mods/doors/textures/door_wood.png deleted file mode 100644 index d3a62ab1..00000000 Binary files a/mods/doors/textures/door_wood.png and /dev/null differ diff --git a/mods/doors/textures/door_wood_a.png b/mods/doors/textures/door_wood_a.png deleted file mode 100644 index a878e515..00000000 Binary files a/mods/doors/textures/door_wood_a.png and /dev/null differ diff --git a/mods/doors/textures/door_wood_b.png b/mods/doors/textures/door_wood_b.png deleted file mode 100644 index 6842057a..00000000 Binary files a/mods/doors/textures/door_wood_b.png and /dev/null differ diff --git a/mods/doors/textures/doors3_item_cherry.png b/mods/doors/textures/doors3_item_cherry.png new file mode 100644 index 00000000..72ccb28f Binary files /dev/null and b/mods/doors/textures/doors3_item_cherry.png differ diff --git a/mods/doors/textures/doors3_item_glass.png b/mods/doors/textures/doors3_item_glass.png new file mode 100644 index 00000000..b3d524f5 Binary files /dev/null and b/mods/doors/textures/doors3_item_glass.png differ diff --git a/mods/doors/textures/doors3_item_obsidian_glass.png b/mods/doors/textures/doors3_item_obsidian_glass.png new file mode 100644 index 00000000..2e452c5b Binary files /dev/null and b/mods/doors/textures/doors3_item_obsidian_glass.png differ diff --git a/mods/doors/textures/doors3_item_prison.png b/mods/doors/textures/doors3_item_prison.png new file mode 100644 index 00000000..cc9b3d41 Binary files /dev/null and b/mods/doors/textures/doors3_item_prison.png differ diff --git a/mods/doors/textures/doors3_item_steel.png b/mods/doors/textures/doors3_item_steel.png new file mode 100755 index 00000000..a87e23bd Binary files /dev/null and b/mods/doors/textures/doors3_item_steel.png differ diff --git a/mods/doors/textures/doors3_item_wood.png b/mods/doors/textures/doors3_item_wood.png new file mode 100644 index 00000000..1982a594 Binary files /dev/null and b/mods/doors/textures/doors3_item_wood.png differ diff --git a/mods/doors/textures/doors_blank.png b/mods/doors/textures/doors_blank.png new file mode 100644 index 00000000..1914264c Binary files /dev/null and b/mods/doors/textures/doors_blank.png differ diff --git a/mods/doors/textures/doors_door3_cherry.png b/mods/doors/textures/doors_door3_cherry.png new file mode 100644 index 00000000..c80eb6bc Binary files /dev/null and b/mods/doors/textures/doors_door3_cherry.png differ diff --git a/mods/doors/textures/doors_door3_glass.png b/mods/doors/textures/doors_door3_glass.png new file mode 100644 index 00000000..ab776ce6 Binary files /dev/null and b/mods/doors/textures/doors_door3_glass.png differ diff --git a/mods/doors/textures/doors_door3_obsidian_glass.png b/mods/doors/textures/doors_door3_obsidian_glass.png new file mode 100644 index 00000000..d81cd544 Binary files /dev/null and b/mods/doors/textures/doors_door3_obsidian_glass.png differ diff --git a/mods/doors/textures/doors_door3_prison.png b/mods/doors/textures/doors_door3_prison.png new file mode 100644 index 00000000..b6abf08c Binary files /dev/null and b/mods/doors/textures/doors_door3_prison.png differ diff --git a/mods/doors/textures/doors_door3_steel.png b/mods/doors/textures/doors_door3_steel.png new file mode 100644 index 00000000..e0bab518 Binary files /dev/null and b/mods/doors/textures/doors_door3_steel.png differ diff --git a/mods/doors/textures/doors_door3_wood.png b/mods/doors/textures/doors_door3_wood.png new file mode 100644 index 00000000..3aefdba1 Binary files /dev/null and b/mods/doors/textures/doors_door3_wood.png differ diff --git a/mods/doors/textures/doors_door_cherry.png b/mods/doors/textures/doors_door_cherry.png new file mode 100644 index 00000000..1a1fb727 Binary files /dev/null and b/mods/doors/textures/doors_door_cherry.png differ diff --git a/mods/doors/textures/doors_door_gardengate_white.png b/mods/doors/textures/doors_door_gardengate_white.png new file mode 100644 index 00000000..79e5da06 Binary files /dev/null and b/mods/doors/textures/doors_door_gardengate_white.png differ diff --git a/mods/doors/textures/doors_door_glass.png b/mods/doors/textures/doors_door_glass.png new file mode 100644 index 00000000..ea9173b4 Binary files /dev/null and b/mods/doors/textures/doors_door_glass.png differ diff --git a/mods/doors/textures/doors_door_obsidian_glass.png b/mods/doors/textures/doors_door_obsidian_glass.png new file mode 100644 index 00000000..8a92b0e8 Binary files /dev/null and b/mods/doors/textures/doors_door_obsidian_glass.png differ diff --git a/mods/doors/textures/doors_door_prison.png b/mods/doors/textures/doors_door_prison.png new file mode 100644 index 00000000..b013f07c Binary files /dev/null and b/mods/doors/textures/doors_door_prison.png differ diff --git a/mods/doors/textures/doors_door_steel.png b/mods/doors/textures/doors_door_steel.png new file mode 100644 index 00000000..3e95a0b9 Binary files /dev/null and b/mods/doors/textures/doors_door_steel.png differ diff --git a/mods/doors/textures/doors_door_tin.png b/mods/doors/textures/doors_door_tin.png new file mode 100644 index 00000000..6119c90f Binary files /dev/null and b/mods/doors/textures/doors_door_tin.png differ diff --git a/mods/doors/textures/doors_door_wood.png b/mods/doors/textures/doors_door_wood.png new file mode 100644 index 00000000..5bd158d3 Binary files /dev/null and b/mods/doors/textures/doors_door_wood.png differ diff --git a/mods/doors/textures/doors_item_cherry.png b/mods/doors/textures/doors_item_cherry.png new file mode 100644 index 00000000..1c304926 Binary files /dev/null and b/mods/doors/textures/doors_item_cherry.png differ diff --git a/mods/doors/textures/doors_item_gardengate_white.png b/mods/doors/textures/doors_item_gardengate_white.png new file mode 100644 index 00000000..80bbe494 Binary files /dev/null and b/mods/doors/textures/doors_item_gardengate_white.png differ diff --git a/mods/doors/textures/doors_item_glass.png b/mods/doors/textures/doors_item_glass.png new file mode 100644 index 00000000..6fc01305 Binary files /dev/null and b/mods/doors/textures/doors_item_glass.png differ diff --git a/mods/doors/textures/doors_item_obsidian_glass.png b/mods/doors/textures/doors_item_obsidian_glass.png new file mode 100644 index 00000000..1f1895d2 Binary files /dev/null and b/mods/doors/textures/doors_item_obsidian_glass.png differ diff --git a/mods/doors/textures/doors_item_prison.png b/mods/doors/textures/doors_item_prison.png new file mode 100644 index 00000000..bdbd87d9 Binary files /dev/null and b/mods/doors/textures/doors_item_prison.png differ diff --git a/mods/doors/textures/doors_item_steel.png b/mods/doors/textures/doors_item_steel.png new file mode 100644 index 00000000..e0e15377 Binary files /dev/null and b/mods/doors/textures/doors_item_steel.png differ diff --git a/mods/doors/textures/doors_item_tin.png b/mods/doors/textures/doors_item_tin.png new file mode 100644 index 00000000..c2c4a427 Binary files /dev/null and b/mods/doors/textures/doors_item_tin.png differ diff --git a/mods/doors/textures/doors_item_wood.png b/mods/doors/textures/doors_item_wood.png new file mode 100644 index 00000000..ad240961 Binary files /dev/null and b/mods/doors/textures/doors_item_wood.png differ diff --git a/mods/doors/textures/doors_trapdoor.png b/mods/doors/textures/doors_trapdoor.png new file mode 100644 index 00000000..e13ae373 Binary files /dev/null and b/mods/doors/textures/doors_trapdoor.png differ diff --git a/mods/doors/textures/doors_trapdoor_cherry.png b/mods/doors/textures/doors_trapdoor_cherry.png new file mode 100644 index 00000000..ef16036d Binary files /dev/null and b/mods/doors/textures/doors_trapdoor_cherry.png differ diff --git a/mods/doors/textures/doors_trapdoor_side.png b/mods/doors/textures/doors_trapdoor_side.png new file mode 100644 index 00000000..2a8d686f Binary files /dev/null and b/mods/doors/textures/doors_trapdoor_side.png differ diff --git a/mods/doors/textures/doors_trapdoor_steel.png b/mods/doors/textures/doors_trapdoor_steel.png new file mode 100644 index 00000000..4ba507d6 Binary files /dev/null and b/mods/doors/textures/doors_trapdoor_steel.png differ diff --git a/mods/doors/textures/doors_trapdoor_steel_side.png b/mods/doors/textures/doors_trapdoor_steel_side.png new file mode 100644 index 00000000..68ad0df8 Binary files /dev/null and b/mods/doors/textures/doors_trapdoor_steel_side.png differ diff --git a/mods/dye/README.txt b/mods/dye/README.txt old mode 100644 new mode 100755 index d414c2cc..a2fbdd24 --- a/mods/dye/README.txt +++ b/mods/dye/README.txt @@ -1,15 +1,13 @@ -Minetest 0.4 mod: dye +Minetest Game mod: dye ====================== - +See license.txt for license information. 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. +Authors of source code +---------------------- +Originally by Perttu Ahola (celeron55) (MIT) +Various Minetest developers and contributors (MIT) +Authors of media (textures) +--------------------------- +Perttu Ahola (celeron55) (CC BY-SA 3.0) diff --git a/mods/dye/depends.txt b/mods/dye/depends.txt old mode 100644 new mode 100755 diff --git a/mods/dye/init.lua b/mods/dye/init.lua old mode 100644 new mode 100755 index ebdc9380..632764a4 --- a/mods/dye/init.lua +++ b/mods/dye/init.lua @@ -1,139 +1,112 @@ --- 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 = {} 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"} +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 +-- Make dye names and descriptions available globally --- 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 +dye.dyes = { + {"white", "White"}, + {"grey", "Grey"}, + {"dark_grey", "Dark grey"}, + {"black", "Black"}, + {"violet", "Violet"}, + {"blue", "Blue"}, + {"cyan", "Cyan"}, + {"dark_green", "Dark green"}, + {"green", "Green"}, + {"yellow", "Yellow"}, + {"brown", "Brown"}, + {"orange", "Orange"}, + {"red", "Red"}, + {"magenta", "Magenta"}, + {"pink", "Pink"}, +} --- 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 +-- This collection of colors is partly a historic thing, partly something else --- 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}}, +local dyes = { + {"white", "White dye", {dye=1, basecolor_white=1, excolor_white=1, unicolor_white=1}, true}, + {"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}, true}, + {"blue", "Blue dye", {dye=1, basecolor_blue=1, excolor_blue=1, unicolor_blue=1}, true}, + {"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}, true}, + {"brown", "Brown dye", {dye=1, basecolor_brown=1, excolor_orange=1, unicolor_dark_orange=1}}, + {"orange", "Orange dye", {dye=1, basecolor_orange=1, excolor_orange=1, unicolor_orange=1}, true}, + {"red", "Red dye", {dye=1, basecolor_red=1, excolor_red=1, unicolor_red=1}, true}, + {"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 + +for _, row in ipairs(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" + local flower = row[4] + 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] + if flower then minetest.register_craft({ - type = "shapeless", - output = 'dye:'..result..' 2', - recipe = {'dye:'..one, 'dye:'..another}, + type = "shapeless", + output = item_name .. " 4", + recipe = {"group:flower,color_" .. name}, }) end end --- Hide dyelocal -dyelocal = nil +-- Manually add coal->black dye --- EOF +minetest.register_craft({ + type = "shapeless", + output = "dye:black 4", + recipe = {"group:coal"}, +}) + +-- Mix recipes +-- Just mix everything to everything somehow sanely + +local mixbases = {"pink", "magenta", "red", "orange", "brown", "yellow", "green", "dark_green", "cyan", "blue", "violet", "black", "dark_grey", "grey", "white", "light_grey"} + +local mixes = { + -- pink, magenta, red, orange, brown, yellow, green, dark_green, cyan, blue, violet, black, dark_grey, grey, white, light_grey + white = {"pink", "pink", "pink", "orange", "orange", "yellow", "green", "green", "grey", "cyan", "violet","grey", "grey", "grey","white", "white"}, + grey = {"pink", "pink", "pink", "orange", "orange", "yellow", "green", "green", "grey", "cyan", "violet","dark_grey","grey", "grey"}, + dark_grey = {"brown", "brown", "brown", "brown", "brown", "brown", "dark_green","dark_green","blue", "blue", "violet","black", "dark_grey"}, + black = {"black", "black", "black", "black", "black", "black", "black", "black", "black","black", "black", "black"}, + violet = {"magenta","magenta","magenta","red", "brown", "red", "cyan", "brown", "blue", "violet","violet"}, + blue = {"violet", "violet", "magenta","brown", "brown", "dark_green","cyan", "cyan", "cyan", "blue"}, + cyan = {"brown", "blue", "brown", "dark_green","dark_grey", "green", "cyan", "dark_green","cyan"}, + dark_green = {"brown", "brown", "brown", "brown", "brown", "green", "green", "dark_green"}, + green = {"yellow", "brown", "yellow", "yellow", "dark_green","green", "green"}, + yellow = {"orange", "red", "orange", "yellow", "orange", "yellow"}, + brown = {"brown", "brown", "brown", "orange", "brown"}, + orange = {"orange", "red", "orange", "orange"}, + red = {"pink", "magenta","red"}, + magenta = {"magenta","magenta"}, + pink = {"pink"}, +} + +for one, results in pairs(mixes) do + for i, result in ipairs(results) do + local another = mixbases[i] + minetest.register_craft({ + type = "shapeless", + output = 'dye:' .. result .. ' 2', + recipe = {'dye:' .. one, 'dye:' .. another}, + }) + end +end diff --git a/mods/dye/textures/dye_black.png b/mods/dye/textures/dye_black.png old mode 100644 new mode 100755 diff --git a/mods/dye/textures/dye_blue.png b/mods/dye/textures/dye_blue.png old mode 100644 new mode 100755 diff --git a/mods/dye/textures/dye_brown.png b/mods/dye/textures/dye_brown.png old mode 100644 new mode 100755 diff --git a/mods/dye/textures/dye_cyan.png b/mods/dye/textures/dye_cyan.png old mode 100644 new mode 100755 diff --git a/mods/dye/textures/dye_dark_green.png b/mods/dye/textures/dye_dark_green.png old mode 100644 new mode 100755 diff --git a/mods/dye/textures/dye_dark_grey.png b/mods/dye/textures/dye_dark_grey.png old mode 100644 new mode 100755 diff --git a/mods/dye/textures/dye_green.png b/mods/dye/textures/dye_green.png old mode 100644 new mode 100755 diff --git a/mods/dye/textures/dye_grey.png b/mods/dye/textures/dye_grey.png old mode 100644 new mode 100755 diff --git a/mods/dye/textures/dye_magenta.png b/mods/dye/textures/dye_magenta.png old mode 100644 new mode 100755 diff --git a/mods/dye/textures/dye_orange.png b/mods/dye/textures/dye_orange.png old mode 100644 new mode 100755 diff --git a/mods/dye/textures/dye_pink.png b/mods/dye/textures/dye_pink.png old mode 100644 new mode 100755 diff --git a/mods/dye/textures/dye_red.png b/mods/dye/textures/dye_red.png old mode 100644 new mode 100755 diff --git a/mods/dye/textures/dye_violet.png b/mods/dye/textures/dye_violet.png old mode 100644 new mode 100755 diff --git a/mods/dye/textures/dye_white.png b/mods/dye/textures/dye_white.png old mode 100644 new mode 100755 diff --git a/mods/dye/textures/dye_yellow.png b/mods/dye/textures/dye_yellow.png old mode 100644 new mode 100755 diff --git a/mods/farming/API.txt b/mods/farming/API.txt deleted file mode 100644 index a2f3d9d6..00000000 --- a/mods/farming/API.txt +++ /dev/null @@ -1,27 +0,0 @@ -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/mods/farming/README.txt b/mods/farming/README.txt old mode 100644 new mode 100755 index 4663181a..e8071237 --- a/mods/farming/README.txt +++ b/mods/farming/README.txt @@ -1,23 +1,49 @@ -Minetest 0.4 mod: farming -========================= +Farming Redo Mod +by TenPlus1 -License of source code: ------------------------ -Copyright (C) 2014 webdesigner97 +https://forum.minetest.net/viewtopic.php?id=9019 - DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE - Version 2, December 2004 +Farming Redo is a simplified version of the built-in farming mod in minetest and comes with wheat, cotton, carrot, cucumber, potato and tomato to start out with which spawn throughout the map... new foods need only be planted on tilled soil so no seeds are required, original wheat and cotton will require seeds which are found inside normal and jungle grass... - Copyright (C) 2004 Sam Hocevar +This mod works by adding your new plant to the {growing=1} group and numbering the stages from _1 to as many stages as you like, but the underscore MUST be used only once in the node name to separate plant from stage number e.g. - 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. +"farming:cotton_1" through to "farming:cotton_8" +"farming:wheat_1" through to "farming:wheat_8" +"farming:cucumber_4" through to "farming:cucumber_4" - DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION +Changelog: - 0. You just DO WHAT THE FUCK YOU WANT TO. +1.23 - Huge code tweak and tidy done and added barley seeds to be found in dry grass, barley can make flour for bread also. +1.22 - Added grape bushes at high climates which can be cultivated into grape vines using trellis (9 sticks). +1.21 - Added auto-refill code for planting crops (thanks crabman77), also fixed a few bugs +1.20b- Tidied code, made api compatible with new 0.4.13 changes and changed to soil texture overlays +1.20 - NEW growing routine added that allows crops to grow while player is away doing other things (thanks prestidigitator) +1.14 - Added Green Beans from Crops mod (thanks sofar), little bushels in the wild but need to be grown using beanpoles crafted with 4 sticks (2 either side) +1.13 - Fixed seed double-placement glitch. Mapgen now uses 0.4.12+ for plant generation +1.12 - Player cannot place seeds in protected area, also growing speeds changed to match defaults +1.11 - Added Straw Bale, streamlined growing abm a little, fixed melon rotation bug with screwdriver +1.10 - Added Blueberry Bush and Blueberry Muffins, also Pumpkin/Melon easier to pick up, added check for unloaded map +1.09 - Corn now uses single nodes instead of 1 ontop of the other, Ethanol recipe is more expensive (requires 5 corn) and some code cleanup. +1.08 - Added Farming Plus compatibility, plus can be removed and no more missing nodes +1.07 - Added Rhubarb and Rhubarb Pie +1.06 - register_hoe and register_plant added for compatibility with default farming mod, although any plants registered will use farming redo to grow +1.05 - Added Raspberry Bushels and Raspberry Smoothie +1.04 - Added Donuts... normal, chocolate and apple... and a few code cleanups and now compatible with jungletree's from MoreTrees mod +1.03 - Bug fixes and more compatibility as drop-in replacement for built-in farming mod +1.02 - Added farming.mod string to help other mods identify which farming mod is running, if it returns "redo" then you're using this one, "" empty is built-in mod +1.01 - Crafting coffee or ethanol returns empty bucket/bottle, also Cocoa spawns a little rarer +1.0 - Added Cocoa which randomly grows on jungle tree's, pods give cocoa beans which can be used to farm more pods on a jungle trunk or make Cookies which have been added (or other treats) +0.9 - Added Pumpkin, Jack 'O Lantern, Pumpkin Slice and Sugar +(a huge thanks to painterly.net for allowing me to use their textures) +0.8 - Added Watermelon and Melon Slice +0.7 - Added Coffee, Coffee Beans, Drinking Cup, Cold and Hot Cup of Coffee +0.6 - Added Corn, Corn on the Cob... Also reworked Abm +0.5 - Added Carrot, Cucumber, Potato (and Baked Potato), Tomato +0.4 - Checks for Protection, also performance changes +0.3 - Added Diamond and Mese hoe +0.2 - Fixed check for wet soil +0.1 - Fixed growing bug +0.0 - Initial release License of media (textures): ---------------------------- @@ -28,13 +54,13 @@ Created by PilzAdam (License: WTFPL): farming_soil_wet_side.png farming_string.png -Created by BlockMen (License: CC BY 3.0): - farming_tool_diamondhoe.png - farming_tool_mesehoe.png +Created by Calinou (License: CC BY-SA): farming_tool_bronzehoe.png farming_tool_steelhoe.png farming_tool_stonehoe.png farming_tool_woodhoe.png + farming_tool_mesehoe.png + farming_tool_diamondhoe.png Created by VanessaE (License: WTFPL): farming_cotton_seed.png @@ -57,3 +83,68 @@ Created by VanessaE (License: WTFPL): farming_cotton_6.png farming_cotton_7.png farming_cotton_8.png + +Created by Doc (License: WTFPL): + farming_cucumber.png + farming_cucumber_1.png + farming_cucumber_2.png + farming_cucumber_3.png + farming_cucumber_4.png + farming_potato.png + farming_potato_1.png + farming_potato_2.png + farming_potato_3.png + farming_potato_4.png + farming_raspberries.png + farming_raspberry_1.png + farming_raspberry_2.png + farming_raspberry_3.png + farming_raspberry_4.png + +Created by Gambit: + default_junglegrass.png + farming_carrot.png + farming_carrot_1.png + farming_carrot_2.png + farming_carrot_3.png + farming_carrot_4.png + farming_carrot_5.png + farming_carrot_6.png + farming_carrot_7.png + farming_carrot_8.png + +Created by JoseTheCrafter and edited by TenPlus1: + farming_tomato.png + farming_tomato_1.png + farming_tomato_2.png + farming_tomato_3.png + farming_tomato_4.png + farming_tomato_5.png + farming_tomato_6.png + farming_tomato_7.png + farming_tomato_8.png + +Created by GeMinecraft and edited by TenPlus1: + farming_corn.png + farming_corn_cob.png + farming_corn_1.png + farming_corn_2.png + farming_corn_3.png + farming_corn_4.png + farming_corn_5.png + farming_corn_6.png + farming_corn_7.png + farming_corn_8.png + +Created by TenPlus1 + farming_cocoa_1.png + farming_cocoa_2.png + farming_cocoa_3.png + farming_cocoa_beans.png + farming_cookie.png + farming_raspberry_smoothie.png + farming_rhubarb_1.png + farming_rhubarb_2.png + farming_rhubarb_3.png + farming_rhubarb.png + farming_rhubarb_pie.png diff --git a/mods/farming/api.lua b/mods/farming/api.lua deleted file mode 100644 index f1767d17..00000000 --- a/mods/farming/api.lua +++ /dev/null @@ -1,284 +0,0 @@ --- 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, - }) - itemstack:add_wear(65535/(uses-1)) - 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 def.description == nil then - def.description = "Seed" - end - if def.inventory_image == nil then - def.inventory_image = "unknown_item.png" - end - if def.steps == nil then - return nil - end - if def.minlight == nil then - def.minlight = 1 - end - if def.maxlight == nil 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 - }) - -- Seed -> plant - minetest.register_abm({ - nodenames = {"group:seed"}, - neighbors = {"group:soil"}, - interval = 90, - chance = 2, - action = function(pos, node) - local seedferts = minetest.registered_nodes[node.name].fertility - local soilferts = {} - -- Collect fertilities of soil - for k, v in pairs(minetest.registered_nodes[minetest.get_node({x = pos.x, y = pos.y - 1, z = pos.z}).name].groups) do - if k == "grassland" or k == "desert" then - soilferts[k] = k - end - end - -- Cannot grow if no fertility match found - local fertmatch = false - for k, v in pairs(seedferts) do - if soilferts[v] ~= nil then - fertmatch = true - break - end - end - - if fertmatch == true and minetest.get_item_group(minetest.get_node({x = pos.x, y = pos.y - 1, z = pos.z}).name, "wet") ~= 0 then - minetest.set_node(pos, {name = node.name:gsub("seed_", "") .. "_1"}) - end - 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}, - neighbors = {"group:soil"}, - interval = 90, - chance = 2, - action = function(pos, node) - -- return if already full grown - if minetest.get_item_group(node.name, pname) == def.steps then - 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 - if not minetest.get_node_light(pos) then - return - end - if minetest.get_node_light(pos) < def.minlight or minetest.get_node_light(pos) > def.maxlight then - return - end - - -- grow - local height = minetest.get_item_group(node.name, pname) + 1 - minetest.set_node(pos, {name = mname .. ":" .. pname .. "_" .. height}) - end - }) - -- Return - local r = { - seed = mname .. ":seed_" .. pname, - harvest = mname .. ":" .. pname - } - return r -end diff --git a/mods/farming/barley.lua b/mods/farming/barley.lua new file mode 100644 index 00000000..b7bf530e --- /dev/null +++ b/mods/farming/barley.lua @@ -0,0 +1,98 @@ + +local S = farming.intllib + +-- barley seeds +minetest.register_node("farming:seed_barley", { + description = S("Barley Seed"), + tiles = {"farming_barley_seed.png"}, + inventory_image = "farming_barley_seed.png", + wield_image = "farming_barley_seed.png", + drawtype = "signlike", + groups = {seed = 1, snappy = 3, attached_node = 1}, + paramtype = "light", + paramtype2 = "wallmounted", + walkable = false, + sunlight_propagates = true, + selection_box = farming.select, + on_place = function(itemstack, placer, pointed_thing) + return farming.place_seed(itemstack, placer, pointed_thing, "farming:barley_1") + end, +}) + +-- harvested barley +minetest.register_craftitem("farming:barley", { + description = S("Barley"), + inventory_image = "farming_barley.png", +}) + +-- flour +minetest.register_craft({ + type = "shapeless", + output = "farming:flour", + recipe = {"farming:barley", "farming:barley", "farming:barley", "farming:barley"} +}) + +-- barley definition +local crop_def = { + drawtype = "plantlike", + tiles = {"farming_barley_1.png"}, + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + drop = "", + selection_box = farming.select, + groups = { + snappy = 3, flammable = 2, plant = 1, attached_node = 1, + not_in_creative_inventory = 1, growing = 1 + }, + sounds = default.node_sound_leaves_defaults() +} + +-- stage 1 +minetest.register_node("farming:barley_1", table.copy(crop_def)) + +-- stage 2 +crop_def.tiles = {"farming_barley_2.png"} +minetest.register_node("farming:barley_2", table.copy(crop_def)) + +-- stage 3 +crop_def.tiles = {"farming_barley_3.png"} +minetest.register_node("farming:barley_3", table.copy(crop_def)) + +-- stage 4 +crop_def.tiles = {"farming_barley_4.png"} +minetest.register_node("farming:barley_4", table.copy(crop_def)) + +-- stage 5 +crop_def.tiles = {"farming_barley_5.png"} +crop_def.drop = { + items = { + {items = {'farming:barley'}, rarity = 2}, + {items = {'farming:seed_barley'}, rarity = 2}, + } +} +minetest.register_node("farming:barley_5", table.copy(crop_def)) + +-- stage 6 +crop_def.tiles = {"farming_barley_6.png"} +crop_def.drop = { + items = { + {items = {'farming:barley'}, rarity = 2}, + {items = {'farming:seed_barley'}, rarity = 1}, + } +} +minetest.register_node("farming:barley_6", table.copy(crop_def)) + +-- stage 7 (final) +crop_def.tiles = {"farming_barley_7.png"} +crop_def.groups.growing = 0 +crop_def.drop = { + items = { + {items = {'farming:barley'}, rarity = 1}, + {items = {'farming:barley'}, rarity = 3}, + {items = {'farming:seed_barley'}, rarity = 1}, + {items = {'farming:seed_barley'}, rarity = 3}, + } +} +minetest.register_node("farming:barley_7", table.copy(crop_def)) diff --git a/mods/farming/beanpole.lua b/mods/farming/beanpole.lua new file mode 100755 index 00000000..432ffbc3 --- /dev/null +++ b/mods/farming/beanpole.lua @@ -0,0 +1,195 @@ +--[[ + All textures by + (C) Auke Kok + CC-BY-SA-3.0 +]] + +local S = farming.intllib + +-- beans +minetest.register_craftitem("farming:beans", { + description = S("Green Beans"), + inventory_image = "farming_beans.png", + on_use = minetest.item_eat(1), + + on_place = function(itemstack, placer, pointed_thing) + + if minetest.is_protected(pointed_thing.under, placer:get_player_name()) then + return + end + + local nodename = minetest.get_node(pointed_thing.under).name + + if nodename == "farming:beanpole" then + minetest.set_node(pointed_thing.under, {name = "farming:beanpole_1"}) + + minetest.sound_play("default_place_node", {pos = pointed_thing.above, gain = 1.0}) + else + return + end + + if not minetest.setting_getbool("creative_mode") then + + itemstack:take_item() + + -- check for refill + if itemstack:get_count() == 0 then + + minetest.after(0.20, + farming.refill_plant, + placer, + "farming:beans", + placer:get_wield_index() + ) + end + end + + return itemstack + end +}) + +-- beans can be used for green dye +minetest.register_craft({ + output = "dye:green", + recipe = { + {'farming:beans'}, + } +}) + +-- beanpole +minetest.register_node("farming:beanpole", { + description = S("Bean Pole (place on soil before planting beans)"), + drawtype = "plantlike", + tiles = {"farming_beanpole.png"}, + inventory_image = "farming_beanpole.png", + visual_scale = 1.45, + paramtype = "light", + walkable = false, + buildable_to = true, + sunlight_propagates = true, + drop = "farming:beanpole", + selection_box = farming.select, + groups = {snappy = 3, flammable = 2, attached_node = 1}, + sounds = default.node_sound_leaves_defaults(), + + on_place = function(itemstack, placer, pointed_thing) + local top = { + x = pointed_thing.above.x, + y = pointed_thing.above.y + 1, + z = pointed_thing.above.z + } + + if minetest.is_protected(pointed_thing.above, placer:get_player_name()) + or minetest.is_protected(top, placer:get_player_name()) then -- MFF crabman(18/06/2015) + return + end + local nodename = minetest.get_node(pointed_thing.under).name + + if minetest.get_item_group(nodename, "soil") < 2 then + return + end + + nodename = minetest.get_node(top).name + + if nodename ~= "air" then + return + end + + minetest.set_node(pointed_thing.above, {name = "farming:beanpole"}) + + if not minetest.setting_getbool("creative_mode") then + itemstack:take_item() + end + + return itemstack + end +}) + +minetest.register_craft({ + output = "farming:beanpole", + recipe = { + {'', '', ''}, + {'default:stick', '', 'default:stick'}, + {'default:stick', '', 'default:stick'}, + } +}) + +minetest.register_craft({ + type = "fuel", + recipe = "farming:beanpole", + burntime = 10, +}) + +-- green bean definition +local crop_def = { + drawtype = "plantlike", + tiles = {"farming_beanpole_1.png"}, + visual_scale = 1.45, + paramtype = "light", + walkable = false, + buildable_to = true, + sunlight_propagates = true, + drop = { + items = { + {items = {'farming:beanpole'}, rarity = 1}, + } + }, + selection_box = farming.select, + groups = { + snappy = 3, flammable = 3, not_in_creative_inventory = 1, + attached_node = 1, growing = 1 + }, + sounds = default.node_sound_leaves_defaults() +} + +-- stage 1 +minetest.register_node("farming:beanpole_1", table.copy(crop_def)) + +-- stage2 +crop_def.tiles = {"farming_beanpole_2.png"} +minetest.register_node("farming:beanpole_2", table.copy(crop_def)) + +-- stage 3 +crop_def.tiles = {"farming_beanpole_3.png"} +minetest.register_node("farming:beanpole_3", table.copy(crop_def)) + +-- stage 4 +crop_def.tiles = {"farming_beanpole_4.png"} +minetest.register_node("farming:beanpole_4", table.copy(crop_def)) + +-- stage 5 (final) +crop_def.tiles = {"farming_beanpole_5.png"} +crop_def.groups.growing = 0 +crop_def.drop = { + items = { + {items = {'farming:beanpole'}, rarity = 1}, + {items = {'farming:beans 3'}, rarity = 1}, + {items = {'farming:beans 2'}, rarity = 2}, + {items = {'farming:beans 2'}, rarity = 3}, + } +} +minetest.register_node("farming:beanpole_5", table.copy(crop_def)) + +-- wild green bean bush (this is what you find on the map) +minetest.register_node("farming:beanbush", { + drawtype = "plantlike", + tiles = {"farming_beanbush.png"}, + paramtype = "light", + waving = 1, + walkable = false, + buildable_to = true, + sunlight_propagates = true, + drop = { + items = { + {items = {'farming:beans 1'}, rarity = 1}, + {items = {'farming:beans 1'}, rarity = 2}, + {items = {'farming:beans 1'}, rarity = 3}, + } + }, + selection_box = farming.select, + groups = { + snappy = 3, flammable = 2, plant = 1, attached_node = 1, + not_in_creative_inventory=1 + }, + sounds = default.node_sound_leaves_defaults(), +}) diff --git a/mods/farming/blueberry.lua b/mods/farming/blueberry.lua new file mode 100755 index 00000000..82ce7ff1 --- /dev/null +++ b/mods/farming/blueberry.lua @@ -0,0 +1,67 @@ + +local S = farming.intllib + +-- blueberries +minetest.register_craftitem("farming:blueberries", { + description = S("Blueberries"), + inventory_image = "farming_blueberries.png", + on_place = function(itemstack, placer, pointed_thing) + return farming.place_seed(itemstack, placer, pointed_thing, "farming:blueberry_1") + end, + on_use = minetest.item_eat(1), +}) + +-- blueberry muffin (thanks to sosogirl123 @ deviantart.com for muffin image) + +minetest.register_craftitem("farming:muffin_blueberry", { + description = S("Blueberry Muffin"), + inventory_image = "farming_blueberry_muffin.png", + on_use = minetest.item_eat(2), +}) + +minetest.register_craft({ + output = "farming:muffin_blueberry 2", + recipe = { + {"farming:blueberries", "farming:bread", "farming:blueberries"}, + } +}) + +-- blueberry definition +local crop_def = { + drawtype = "plantlike", + tiles = {"farming_blueberry_1.png"}, + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + drop = "", + selection_box = farming.select, + groups = { + snappy = 3, flammable = 2, plant = 1, attached_node = 1, + not_in_creative_inventory = 1, growing = 1 + }, + sounds = default.node_sound_leaves_defaults() +} + +-- stage 1 +minetest.register_node("farming:blueberry_1", table.copy(crop_def)) + +-- stage 2 +crop_def.tiles = {"farming_blueberry_2.png"} +minetest.register_node("farming:blueberry_2", table.copy(crop_def)) + +-- stage 3 +crop_def.tiles = {"farming_blueberry_3.png"} +minetest.register_node("farming:blueberry_3", table.copy(crop_def)) + +-- stage 4 (final) +crop_def.tiles = {"farming_blueberry_4.png"} +crop_def.groups.growing = 0 +crop_def.drop = { + items = { + {items = {'farming:blueberries 2'}, rarity = 1}, + {items = {'farming:blueberries'}, rarity = 2}, + {items = {'farming:blueberries'}, rarity = 3}, + } +} +minetest.register_node("farming:blueberry_4", table.copy(crop_def)) diff --git a/mods/farming/carrot.lua b/mods/farming/carrot.lua new file mode 100755 index 00000000..9cfcee05 --- /dev/null +++ b/mods/farming/carrot.lua @@ -0,0 +1,95 @@ + +--[[ + Original textures from PixelBox texture pack + https://forum.minetest.net/viewtopic.php?id=4990 +]] + +local S = farming.intllib + +-- carrot +minetest.register_craftitem("farming:carrot", { + description = S("Carrot"), + inventory_image = "farming_carrot.png", + on_place = function(itemstack, placer, pointed_thing) + return farming.place_seed(itemstack, placer, pointed_thing, "farming:carrot_1") + end, + on_use = minetest.item_eat(4), +}) + +-- golden carrot +minetest.register_craftitem("farming:carrot_gold", { + description = S("Golden Carrot"), + inventory_image = "farming_carrot_gold.png", + on_use = minetest.item_eat(6), +}) + +minetest.register_craft({ + output = "farming:carrot_gold", + recipe = { + {"", "default:gold_lump", ""}, + {"default:gold_lump", "farming:carrot", "default:gold_lump"}, + {"", "default:gold_lump", ""}, + } +}) + +-- carrot definition +local crop_def = { + drawtype = "plantlike", + tiles = {"farming_carrot_1.png"}, + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + drop = "", + selection_box = farming.select, + groups = { + snappy = 3, flammable = 2, plant = 1, attached_node = 1, + not_in_creative_inventory = 1, growing = 1 + }, + sounds = default.node_sound_leaves_defaults() +} + + +-- stage 1 +minetest.register_node("farming:carrot_1", table.copy(crop_def)) + +-- stage 2 +crop_def.tiles = {"farming_carrot_2.png"} +minetest.register_node("farming:carrot_2", table.copy(crop_def)) + +-- stage 3 +crop_def.tiles = {"farming_carrot_3.png"} +minetest.register_node("farming:carrot_3", table.copy(crop_def)) + +-- stage 4 +crop_def.tiles = {"farming_carrot_4.png"} +minetest.register_node("farming:carrot_4", table.copy(crop_def)) + +-- stage 5 +crop_def.tiles = {"farming_carrot_5.png"} +minetest.register_node("farming:carrot_5", table.copy(crop_def)) + +-- stage 6 +crop_def.tiles = {"farming_carrot_6.png"} +minetest.register_node("farming:carrot_6", table.copy(crop_def)) + +-- stage 7 +crop_def.tiles = {"farming_carrot_7.png"} +crop_def.drop = { + items = { + {items = {'farming:carrot'}, rarity = 1}, + {items = {'farming:carrot 2'}, rarity = 3}, + } +} +minetest.register_node("farming:carrot_7", table.copy(crop_def)) + +-- stage 8 (final) +crop_def.tiles = {"farming_carrot_8.png"} +crop_def.groups.growing = 0 +crop_def.drop = { + items = { + {items = {'farming:carrot 2'}, rarity = 1}, + {items = {'farming:carrot 3'}, rarity = 2}, + } +} +minetest.register_node("farming:carrot_8", table.copy(crop_def)) diff --git a/mods/farming/cocoa.lua b/mods/farming/cocoa.lua new file mode 100755 index 00000000..0d463770 --- /dev/null +++ b/mods/farming/cocoa.lua @@ -0,0 +1,174 @@ + +local S = farming.intllib + +-- place cocoa +function place_cocoa(itemstack, placer, pointed_thing, plantname) + + local pt = pointed_thing + + -- check if pointing at a node + if not pt or pt.type ~= "node" then + return + end + + local under = minetest.get_node(pt.under) + + -- return if any of the nodes are not registered + if not minetest.registered_nodes[under.name] then + return + end + + -- check if pointing at jungletree + if under.name ~= "default:jungletree" + or minetest.get_node(pt.above).name ~= "air" then + return + end + + -- add the node and remove 1 item from the itemstack + minetest.set_node(pt.above, {name = plantname}) + + minetest.sound_play("default_place_node", {pos = pt.above, gain = 1.0}) + + if not minetest.setting_getbool("creative_mode") then + + itemstack:take_item() + + -- check for refill + if itemstack:get_count() == 0 then + + minetest.after(0.20, + farming.refill_plant, + placer, + "farming:cocoa_beans", + placer:get_wield_index() + ) + end + end + + return itemstack +end + +-- cocoa beans +minetest.register_craftitem("farming:cocoa_beans", { + description = S("Cocoa Beans"), + inventory_image = "farming_cocoa_beans.png", + on_place = function(itemstack, placer, pointed_thing) + return place_cocoa(itemstack, placer, pointed_thing, "farming:cocoa_1") + end, +}) + +minetest.register_craft( { + output = "dye:brown 2", + recipe = { + { "farming:cocoa_beans" }, + } +}) + +-- chocolate cookie +minetest.register_craftitem("farming:cookie", { + description = S("Cookie"), + inventory_image = "farming_cookie.png", + on_use = minetest.item_eat(2), +}) + +minetest.register_craft( { + output = "farming:cookie 8", + recipe = { + { "farming:wheat", "farming:cocoa_beans", "farming:wheat" }, + } +}) + +-- bar of dark chocolate (thanks to Ice Pandora for her deviantart.com chocolate tutorial) +minetest.register_craftitem("farming:chocolate_dark", { + description = S("Bar of Dark Chocolate"), + inventory_image = "farming_chocolate_dark.png", + on_use = minetest.item_eat(2), --/MFF (Mg|05/26/2015) +}) + +minetest.register_craft( { + output = "farming:chocolate_dark", + recipe = { + { "farming:cocoa_beans", "farming:cocoa_beans", "farming:cocoa_beans" }, + } +}) + +-- cocoa definition +local crop_def = { + drawtype = "plantlike", + tiles = {"farming_cocoa_1.png"}, + paramtype = "light", + walkable = true, + drop = { + items = { + {items = {'farming:cocoa_beans 1'}, rarity = 2}, + } + }, + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3} + }, + groups = { + snappy = 3, flammable = 2, plant = 1, growing = 1, + not_in_creative_inventory=1, leafdecay = 1, leafdecay_drop = 1 + }, + sounds = default.node_sound_leaves_defaults() +} + +-- stage 1 +minetest.register_node("farming:cocoa_1", table.copy(crop_def)) + +-- stage2 +crop_def.tiles = {"farming_cocoa_2.png"} +crop_def.drop = { + items = { + {items = {'farming:cocoa_beans 1'}, rarity = 1}, + } +} +minetest.register_node("farming:cocoa_2", table.copy(crop_def)) + +-- stage 3 (final) +crop_def.tiles = {"farming_cocoa_3.png"} +crop_def.groups.growing = 0 +crop_def.drop = { + items = { + {items = {'farming:cocoa_beans 2'}, rarity = 1}, + {items = {'farming:cocoa_beans 1'}, rarity = 2}, + } +} +minetest.register_node("farming:cocoa_3", table.copy(crop_def)) + +-- add random cocoa pods to jungle tree trunks +minetest.register_abm({ + nodenames = {"default:jungletree"}, + neighbors = {"default:jungleleaves", "moretrees:jungletree_leaves_green"}, + interval = 8, + chance = 80, + catch_up = false, + action = function(pos, node) + + local dir = math.random(1, 50) + + if dir == 1 then + pos.x = pos.x + 1 + elseif dir == 2 then + pos.x = pos.x - 1 + elseif dir == 3 then + pos.z = pos.z + 1 + elseif dir == 4 then + pos.z = pos.z -1 + else return + end + + local nodename = minetest.get_node(pos).name + + if nodename == "air" + and minetest.get_node_light(pos) > 12 then + + --print ("Cocoa Pod added at " .. minetest.pos_to_string(pos)) + + minetest.set_node(pos, { + name = "farming:cocoa_" .. tostring(math.random(1, 3)) + }) + end + end, +}) diff --git a/mods/farming/coffee.lua b/mods/farming/coffee.lua new file mode 100755 index 00000000..f9632d2f --- /dev/null +++ b/mods/farming/coffee.lua @@ -0,0 +1,132 @@ + +local S = farming.intllib + +-- coffee +minetest.register_craftitem("farming:coffee_beans", { + description = S("Coffee Beans"), + inventory_image = "farming_coffee_beans.png", + on_place = function(itemstack, placer, pointed_thing) + return farming.place_seed(itemstack, placer, pointed_thing, "farming:coffee_1") + end, +}) + + +-- drinking cup +minetest.register_node("farming:drinking_cup", { + description = S("Drinking Cup (empty)"), + drawtype = "plantlike", + tiles = {"vessels_drinking_cup.png"}, + inventory_image = "vessels_drinking_cup.png", + wield_image = "vessels_drinking_cup.png", + paramtype = "light", + walkable = false, + selection_box = { + type = "fixed", + fixed = {-0.25, -0.5, -0.25, 0.25, 0.25, 0.25} + }, + groups = {vessel = 1, dig_immediate = 3, attached_node = 1}, + sounds = default.node_sound_glass_defaults(), +}) + +minetest.register_craft( { + output = "farming:drinking_cup 5", + recipe = { + { "default:glass", "", "default:glass" }, + {"", "default:glass",""}, + } +}) + +-- cold cup of coffee +minetest.register_node("farming:coffee_cup", { + description = S("Cold Cup of Coffee"), + drawtype = "plantlike", + tiles = {"farming_coffee_cup.png"}, + inventory_image = "farming_coffee_cup.png", + wield_image = "farming_coffee_cup.png", + paramtype = "light", + walkable = false, + selection_box = { + type = "fixed", + fixed = {-0.25, -0.5, -0.25, 0.25, 0.25, 0.25} + }, + groups = {vessel = 1, dig_immediate = 3, attached_node = 1}, + on_use = minetest.item_eat(2, "farming:drinking_cup"), + sounds = default.node_sound_glass_defaults(), +}) + +minetest.register_craft( { + output = "farming:coffee_cup", + recipe = { + {"farming:drinking_cup", "farming:coffee_beans","bucket:bucket_water"}, + }, + replacements = {{"bucket:bucket_water", "bucket:bucket_empty"}} +}) + +minetest.register_craft({ + type = "cooking", + cooktime = 5, + output = "farming:coffee_cup_hot", + recipe = "farming:coffee_cup" +}) + +-- hot cup of coffee +minetest.register_node("farming:coffee_cup_hot", { + description = S("Hot Cup of Coffee"), + drawtype = "plantlike", + tiles = {"farming_coffee_cup_hot.png"}, + inventory_image = "farming_coffee_cup_hot.png", + wield_image = "farming_coffee_cup_hot.png", + paramtype = "light", + walkable = false, + selection_box = { + type = "fixed", + fixed = {-0.25, -0.5, -0.25, 0.25, 0.25, 0.25} + }, + groups = {vessel = 1, dig_immediate = 3, attached_node = 1}, + on_use = minetest.item_eat(3, "farming:drinking_cup"), + sounds = default.node_sound_glass_defaults(), +}) + +-- coffee definition +local crop_def = { + drawtype = "plantlike", + tiles = {"farming_coffee_1.png"}, + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + drop = "", + selection_box = farming.select, + groups = { + snappy = 3, flammable = 2, plant = 1, attached_node = 1, + not_in_creative_inventory = 1, growing = 1 + }, + sounds = default.node_sound_leaves_defaults() +} + +-- stage 1 +minetest.register_node("farming:coffee_1", table.copy(crop_def)) + +-- stage 2 +crop_def.tiles = {"farming_coffee_2.png"} +minetest.register_node("farming:coffee_2", table.copy(crop_def)) + +-- stage 3 +crop_def.tiles = {"farming_coffee_3.png"} +minetest.register_node("farming:coffee_3", table.copy(crop_def)) + +-- stage 4 +crop_def.tiles = {"farming_coffee_4.png"} +minetest.register_node("farming:coffee_4", table.copy(crop_def)) + +-- stage 5 (final) +crop_def.tiles = {"farming_coffee_5.png"} +crop_def.groups.growing = 0 +crop_def.drop = { + items = { + {items = {'farming:coffee_beans 2'}, rarity = 1}, + {items = {'farming:coffee_beans 2'}, rarity = 2}, + {items = {'farming:coffee_beans 2'}, rarity = 3}, + } +} +minetest.register_node("farming:coffee_5", table.copy(crop_def)) diff --git a/mods/farming/compatibility.lua b/mods/farming/compatibility.lua new file mode 100755 index 00000000..a5a70999 --- /dev/null +++ b/mods/farming/compatibility.lua @@ -0,0 +1,101 @@ +-- is Ethereal mod installed? +local eth = minetest.get_modpath("ethereal") or nil + +-- Banana +if eth then + minetest.register_alias("farming_plus:banana_sapling", "ethereal:banana_tree_sapling") + minetest.register_alias("farming_plus:banana_leaves", "ethereal:bananaleaves") + minetest.register_alias("farming_plus:banana", "ethereal:banana") +else + minetest.register_alias("farming_plus:banana_sapling", "default:sapling") + minetest.register_alias("farming_plus:banana_leaves", "default:leaves") + minetest.register_alias("farming_plus:banana", "default:apple") +end + +-- Carrot +minetest.register_alias("farming_plus:carrot_seed", "farming:carrot") +minetest.register_alias("farming_plus:carrot_1", "farming:carrot_1") +minetest.register_alias("farming_plus:carrot_2", "farming:carrot_4") +minetest.register_alias("farming_plus:carrot_3", "farming:carrot_6") +minetest.register_alias("farming_plus:carrot", "farming:carrot_8") + +-- Cocoa + +minetest.register_alias("farming_plus:cocoa_sapling", "farming:cocoa_beans") +minetest.register_alias("farming_plus:cocoa_leaves", "default:leaves") +minetest.register_alias("farming_plus:cocoa", "default:apple") +minetest.register_alias("farming_plus:cocoa_bean", "farming:cocoa_beans") + +-- Orange +minetest.register_alias("farming_plus:orange_1", "farming:tomato_1") +minetest.register_alias("farming_plus:orange_2", "farming:tomato_4") +minetest.register_alias("farming_plus:orange_3", "farming:tomato_6") +minetest.register_alias("farming_plus:orange", "farming:tomato_8") + +if eth then + minetest.register_alias("farming_plus:orange_item", "ethereal:orange") + minetest.register_alias("farming_plus:orange_seed", "ethereal:orange_tree_sapling") +else + minetest.register_alias("farming_plus:orange_item", "default:apple") + minetest.register_alias("farming_plus:orange_seed", "default:sapling") +end + +-- Potato +minetest.register_alias("farming_plus:potato_item", "farming:potato") +minetest.register_alias("farming_plus:potato_1", "farming:potato_1") +minetest.register_alias("farming_plus:potato_2", "farming:potato_2") +minetest.register_alias("farming_plus:potato", "farming:potato_3") +minetest.register_alias("farming_plus:potato_seed", "farming:potato") + +-- Pumpkin +minetest.register_alias("farming:pumpkin_seed", "farming:pumpkin_slice") +minetest.register_alias("farming:pumpkin_face", "farming:pumpkin") +minetest.register_alias("farming:pumpkin_face_light", "farming:jackolantern") +minetest.register_alias("farming:big_pumpkin", "farming:pumpkin") +minetest.register_alias("farming:big_pumpkin_side", "air") +minetest.register_alias("farming:big_pumpkin_corner", "air") +minetest.register_alias("farming:big_pumpkin_top", "air") +minetest.register_alias("farming:scarecrow", "farming:pumpkin") +minetest.register_alias("farming:scarecrow_bottom", "default:fence_wood") +minetest.register_alias("farming:scarecrow_light", "farming:jackolantern") +minetest.register_alias("farming:pumpkin_flour", "farming:pumpkin_dough") + +-- Rhubarb +minetest.register_alias("farming_plus:rhubarb_seed", "farming:rhubarb") +minetest.register_alias("farming_plus:rhubarb_1", "farming:rhubarb_1") +minetest.register_alias("farming_plus:rhubarb_2", "farming:rhubarb_2") +minetest.register_alias("farming_plus:rhubarb", "farming:rhubarb_3") +minetest.register_alias("farming_plus:rhubarb_item", "farming:rhubarb") + +-- Strawberry +if eth then + minetest.register_alias("farming_plus:strawberry_item", "ethereal:strawberry") + minetest.register_alias("farming_plus:strawberry_seed", "ethereal:strawberry") + minetest.register_alias("farming_plus:strawberry_1", "ethereal:strawberry_1") + minetest.register_alias("farming_plus:strawberry_2", "ethereal:strawberry_3") + minetest.register_alias("farming_plus:strawberry_3", "ethereal:strawberry_5") + minetest.register_alias("farming_plus:strawberry", "ethereal:strawberry_7") +else + minetest.register_alias("farming_plus:strawberry_item", "farming:raspberries") + minetest.register_alias("farming_plus:strawberry_seed", "farming:raspberries") + minetest.register_alias("farming_plus:strawberry_1", "farming:raspberry_1") + minetest.register_alias("farming_plus:strawberry_2", "farming:raspberry_2") + minetest.register_alias("farming_plus:strawberry_3", "farming:raspberry_3") + minetest.register_alias("farming_plus:strawberry", "farming:raspberry_4") + +end + +-- Tomato +minetest.register_alias("farming_plus:tomato_seed", "farming:tomato") +minetest.register_alias("farming_plus:tomato_item", "farming:tomato") +minetest.register_alias("farming_plus:tomato_1", "farming:tomato_2") +minetest.register_alias("farming_plus:tomato_2", "farming:tomato_4") +minetest.register_alias("farming_plus:tomato_3", "farming:tomato_6") +minetest.register_alias("farming_plus:tomato", "farming:tomato_8") + +-- Weed +minetest.register_alias("farming:weed", "default:grass_2") + +-- Moreores +minetest.register_alias("moreores:hoe_silver", "farming:hoe_silver") +minetest.register_alias("moreores:hoe_mithril", "farming:hoe_mithril") diff --git a/mods/farming/corn.lua b/mods/farming/corn.lua new file mode 100755 index 00000000..f178a48d --- /dev/null +++ b/mods/farming/corn.lua @@ -0,0 +1,116 @@ + +--[[ + Original textures from GeMinecraft + http://www.minecraftforum.net/forums/mapping-and-modding/minecraft-mods/wip-mods/1440575-1-2-5-generation-minecraft-beta-1-2-farming-and +]] + +local S = farming.intllib + +-- corn +minetest.register_craftitem("farming:corn", { + description = S("Corn"), + inventory_image = "farming_corn.png", + on_place = function(itemstack, placer, pointed_thing) + return farming.place_seed(itemstack, placer, pointed_thing, "farming:corn_1") + end, + on_use = minetest.item_eat(3), +}) + +-- corn on the cob (texture by TenPlus1) +minetest.register_craftitem("farming:corn_cob", { + description = S("Corn on the Cob"), + inventory_image = "farming_corn_cob.png", + on_use = minetest.item_eat(5), +}) + +minetest.register_craft({ + type = "cooking", + cooktime = 10, + output = "farming:corn_cob", + recipe = "farming:corn" +}) + +-- ethanol (thanks to JKMurray for this idea) +minetest.register_craftitem("farming:bottle_ethanol", { + description = S("Bottle of Ethanol"), + inventory_image = "farming_bottle_ethanol.png", +}) + +minetest.register_craft( { + output = "farming:bottle_ethanol", + recipe = { + { "vessels:glass_bottle", "farming:corn", "farming:corn"}, + { "farming:corn", "farming:corn", "farming:corn"}, + } +}) + +minetest.register_craft({ + type = "fuel", + recipe = "farming:bottle_ethanol", + burntime = 240, + replacements = {{ "farming:bottle_ethanol", "vessels:glass_bottle"}} +}) + +-- corn definition +local crop_def = { + drawtype = "plantlike", + tiles = {"farming_corn_1.png"}, + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + drop = "", + selection_box = farming.select, + groups = { + snappy = 3, flammable = 2, plant = 1, attached_node = 1, + not_in_creative_inventory = 1, growing = 1 + }, + sounds = default.node_sound_leaves_defaults() +} + +-- stage 1 +minetest.register_node("farming:corn_1", table.copy(crop_def)) + +-- stage 2 +crop_def.tiles = {"farming_corn_2.png"} +minetest.register_node("farming:corn_2", table.copy(crop_def)) + +-- stage 3 +crop_def.tiles = {"farming_corn_3.png"} +minetest.register_node("farming:corn_3", table.copy(crop_def)) + +-- stage 4 +crop_def.tiles = {"farming_corn_4.png"} +minetest.register_node("farming:corn_4", table.copy(crop_def)) + +-- stage 5 +crop_def.tiles = {"farming_corn_5.png"} +minetest.register_node("farming:corn_5", table.copy(crop_def)) + +-- stage 6 +crop_def.tiles = {"farming_corn_6.png"} +crop_def.visual_scale = 1.45 +minetest.register_node("farming:corn_6", table.copy(crop_def)) + +-- stage 7 +crop_def.tiles = {"farming_corn_7.png"} +crop_def.drop = { + items = { + {items = {'farming:corn'}, rarity = 1}, + {items = {'farming:corn'}, rarity = 2}, + {items = {'farming:corn'}, rarity = 3}, + } +} +minetest.register_node("farming:corn_7", table.copy(crop_def)) + +-- stage 8 (final) +crop_def.tiles = {"farming_corn_8.png"} +crop_def.groups.growing = 0 +crop_def.drop = { + items = { + {items = {'farming:corn 2'}, rarity = 1}, + {items = {'farming:corn 2'}, rarity = 2}, + {items = {'farming:corn 2'}, rarity = 2}, + } +} +minetest.register_node("farming:corn_8", table.copy(crop_def)) diff --git a/mods/farming/cotton.lua b/mods/farming/cotton.lua new file mode 100755 index 00000000..eef64258 --- /dev/null +++ b/mods/farming/cotton.lua @@ -0,0 +1,123 @@ + +local S = farming.intllib + +-- cotton seeds +minetest.register_node("farming:seed_cotton", { + description = S("Cotton Seed"), + tiles = {"farming_cotton_seed.png"}, + inventory_image = "farming_cotton_seed.png", + wield_image = "farming_cotton_seed.png", + drawtype = "signlike", + groups = {seed = 1, snappy = 3, attached_node = 1}, + paramtype = "light", + paramtype2 = "wallmounted", + walkable = false, + sunlight_propagates = true, + selection_box = farming.select, + on_place = function(itemstack, placer, pointed_thing) + return farming.place_seed(itemstack, placer, pointed_thing, "farming:cotton_1") + end, +}) + +-- cotton / string + +minetest.register_craftitem("farming:cotton", { + description = S("Cotton"), + inventory_image = "farming_cotton.png", +}) + +minetest.register_alias("farming:string", "farming:cotton") + +-- cotton to wool +minetest.register_craft({ + output = "wool:white", + recipe = { + {"farming:string", "farming:string"}, + {"farming:string", "farming:string"}, + } +}) + +-- cotton definition +local crop_def = { + drawtype = "plantlike", + tiles = {"farming_cotton_1.png"}, + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + drop = "", + selection_box = farming.select, + groups = { + snappy = 3, flammable = 2, plant = 1, attached_node = 1, + not_in_creative_inventory = 1, growing = 1 + }, + sounds = default.node_sound_leaves_defaults() +} + +-- stage 1 +minetest.register_node("farming:cotton_1", table.copy(crop_def)) + +-- stage 2 +crop_def.tiles = {"farming_cotton_2.png"} +minetest.register_node("farming:cotton_2", table.copy(crop_def)) + +-- stage 3 +crop_def.tiles = {"farming_cotton_3.png"} +minetest.register_node("farming:cotton_3", table.copy(crop_def)) + +-- stage 4 +crop_def.tiles = {"farming_cotton_4.png"} +minetest.register_node("farming:cotton_4", table.copy(crop_def)) + +-- stage 5 +crop_def.tiles = {"farming_cotton_5.png"} +crop_def.drop = { + items = { + {items = {"farming:seed_cotton"}, rarity = 1}, + } +} +minetest.register_node("farming:cotton_5", table.copy(crop_def)) + +-- stage 6 +crop_def.tiles = {"farming_cotton_6.png"} +crop_def.drop = { + items = { + {items = {"farming:cotton"}, rarity = 1}, + {items = {"farming:cotton"}, rarity = 2}, + } +} +minetest.register_node("farming:cotton_6", table.copy(crop_def)) + +-- stage 7 +crop_def.tiles = {"farming_cotton_7.png"} +crop_def.drop = { + items = { + {items = {"farming:cotton"}, rarity = 1}, + {items = {"farming:cotton"}, rarity = 2}, + {items = {"farming:seed_cotton"}, rarity = 1}, + {items = {"farming:seed_cotton"}, rarity = 2}, + } +} +minetest.register_node("farming:cotton_7", table.copy(crop_def)) + +-- stage 8 (final) +crop_def.tiles = {"farming_cotton_8.png"} +crop_def.groups.growing = 0 +crop_def.drop = { + items = { + {items = {"farming:string"}, rarity = 1}, + {items = {"farming:string"}, rarity = 2}, + {items = {"farming:string"}, rarity = 3}, + {items = {"farming:seed_cotton"}, rarity = 1}, + {items = {"farming:seed_cotton"}, rarity = 2}, + {items = {"farming:seed_cotton"}, rarity = 3}, + } +} +minetest.register_node("farming:cotton_8", table.copy(crop_def)) + +--[[ Cotton (example, is already registered in cotton.lua) +farming.register_plant("farming:cotton", { + description = "Cotton seed", + inventory_image = "farming_cotton_seed.png", + steps = 8, +})]] diff --git a/mods/farming/cucumber.lua b/mods/farming/cucumber.lua new file mode 100755 index 00000000..8e292154 --- /dev/null +++ b/mods/farming/cucumber.lua @@ -0,0 +1,55 @@ + +--[[ + Original textures from DocFarming mod + https://forum.minetest.net/viewtopic.php?id=3948 +]] + +local S = farming.intllib + +-- cucumber +minetest.register_craftitem("farming:cucumber", { + description = S("Cucumber"), + inventory_image = "farming_cucumber.png", + on_place = function(itemstack, placer, pointed_thing) + return farming.place_seed(itemstack, placer, pointed_thing, "farming:cucumber_1") + end, + on_use = minetest.item_eat(4), +}) + +-- cucumber definition +local crop_def = { + drawtype = "plantlike", + tiles = {"farming_cucumber_1.png"}, + paramtype = "light", + walkable = false, + buildable_to = true, + drop = "", + selection_box = farming.select, + groups = { + snappy = 3, flammable = 2, plant = 1, attached_node = 1, + not_in_creative_inventory = 1, growing = 1 + }, + sounds = default.node_sound_leaves_defaults() +} + +-- stage 1 +minetest.register_node("farming:cucumber_1", table.copy(crop_def)) + +-- stage 2 +crop_def.tiles = {"farming_cucumber_2.png"} +minetest.register_node("farming:cucumber_2", table.copy(crop_def)) + +-- stage 3 +crop_def.tiles = {"farming_cucumber_3.png"} +minetest.register_node("farming:cucumber_3", table.copy(crop_def)) + +-- stage 4 (final) +crop_def.tiles = {"farming_cucumber_4.png"} +crop_def.groups.growing = 0 +crop_def.drop = { + items = { + {items = {'farming:cucumber'}, rarity = 1}, + {items = {'farming:cucumber 2'}, rarity = 2}, + } +} +minetest.register_node("farming:cucumber_4", table.copy(crop_def)) diff --git a/mods/farming/depends.txt b/mods/farming/depends.txt old mode 100644 new mode 100755 index 470ec30b..8c4c21f4 --- a/mods/farming/depends.txt +++ b/mods/farming/depends.txt @@ -1,2 +1,3 @@ default wool +intllib? diff --git a/mods/farming/description.txt b/mods/farming/description.txt new file mode 100644 index 00000000..58bdc810 --- /dev/null +++ b/mods/farming/description.txt @@ -0,0 +1 @@ +Adds many plants and food to Minetest \ No newline at end of file diff --git a/mods/farming/donut.lua b/mods/farming/donut.lua new file mode 100755 index 00000000..68aeb8e7 --- /dev/null +++ b/mods/farming/donut.lua @@ -0,0 +1,48 @@ + +local S = farming.intllib + +-- Donut (thanks to Bockwurst for making the donut images) +minetest.register_craftitem("farming:donut", { + description = S("Donut"), + inventory_image = "farming_donut.png", + on_use = minetest.item_eat(4), +}) + +minetest.register_craft({ + output = "farming:donut 3", + recipe = { + {'', 'farming:wheat', ''}, + {'farming:wheat', '', 'farming:wheat'}, + {'', 'farming:wheat', ''}, + } +}) + +-- Chocolate Donut +minetest.register_craftitem("farming:donut_chocolate", { + description = S("Chocolate Donut"), + inventory_image = "farming_donut_chocolate.png", + on_use = minetest.item_eat(6), +}) + +minetest.register_craft({ + output = "farming:donut_chocolate", + recipe = { + {'farming:cocoa_beans'}, + {'farming:donut'}, + } +}) + +-- Apple Donut +minetest.register_craftitem("farming:donut_apple", { + description = S("Apple Donut"), + inventory_image = "farming_donut_apple.png", + on_use = minetest.item_eat(6), +}) + +minetest.register_craft({ + output = "farming:donut_apple", + recipe = { + {'default:apple'}, + {'farming:donut'}, + } +}) diff --git a/mods/farming/grapes.lua b/mods/farming/grapes.lua new file mode 100755 index 00000000..c62b0843 --- /dev/null +++ b/mods/farming/grapes.lua @@ -0,0 +1,202 @@ + +local S = farming.intllib + +-- grapes +minetest.register_craftitem("farming:grapes", { + description = S("Grapes"), + inventory_image = "farming_grapes.png", + on_use = minetest.item_eat(2), + + on_place = function(itemstack, placer, pointed_thing) + + if minetest.is_protected(pointed_thing.under, placer:get_player_name()) then + return + end + + local nodename = minetest.get_node(pointed_thing.under).name + + if nodename == "farming:trellis" then + minetest.set_node(pointed_thing.under, {name = "farming:grapes_1"}) + + minetest.sound_play("default_place_node", {pos = pointed_thing.above, gain = 1.0}) + else + return + end + + if not minetest.setting_getbool("creative_mode") then + + itemstack:take_item() + + -- check for refill + if itemstack:get_count() == 0 then + + minetest.after(0.20, + farming.refill_plant, + placer, + "farming:grapes", + placer:get_wield_index() + ) + end + end + + return itemstack + end +}) + +-- grapes can be used for violet dye +minetest.register_craft({ + output = "dye:violet", + recipe = { + {'farming:grapes'}, + } +}) + +-- trellis +minetest.register_node("farming:trellis", { + description = S("Trellis (place on soil before planting grapes)"), + drawtype = "plantlike", + tiles = {"farming_trellis.png"}, + inventory_image = "farming_trellis.png", + visual_scale = 1.45, + paramtype = "light", + walkable = false, + buildable_to = true, + sunlight_propagates = true, + drop = "farming:trellis", + selection_box = farming.select, + groups = {snappy = 3, flammable = 2, attached_node = 1}, + sounds = default.node_sound_leaves_defaults(), + + on_place = function(itemstack, placer, pointed_thing) + local top = { + x = pointed_thing.above.x, + y = pointed_thing.above.y + 1, + z = pointed_thing.above.z + } + if minetest.is_protected(pointed_thing.above, placer:get_player_name()) + or minetest.is_protected(top, placer:get_player_name()) then -- MFF crabman(18/06/2015) + return + end + + local nodename = minetest.get_node(pointed_thing.under).name + + if minetest.get_item_group(nodename, "soil") < 2 then + return + end + + nodename = minetest.get_node(top).name + + if nodename ~= "air" then + return + end + + minetest.set_node(pointed_thing.above, {name = "farming:trellis"}) + + if not minetest.setting_getbool("creative_mode") then + itemstack:take_item() + end + + return itemstack + end +}) + +minetest.register_craft({ + output = "farming:trellis", + recipe = { + {'default:stick', 'default:stick', 'default:stick'}, + {'default:stick', 'default:stick', 'default:stick'}, + {'default:stick', '', 'default:stick'}, + } +}) + +minetest.register_craft({ + type = "fuel", + recipe = "farming:trellis", + burntime = 15, +}) + +-- grapes definition +local crop_def = { + drawtype = "plantlike", + tiles = {"farming_grapes_1.png"}, + visual_scale = 1.45, + paramtype = "light", + walkable = false, + buildable_to = true, + sunlight_propagates = true, + drop = { + items = { + {items = {'farming:trellis'}, rarity = 1}, + } + }, + selection_box = farming.select, + groups = { + snappy = 3, flammable = 3, not_in_creative_inventory = 1, + attached_node = 1, growing = 1 + }, + sounds = default.node_sound_leaves_defaults() +} + +-- stage 1 +minetest.register_node("farming:grapes_1", table.copy(crop_def)) + +-- stage2 +crop_def.tiles = {"farming_grapes_2.png"} +minetest.register_node("farming:grapes_2", table.copy(crop_def)) + +-- stage 3 +crop_def.tiles = {"farming_grapes_3.png"} +minetest.register_node("farming:grapes_3", table.copy(crop_def)) + +-- stage 4 +crop_def.tiles = {"farming_grapes_4.png"} +minetest.register_node("farming:grapes_4", table.copy(crop_def)) + +-- stage 5 +crop_def.tiles = {"farming_grapes_5.png"} +minetest.register_node("farming:grapes_5", table.copy(crop_def)) + +-- stage 6 +crop_def.tiles = {"farming_grapes_6.png"} +minetest.register_node("farming:grapes_6", table.copy(crop_def)) + +-- stage 7 +crop_def.tiles = {"farming_grapes_7.png"} +minetest.register_node("farming:grapes_7", table.copy(crop_def)) + +-- stage 8 (final) +crop_def.tiles = {"farming_grapes_8.png"} +crop_def.groups.growing = 0 +crop_def.drop = { + items = { + {items = {'farming:trellis'}, rarity = 1}, + {items = {'farming:grapes 3'}, rarity = 1}, + {items = {'farming:grapes 1'}, rarity = 2}, + {items = {'farming:grapes 1'}, rarity = 3}, + } +} +minetest.register_node("farming:grapes_8", table.copy(crop_def)) + +-- wild grape vine (this is what you find on the map) +minetest.register_node("farming:grapebush", { + drawtype = "plantlike", + tiles = {"farming_grapebush.png"}, + paramtype = "light", + waving = 1, + walkable = false, + buildable_to = true, + sunlight_propagates = true, + drop = { + items = { + {items = {'farming:grapes 1'}, rarity = 1}, + {items = {'farming:grapes 1'}, rarity = 2}, + {items = {'farming:grapes 1'}, rarity = 3}, + } + }, + selection_box = farming.select, + groups = { + snappy = 3, flammable = 2, plant = 1, attached_node = 1, + not_in_creative_inventory=1 + }, + sounds = default.node_sound_leaves_defaults(), +}) diff --git a/mods/farming/grass.lua b/mods/farming/grass.lua new file mode 100755 index 00000000..aacb220f --- /dev/null +++ b/mods/farming/grass.lua @@ -0,0 +1,42 @@ + +for i = 3, 5 do + + -- Override default grass and have it drop Wheat Seeds + + minetest.override_item("default:grass_" .. i, { + drop = { + max_items = 1, + items = { + {items = {'farming:seed_wheat'}, rarity = 5}, + {items = {'default:grass_1'}}, + } + }, + }) + + -- Override default dry grass and have it drop Barley Seeds + if minetest.registered_nodes["default:dry_grass_1"] then + + minetest.override_item("default:dry_grass_" .. i, { + drop = { + max_items = 1, + items = { + {items = {'farming:seed_barley'}, rarity = 6}, + {items = {'default:dry_grass_1'}}, + } + }, + }) + end + +end + +-- Override default Jungle Grass and have it drop Cotton Seeds + +minetest.override_item("default:junglegrass", { + drop = { + max_items = 1, + items = { + {items = {'farming:seed_cotton'}, rarity = 8}, + {items = {'default:junglegrass'}}, + } + }, +}) diff --git a/mods/farming/hoes.lua b/mods/farming/hoes.lua old mode 100644 new mode 100755 index 084d586f..6fece5c5 --- a/mods/farming/hoes.lua +++ b/mods/farming/hoes.lua @@ -1,65 +1,181 @@ + +local S = farming.intllib + +-- Hoe registration function + +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 + if def.material == nil then + minetest.register_craft({ + output = name:sub(2), + recipe = def.recipe + }) + else + minetest.register_craft({ + output = name:sub(2), + recipe = { + {def.material, def.material, ""}, + {"", "group:stick", ""}, + {"", "group:stick", ""} + } + }) + -- Reverse Recipe + minetest.register_craft({ + output = name:sub(2), + recipe = { + {"", def.material, def.material}, + {"", "group:stick", ""}, + {"", "group:stick", ""} + } + }) + end +end + +-- Turns dirt with group soil=1 into soil + +function farming.hoe_on_use(itemstack, user, pointed_thing, uses) + + local pt = pointed_thing + + -- check if pointing at a node + if not pt or pt.type ~= "node" then + return + end + + local under = minetest.get_node(pt.under) + local upos = pointed_thing.under + + if minetest.is_protected(upos, user:get_player_name()) then + minetest.record_protection_violation(upos, user:get_player_name()) + return + end + + 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] + or 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 dirt + if minetest.get_item_group(under.name, "soil") ~= 1 then + return + end + + -- turn the node into soil, wear out item and play sound + minetest.set_node(pt.under, {name = "farming:soil"}) + + minetest.sound_play("default_dig_crumbly", {pos = pt.under, gain = 0.5}) + if not minetest.setting_getbool("creative_mode") then --MFF DEBUT crabman(26/07/2015) not wearout if creative mod and invtweak refill break tools + local tool_name = itemstack:get_name() + itemstack:add_wear(65535/(uses-1)) + if itemstack:get_wear() == 0 and minetest.get_modpath("invtweak") then + local index = user:get_wield_index() + minetest.sound_play("invtweak_tool_break", {pos = user:getpos(), gain = 0.9, max_hear_distance = 5}) + minetest.after(0.20, refill, user, tool_name, index) + end + end --MFF FIN + return itemstack +end + +-- Define Hoes +-- Material fields added for MFF + farming.register_hoe(":farming:hoe_wood", { - description = "Wooden Hoe", + description = S("Wooden Hoe"), inventory_image = "farming_tool_woodhoe.png", max_uses = 30, - recipe = { - {"group:wood", "group:wood"}, - {"", "group:stick"}, - {"", "group:stick"}, - } + material = "group:wood" }) farming.register_hoe(":farming:hoe_stone", { - description = "Stone Hoe", + description = S("Stone Hoe"), inventory_image = "farming_tool_stonehoe.png", max_uses = 90, - recipe = { - {"group:stone", "group:stone"}, - {"", "group:stick"}, - {"", "group:stick"}, - } + material = "group:stone" }) farming.register_hoe(":farming:hoe_steel", { - description = "Steel Hoe", + description = S("Steel Hoe"), inventory_image = "farming_tool_steelhoe.png", max_uses = 200, - recipe = { - {"default:steel_ingot", "default:steel_ingot"}, - {"", "group:stick"}, - {"", "group:stick"}, - } + material = "default:steel_ingot" }) farming.register_hoe(":farming:hoe_bronze", { - description = "Bronze Hoe", + description = S("Bronze Hoe"), inventory_image = "farming_tool_bronzehoe.png", max_uses = 220, - recipe = { - {"default:bronze_ingot", "default:bronze_ingot"}, - {"", "group:stick"}, - {"", "group:stick"}, - } + material = "default:bronze_ingot" +}) + +farming.register_hoe(":farming:hoe_silver", { + description = S("Silver Hoe"), + inventory_image = "farming_tool_silverhoe.png", + max_uses = 300, + material = "default:silver_ingot" }) farming.register_hoe(":farming:hoe_mese", { - description = "Mese Hoe", + description = S("Mese Hoe"), inventory_image = "farming_tool_mesehoe.png", max_uses = 350, - recipe = { - {"default:mese_crystal", "default:mese_crystal"}, - {"", "group:stick"}, - {"", "group:stick"}, - } + material = "default:mese_crystal" }) farming.register_hoe(":farming:hoe_diamond", { - description = "Diamond Hoe", + description = S("Diamond Hoe"), inventory_image = "farming_tool_diamondhoe.png", max_uses = 500, - recipe = { - {"default:diamond", "default:diamond"}, - {"", "group:stick"}, - {"", "group:stick"}, - } + material = "default:diamond" +}) + +farming.register_hoe(":farming:hoe_mithril", { + description = S("Mithril Hoe"), + inventory_image = "farming_tool_mithrilhoe.png", + max_uses = 1000, + material = "default:mithril_ingot" }) diff --git a/mods/farming/init.lua b/mods/farming/init.lua old mode 100644 new mode 100755 index 4f65d5dd..fc55b511 --- a/mods/farming/init.lua +++ b/mods/farming/init.lua @@ -1,64 +1,708 @@ --- Global farming namespace +--[[ + Minetest Farming Redo Mod 1.22 (4th June 2016) + by TenPlus1 + NEW growing routine by prestidigitator + auto-refill by crabman77 +]] + farming = {} +farming.mod = "redo" farming.path = minetest.get_modpath("farming") +farming.hoe_on_use = default.hoe_on_use +farming.select = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5} +} --- Load files -dofile(farming.path .. "/api.lua") -dofile(farming.path .. "/nodes.lua") -dofile(farming.path .. "/hoes.lua") +farming.DEBUG = false +-- farming.DEBUG = {} -- Uncomment to turn on profiling code/functions --- 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", +local DEBUG_abm_runs = 0 +local DEBUG_abm_time = 0 +local DEBUG_timer_runs = 0 +local DEBUG_timer_time = 0 + +if farming.DEBUG then + + function farming.DEBUG.reset_times() + DEBUG_abm_runs = 0 + DEBUG_abm_time = 0 + DEBUG_timer_runs = 0 + DEBUG_timer_time = 0 + end + + function farming.DEBUG.report_times() + + local abm_n = DEBUG_abm_runs + local abm_dt = DEBUG_abm_time + local abm_avg = (abm_n > 0 and abm_dt / abm_n) or 0 + local timer_n = DEBUG_timer_runs + local timer_dt = DEBUG_timer_time + local timer_avg = (timer_n > 0 and timer_dt / timer_n) or 0 + local dt = abm_dt + timer_dt + + print("ABM ran for "..abm_dt.."µs over "..abm_n.." runs: "..abm_avg.."µs/run") + print("Timer ran for "..timer_dt.."µs over "..timer_n.." runs: "..timer_avg.."µs/run") + print("Total farming time: "..dt.."µs") + end +end + +local statistics = dofile(farming.path.."/statistics.lua") + +-- Intllib + +local S +if minetest.get_modpath("intllib") then + S = intllib.Getter() +else + S = function(s) return s end +end +farming.intllib = S + +-- Utility Functions + +local time_speed = tonumber(minetest.setting_get("time_speed")) or 72 +local SECS_PER_CYCLE = (time_speed > 0 and 24 * 60 * 60 / time_speed) or 0 + +local function clamp(x, min, max) + return (x < min and min) or (x > max and max) or x +end + +local function in_range(x, min, max) + return min <= x and x <= max +end + +--- Tests the amount of day or night time between two times. + -- + -- @param t_game + -- The current time, as reported by mintest.get_gametime(). + -- @param t_day + -- The current time, as reported by mintest.get_timeofday(). + -- @param dt + -- The amount of elapsed time. + -- @param count_day + -- If true, count elapsed day time. Otherwise, count elapsed night time. + -- @return + -- The amount of day or night time that has elapsed. + +local function day_or_night_time(t_game, t_day, dt, count_day) + + local t1_day = t_day - dt / SECS_PER_CYCLE + local t1_c, t2_c -- t1_c < t2_c and t2_c always in [0, 1) + + if count_day then + + if t_day < 0.25 then + t1_c = t1_day + 0.75 -- Relative to sunup, yesterday + t2_c = t_day + 0.75 + else + t1_c = t1_day - 0.25 -- Relative to sunup, today + t2_c = t_day - 0.25 + end + else + if t_day < 0.75 then + t1_c = t1_day + 0.25 -- Relative to sundown, yesterday + t2_c = t_day + 0.25 + else + t1_c = t1_day - 0.75 -- Relative to sundown, today + t2_c = t_day - 0.75 + end + end + + local dt_c = clamp(t2_c, 0, 0.5) - clamp(t1_c, 0, 0.5) -- this cycle + + if t1_c < -0.5 then + local nc = math.floor(-t1_c) + t1_c = t1_c + nc + dt_c = dt_c + 0.5 * nc + clamp(-t1_c - 0.5, 0, 0.5) + end + + return dt_c * SECS_PER_CYCLE +end + +--- Tests the amount of elapsed day time. + -- + -- @param dt + -- The amount of elapsed time. + -- @return + -- The amount of day time that has elapsed. + -- +local function day_time(dt) + return day_or_night_time(minetest.get_gametime(), minetest.get_timeofday(), dt, true) +end + +--- Tests the amount of elapsed night time. + -- + -- @param dt + -- The amount of elapsed time. + -- @return + -- The amount of night time that has elapsed. + -- +local function night_time(time_game, time_day, dt, count_day) + return day_or_night_time(minetest.get_gametime(), minetest.get_timeofday(), dt, false) +end + + +-- Growth Logic + +local STAGE_LENGTH_AVG = 160.0 +local STAGE_LENGTH_DEV = STAGE_LENGTH_AVG / 6 +local MIN_LIGHT = 11 -- /MFF (Mg|06/04/15 8:21PM--See #82) +local MAX_LIGHT = 1000 + +--- Determines plant name and stage from node. + -- + -- Separates node name on the last underscore (_). + -- + -- @param node + -- Node or position table, or node name. + -- @return + -- List (plant_name, stage), or nothing (nil) if node isn't loaded + +local function plant_name_stage(node) + + local name + + if type(node) == 'table' then + + if node.name then + name = node.name + elseif node.x and node.y and node.z then + node = minetest.get_node_or_nil(node) + name = node and node.name + end + else + name = tostring(node) + end + + if not name or name == "ignore" then + return nil + end + + local sep_pos = name:find("_[^_]+$") + + if sep_pos and sep_pos > 1 then + + local stage = tonumber(name:sub(sep_pos + 1)) + + if stage and stage >= 0 then + return name:sub(1, sep_pos - 1), stage + end + end + + return name, 0 +end + +-- Map from node name to +-- { plant_name = ..., name = ..., stage = n, stages_left = { node_name, ... } } + +local plant_stages = {} + +farming.plant_stages = plant_stages + +--- Registers the stages of growth of a (possible plant) node. + -- + -- @param node + -- Node or position table, or node name. + -- @return + -- The (possibly zero) number of stages of growth the plant will go through + -- before being fully grown, or nil if not a plant. + +local register_plant_node + +-- Recursive helper +local function reg_plant_stages(plant_name, stage, force_last) + + local node_name = plant_name and plant_name .. "_" .. stage + local node_def = node_name and minetest.registered_nodes[node_name] + + if not node_def then + return nil + end + + local stages = plant_stages[node_name] + + if stages then + return stages + end + + if minetest.get_item_group(node_name, "growing") > 0 then + + local ns = reg_plant_stages(plant_name, stage + 1, true) + local stages_left = (ns and { ns.name, unpack(ns.stages_left) }) or {} + + stages = { + plant_name = plant_name, + name = node_name, + stage = stage, + stages_left = stages_left + } + + if #stages_left > 0 then + + local old_constr = node_def.on_construct + local old_destr = node_def.on_destruct + + minetest.override_item(node_name, + { + on_construct = function(pos) + + if old_constr then + old_constr(pos) + end + + farming.handle_growth(pos) + end, + + on_destruct = function(pos) + + minetest.get_node_timer(pos):stop() + + if old_destr then + old_destr(pos) + end + end, + + on_timer = function(pos, elapsed) + return farming.plant_growth_timer(pos, elapsed, node_name) + end, + }) + end + + elseif force_last then + + stages = { + plant_name = plant_name, + name = node_name, + stage = stage, + stages_left = {} + } + else + return nil + end + + plant_stages[node_name] = stages + + return stages +end + +register_plant_node = function(node) + + local plant_name, stage = plant_name_stage(node) + + if plant_name then + + local stages = reg_plant_stages(plant_name, stage, false) + return stages and #stages.stages_left + else + return nil + end +end + +local function set_growing(pos, stages_left) + + if not stages_left then + return + end + + local timer = minetest.get_node_timer(pos) + + if stages_left > 0 then + + if not timer:is_started() then + + local stage_length = statistics.normal(STAGE_LENGTH_AVG, STAGE_LENGTH_DEV) + + stage_length = clamp(stage_length, 0.5 * STAGE_LENGTH_AVG, 3.0 * STAGE_LENGTH_AVG) + + timer:set(stage_length, -0.5 * math.random() * STAGE_LENGTH_AVG) + end + + elseif timer:is_started() then + timer:stop() + end +end + +-- Detects a plant type node at the given position, starting +-- or stopping the plant growth timer as appopriate + +-- @param pos +-- The node's position. +-- @param node +-- The cached node table if available, or nil. + +function farming.handle_growth(pos, node) + + if not pos then + return + end + + local stages_left = register_plant_node(node or pos) + + if stages_left then + set_growing(pos, stages_left) + end +end + +minetest.after(0, function() + + for _, node_def in pairs(minetest.registered_nodes) do + register_plant_node(node_def) + end +end) + +local abm_func = farming.handle_growth + +if farming.DEBUG then + + local normal_abm_func = abm_func + + abm_func = function(...) + + local t0 = minetest.get_us_time() + local r = { normal_abm_func(...) } + local t1 = minetest.get_us_time() + + DEBUG_abm_runs = DEBUG_abm_runs + 1 + DEBUG_abm_time = DEBUG_abm_time + (t1 - t0) + + return unpack(r) + end +end + +-- Just in case a growing type or added node is missed (also catches existing +-- nodes added to map before timers were incorporated). + +minetest.register_abm({ + nodenames = { "group:growing" }, + interval = 300, + chance = 1, + action = abm_func }) -minetest.register_craftitem("farming:bread", { - description = "Bread", - inventory_image = "farming_bread.png", - on_use = minetest.item_eat(4), -}) +-- Plant timer function. +-- Grows plants under the right conditions. -minetest.register_craft({ - type = "shapeless", - output = "farming:flour", - recipe = {"farming:wheat", "farming:wheat", "farming:wheat", "farming:wheat"} -}) +function farming.plant_growth_timer(pos, elapsed, node_name) -minetest.register_craft({ - type = "cooking", - cooktime = 15, - output = "farming:bread", - recipe = "farming:flour" -}) + local stages = plant_stages[node_name] --- 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"} -}) + if not stages then + return false + end -minetest.register_craftitem("farming:string", { - description = "String", - inventory_image = "farming_cotton.png", -}) + local max_growth = #stages.stages_left -minetest.register_craft({ - output = "wool:white", - recipe = { - {"farming:cotton", "farming:cotton"}, - {"farming:cotton", "farming:cotton"}, - } -}) + if max_growth <= 0 then + return false + end + + if stages.plant_name == "farming:cocoa" then + + if not minetest.find_node_near(pos, 1, + {"default:jungletree", "moretrees:jungletree_leaves_green"}) then + + return true + end + else + local under = minetest.get_node({ x = pos.x, y = pos.y - 1, z = pos.z }) + + if minetest.get_item_group(under.name, "soil") < 3 then + return true + end + end + + local growth + local light_pos = {x = pos.x, y = pos.y + 1, z = pos.z} + local lambda = elapsed / STAGE_LENGTH_AVG + + if lambda < 0.1 then + return true + end + + if max_growth == 1 or lambda < 2.0 then + + local light = (minetest.get_node_light(light_pos) or 0) + --print ("light level:", light) + + if not in_range(light, MIN_LIGHT, MAX_LIGHT) then + return true + end + + growth = 1 + else + local night_light = (minetest.get_node_light(light_pos, 0) or 0) + local day_light = (minetest.get_node_light(light_pos, 0.5) or 0) + local night_growth = in_range(night_light, MIN_LIGHT, MAX_LIGHT) + local day_growth = in_range(day_light, MIN_LIGHT, MAX_LIGHT) + + if not night_growth then + + if not day_growth then + return true + end + + lambda = day_time(elapsed) / STAGE_LENGTH_AVG + + elseif not day_growth then + + lambda = night_time(elapsed) / STAGE_LENGTH_AVG + end + + growth = statistics.poisson(lambda, max_growth) + + if growth < 1 then + return true + end + end + + if minetest.registered_nodes[stages.stages_left[growth]] then + minetest.swap_node(pos, {name = stages.stages_left[growth]}) + else + return true + end + + return growth ~= max_growth +end + +if farming.DEBUG then + + local timer_func = farming.plant_growth_timer; + + farming.plant_growth_timer = function(pos, elapsed, node_name) + + local t0 = minetest.get_us_time() + local r = { timer_func(pos, elapsed, node_name) } + local t1 = minetest.get_us_time() + + DEBUG_timer_runs = DEBUG_timer_runs + 1 + DEBUG_timer_time = DEBUG_timer_time + (t1 - t0) + + return unpack(r) + end +end + +-- refill placed plant by crabman (26/08/2015) +local can_refill_plant = { + ["farming:blueberry_1"] = "farming:blueberries", + ["farming:carrot_1"] = "farming:carrot", + ["farming:coffee_1"] = "farming:coffee_beans", + ["farming:corn_1"] = "farming:corn", + ["farming:cotton_1"] = "farming:seed_cotton", + ["farming:cucumber_1"] = "farming:cucumber", + ["farming:melon_1"] = "farming:melon_slice", + ["farming:potato_1"] = "farming:potato", + ["farming:pumpkin_1"] = "farming:pumpkin_slice", + ["farming:raspberry_1"] = "farming:raspberries", + ["farming:rhubarb_1"] = "farming:rhubarb", + ["farming:tomato_1"] = "farming:tomato", + ["farming:wheat_1"] = "farming:seed_wheat", + ["farming:grapes_1"] = "farming:grapes", + ["farming:beans_1"] = "farming:beans", + ["farming:rhubarb_1"] = "farming:rhubarb", + ["farming:cocoa_1"] = "farming:cocoa_beans", + ["farming:barley_1"] = "farming:seed_barley", +} + +function farming.refill_plant(player, plantname, index) + + local inv = player:get_inventory() + local old_stack = inv:get_stack("main", index) + + if old_stack:get_name() ~= "" then + return + end + + for i, stack in pairs(inv:get_list("main")) do + + if stack:get_name() == plantname and i ~= index then + + inv:set_stack("main", index, stack) + stack:clear() + inv:set_stack("main", i, stack) + --minetest.log("action", "farming: refilled stack("..plantname..") of " .. player:get_player_name() ) + return + end + end +end + +-- Place Seeds on Soil + +function farming.place_seed(itemstack, placer, pointed_thing, plantname) + + local pt = pointed_thing + + -- check if pointing at a node + if not pt or 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] + or not minetest.registered_nodes[above.name] then + return + end + + -- is there an on_rightclick callback? + if minetest.registered_nodes[under.name].on_rightclick and not placer:get_player_control().sneak then + return minetest.registered_nodes[under.name].on_rightclick(pt.under, under, placer, itemstack, pointed_thing) + end + + -- check if pointing at the top of the node + if pt.above.y ~= pt.under.y + 1 then + return + end + + -- can I replace above node, and am I pointing at soil + if not minetest.registered_nodes[above.name].buildable_to + or minetest.get_item_group(under.name, "soil") < 2 + -- avoid multiple seed placement bug + or minetest.get_item_group(above.name, "plant") ~= 0 then + return + end + + -- if not protected then add node and remove 1 item from the itemstack + if not minetest.is_protected(pt.above, placer:get_player_name()) then + + minetest.set_node(pt.above, {name = plantname, param2 = 1}) + + minetest.sound_play("default_place_node", {pos = pt.above, gain = 1.0}) + + if not minetest.setting_getbool("creative_mode") then + + itemstack:take_item() + + -- check for refill + if itemstack:get_count() == 0 + and can_refill_plant[plantname] then + + minetest.after(0.10, + farming.refill_plant, + placer, + can_refill_plant[plantname], + placer:get_wield_index() + ) + end + end + + return itemstack + end +end + +-- Function to register plants (for compatibility) + +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 = S("Seed") + end + + if not def.inventory_image then + def.inventory_image = "unknown_item.png" + end + + if not def.steps then + return nil + end + + -- Register seed + 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 = {seed = 1, snappy = 3, attached_node = 1}, + paramtype = "light", + paramtype2 = "wallmounted", + walkable = false, + sunlight_propagates = true, + selection_box = farming.select, + + on_place = function(itemstack, placer, pointed_thing) + return farming.place_seed(itemstack, placer, pointed_thing, mname .. ":"..pname.."_1") + 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 g = {snappy = 3, flammable = 2, plant = 1, not_in_creative_inventory = 1, attached_node = 1, growing = 1} + + -- Last step doesn't need growing=1 so Abm never has to check these + if i == def.steps then + g.growing = 0 + end + + local node_name = mname .. ":" .. pname .. "_" .. i + + minetest.register_node(node_name, { + drawtype = "plantlike", + waving = 1, + tiles = {mname .. "_" .. pname .. "_" .. i .. ".png"}, + paramtype = "light", + walkable = false, + buildable_to = true, + drop = drop, + selection_box = farming.select, + groups = g, + sounds = default.node_sound_leaves_defaults(), + }) + +-- register_plant_node(node_name) + end + + -- Return info + local r = {seed = mname .. ":seed_" .. pname, harvest = mname .. ":" .. pname} + return r +end + +-- load crops + +dofile(farming.path.."/soil.lua") +dofile(farming.path.."/hoes.lua") +dofile(farming.path.."/grass.lua") +dofile(farming.path.."/wheat.lua") +dofile(farming.path.."/cotton.lua") +dofile(farming.path.."/carrot.lua") +dofile(farming.path.."/potato.lua") +dofile(farming.path.."/tomato.lua") +dofile(farming.path.."/cucumber.lua") +dofile(farming.path.."/corn.lua") +dofile(farming.path.."/coffee.lua") +dofile(farming.path.."/melon.lua") +dofile(farming.path.."/sugar.lua") +dofile(farming.path.."/pumpkin.lua") +dofile(farming.path.."/cocoa.lua") +dofile(farming.path.."/raspberry.lua") +dofile(farming.path.."/blueberry.lua") +dofile(farming.path.."/rhubarb.lua") +dofile(farming.path.."/beanpole.lua") +dofile(farming.path.."/grapes.lua") +dofile(farming.path.."/barley.lua") +dofile(farming.path.."/donut.lua") +dofile(farming.path.."/mapgen.lua") +dofile(farming.path.."/compatibility.lua") -- Farming Plus compatibility diff --git a/mods/farming/init.lua_orig b/mods/farming/init.lua_orig new file mode 100755 index 00000000..aee9976f --- /dev/null +++ b/mods/farming/init.lua_orig @@ -0,0 +1,192 @@ +--[[ + Minetest Farming Redo Mod 1.14 (11th May 2015) + by TenPlus1 +]] + +farming = {} +farming.mod = "redo" +farming.path = minetest.get_modpath("farming") +farming.hoe_on_use = default.hoe_on_use + +dofile(farming.path.."/soil.lua") +dofile(farming.path.."/hoes.lua") +dofile(farming.path.."/grass.lua") +dofile(farming.path.."/wheat.lua") +dofile(farming.path.."/cotton.lua") +dofile(farming.path.."/carrot.lua") +dofile(farming.path.."/potato.lua") +dofile(farming.path.."/tomato.lua") +dofile(farming.path.."/cucumber.lua") +dofile(farming.path.."/corn.lua") +dofile(farming.path.."/coffee.lua") +dofile(farming.path.."/melon.lua") +dofile(farming.path.."/sugar.lua") +dofile(farming.path.."/pumpkin.lua") +dofile(farming.path.."/cocoa.lua") +dofile(farming.path.."/raspberry.lua") +dofile(farming.path.."/blueberry.lua") +dofile(farming.path.."/rhubarb.lua") +dofile(farming.path.."/beanpole.lua") +dofile(farming.path.."/donut.lua") +dofile(farming.path.."/mapgen.lua") +dofile(farming.path.."/compatibility.lua") -- Farming Plus compatibility + +-- Place Seeds on Soil + +function farming.place_seed(itemstack, placer, pointed_thing, plantname) + local pt = pointed_thing + + -- check if pointing at a node + if not pt and pt.type ~= "node" then + return + end + + local under = minetest.get_node(pt.under) + local above = minetest.get_node(pt.above) + + -- check if pointing at the top of the node + if pt.above.y ~= pt.under.y+1 then + return + end + + -- return if any of the nodes is not registered + if not minetest.registered_nodes[under.name] + or not minetest.registered_nodes[above.name] then + return + end + + -- can I replace above node, and am I pointing at soil + if not minetest.registered_nodes[above.name].buildable_to + or minetest.get_item_group(under.name, "soil") < 2 + or minetest.get_item_group(above.name, "plant") ~= 0 then -- ADDED this line for multiple seed placement bug + return + end + + -- add the node and remove 1 item from the itemstack + if not minetest.is_protected(pt.above, placer:get_player_name()) then + minetest.add_node(pt.above, {name=plantname}) + if not minetest.setting_getbool("creative_mode") then + itemstack:take_item() + end + return itemstack + end +end + +-- Single ABM Handles Growing of All Plants + +minetest.register_abm({ + nodenames = {"group:growing"}, + neighbors = {"farming:soil_wet", "default:jungletree"}, + interval = 80, + chance = 2, + + action = function(pos, node) + + -- split plant name (e.g. farming:wheat_1) + local plant = node.name:split("_")[1].."_" + local numb = node.name:split("_")[2] + + -- fully grown ? + if not minetest.registered_nodes[plant..(numb + 1)] then return end + + -- cocoa pod on jungle tree ? + if plant ~= "farming:cocoa_" then + + -- growing on wet soil ? + if minetest.get_node({x=pos.x,y=pos.y-1,z=pos.z}).name ~= "farming:soil_wet" then return end + end + + -- enough light ? + if minetest.get_node_light(pos) < 13 then return end + + -- grow + minetest.set_node(pos, {name=plant..(numb + 1)}) + + end +}) + +-- Function to register plants (for compatibility) + +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 + + -- Register seed + 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 = {seed = 1, snappy = 3, attached_node = 1}, + 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},}, + on_place = function(itemstack, placer, pointed_thing) + return farming.place_seed(itemstack, placer, pointed_thing, mname .. ":"..pname.."_1") + 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 g = {snappy = 3, flammable = 2, plant = 1, not_in_creative_inventory = 1, attached_node = 1, growing = 1} + -- Last step doesn't need growing=1 so Abm never has to check these + if i == def.steps then + g = {snappy = 3, flammable = 2, plant = 1, not_in_creative_inventory = 1, attached_node = 1} + end + + 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 = g, + sounds = default.node_sound_leaves_defaults(), + }) + end + + -- Return info + local r = {seed = mname .. ":seed_" .. pname, harvest = mname .. ":" .. pname} + return r +end + +--[[ Cotton (example, is already registered in cotton.lua) +farming.register_plant("farming:cotton", { + description = "Cotton seed", + inventory_image = "farming_cotton_seed.png", + steps = 8, +}) +--]] diff --git a/mods/farming/license.txt b/mods/farming/license.txt new file mode 100755 index 00000000..5d30c149 --- /dev/null +++ b/mods/farming/license.txt @@ -0,0 +1,14 @@ + + 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. \ No newline at end of file diff --git a/mods/farming/mapgen.lua b/mods/farming/mapgen.lua new file mode 100755 index 00000000..dcd51a33 --- /dev/null +++ b/mods/farming/mapgen.lua @@ -0,0 +1,63 @@ +-- decoration function +local function register_plant(name, min, max, spawnby, num) + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = 0.006, + spread = {x = 100, y = 100, z = 100}, + seed = 329, + octaves = 3, + persist = 0.6 + }, + y_min = min, + y_max = max, + decoration = "farming:" .. name, + spawn_by = spawnby, + num_spawn_by = num, + }) +end + +function farming.register_mgv6_decorations() + register_plant("potato_3", 15, 40, "", -1) + register_plant("tomato_7", 5, 20, "", -1) + register_plant("carrot_8", 1, 30, "group:water", 1) + register_plant("cucumber_4", 1, 20, "group:water", 1) + register_plant("corn_7", 12, 22, "", -1) + register_plant("corn_8", 10, 20, "", -1) + register_plant("coffee_5", 20, 45, "", -1) + register_plant("melon_8", 1, 20, "group:water", 1) + register_plant("pumpkin_8", 1, 20, "group:water", 1) + register_plant("raspberry_4", 3, 10, "", -1) + register_plant("rhubarb_3", 3, 15, "", -1) + register_plant("blueberry_4", 3, 10, "", -1) + register_plant("beanbush", 18, 35, "", -1) + register_plant("grapebush", 25, 45, "", -1) +end + +-- v7 maps have a beach so plants growing near water is limited to 6 high +function farming.register_mgv7_decorations() + register_plant("potato_3", 15, 40, "", -1) + register_plant("tomato_7", 5, 20, "", -1) + register_plant("carrot_8", 1, 6, "", -1) + register_plant("cucumber_4", 1, 6, "", -1) + register_plant("corn_7", 12, 22, "", -1) + register_plant("corn_8", 10, 20, "", -1) + register_plant("coffee_5", 20, 45, "", -1) + register_plant("melon_8", 1, 6, "", -1) + register_plant("pumpkin_8", 1, 6, "", -1) + register_plant("raspberry_4", 3, 10, "", -1) + register_plant("rhubarb_3", 3, 15, "", -1) + register_plant("blueberry_4", 3, 10, "", -1) + register_plant("beanbush", 18, 35, "", -1) + register_plant("grapebush", 25, 45, "", -1) +end + +-- detect mapgen +if minetest.get_mapgen_params().mgname == "v6" then + farming.register_mgv6_decorations() +else + farming.register_mgv7_decorations() +end \ No newline at end of file diff --git a/mods/farming/melon.lua b/mods/farming/melon.lua new file mode 100755 index 00000000..e2f65644 --- /dev/null +++ b/mods/farming/melon.lua @@ -0,0 +1,82 @@ + +local S = farming.intllib + +-- melon +minetest.register_craftitem("farming:melon_slice", { + description = S("Melon Slice"), + inventory_image = "farming_melon_slice.png", + on_place = function(itemstack, placer, pointed_thing) + return farming.place_seed(itemstack, placer, pointed_thing, "farming:melon_1") + end, + on_use = minetest.item_eat(2), +}) + +minetest.register_craft({ + output = "farming:melon_8", + recipe = { + {"farming:melon_slice", "farming:melon_slice", "farming:melon_slice"}, + {"farming:melon_slice", "farming:melon_slice", "farming:melon_slice"}, + {"farming:melon_slice", "farming:melon_slice", "farming:melon_slice"}, + } +}) + +minetest.register_craft({ + output = "farming:melon_slice 9", + recipe = { + {"", "farming:melon_8", ""}, + } +}) + +-- melon definition +local crop_def = { + drawtype = "plantlike", + tiles = {"farming_melon_1.png"}, + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + drop = "", + selection_box = farming.select, + groups = { + snappy = 3, flammable = 2, plant = 1, attached_node = 1, + not_in_creative_inventory = 1, growing = 1 + }, + sounds = default.node_sound_leaves_defaults() +} + +-- stage 1 +minetest.register_node("farming:melon_1", table.copy(crop_def)) + +-- stage 2 +crop_def.tiles = {"farming_melon_2.png"} +minetest.register_node("farming:melon_2", table.copy(crop_def)) + +-- stage 3 +crop_def.tiles = {"farming_melon_3.png"} +minetest.register_node("farming:melon_3", table.copy(crop_def)) + +-- stage 4 +crop_def.tiles = {"farming_melon_4.png"} +minetest.register_node("farming:melon_4", table.copy(crop_def)) + +-- stage 5 +crop_def.tiles = {"farming_melon_5.png"} +minetest.register_node("farming:melon_5", table.copy(crop_def)) + +-- stage 6 +crop_def.tiles = {"farming_melon_6.png"} +minetest.register_node("farming:melon_6", table.copy(crop_def)) + +-- stage 7 +crop_def.tiles = {"farming_melon_7.png"} +minetest.register_node("farming:melon_7", table.copy(crop_def)) + +-- stage 8 (final) +crop_def.drawtype = "nodebox" +crop_def.description = S("Melon") +crop_def.tiles = {"farming_melon_top.png", "farming_melon_top.png", "farming_melon_side.png"} +crop_def.selection_box = {-.5, -.5, -.5, .5, .5, .5} +crop_def.walkable = true +crop_def.groups = {snappy = 1, oddly_breakable_by_hand = 1, flammable = 2, plant = 1} +crop_def.drop = "farming:melon_slice 9" +minetest.register_node("farming:melon_8", table.copy(crop_def)) diff --git a/mods/farming/mod.conf b/mods/farming/mod.conf new file mode 100644 index 00000000..80ab8b0b --- /dev/null +++ b/mods/farming/mod.conf @@ -0,0 +1 @@ +name = farming \ No newline at end of file diff --git a/mods/farming/nodes.lua b/mods/farming/nodes.lua deleted file mode 100644 index 4593e10e..00000000 --- a/mods/farming/nodes.lua +++ /dev/null @@ -1,138 +0,0 @@ -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}, - 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}, - 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", - 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}, - 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 = "Desert Sand", - 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}, - 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:soil", "group:wet"}, - interval = 5, - chance = 10, - action = function(pos, node) - pos.y = pos.y+1 - local nn = minetest.get_node(pos).name - node = minetest.registered_nodes[node.name] - pos.y = pos.y-1 - - if node.soil == nil or node.soil.wet == nil or node.soil.base == nil or node.soil.dry == nil then - return - end - - if minetest.registered_nodes[nn] and minetest.registered_nodes[nn].walkable and minetest.get_item_group(nn, "plant") == 0 and node.name ~= node.soil.base then - minetest.set_node(pos, {name = node.soil.base}) - end - -- check if there is water nearby - if minetest.find_node_near(pos, 3, {"group:water"}) then - -- if it is dry soil and not base node, turn it into wet soil - if node.name ~= node.soil.base and minetest.get_item_group(node.name, "wet") == 0 then - minetest.set_node(pos, {name = node.soil.wet}) - end - else - -- turn it back into base if it is already dry - if minetest.get_item_group(node.name, "wet") == 0 then - -- only turn it back if there is no plant/seed on top of it - if minetest.get_item_group(nn, "plant") == 0 and minetest.get_item_group(nn, "seed") == 0 then - minetest.set_node(pos, {name = node.soil.base}) - end - - -- if its wet turn it back into dry soil - elseif minetest.get_item_group(node.name, "wet") == 1 then - minetest.set_node(pos, {name = node.soil.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/mods/farming/potato.lua b/mods/farming/potato.lua new file mode 100755 index 00000000..be369052 --- /dev/null +++ b/mods/farming/potato.lua @@ -0,0 +1,77 @@ + +--[[ + Original textures from DocFarming mod + https://forum.minetest.net/viewtopic.php?id=3948 +]] + +local S = farming.intllib + +-- potato +minetest.register_craftitem("farming:potato", { + description = S("Potato"), + inventory_image = "farming_potato.png", + on_place = function(itemstack, placer, pointed_thing) + return farming.place_seed(itemstack, placer, pointed_thing, "farming:potato_1") + end, + on_use = minetest.item_eat(1), +}) + +-- baked potato +minetest.register_craftitem("farming:baked_potato", { + description = S("Baked Potato"), + inventory_image = "farming_baked_potato.png", + on_use = minetest.item_eat(6), +}) + +minetest.register_craft({ + type = "cooking", + cooktime = 10, + output = "farming:baked_potato", + recipe = "farming:potato" +}) + +-- potato definition +local crop_def = { + drawtype = "plantlike", + tiles = {"farming_potato_1.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = farming.select, + groups = { + snappy = 3, flammable = 2, plant = 1, attached_node = 1, + not_in_creative_inventory = 1, growing = 1 + }, + sounds = default.node_sound_leaves_defaults() +} + +-- stage 1 +minetest.register_node("farming:potato_1", table.copy(crop_def)) + +-- stage 2 +crop_def.tiles = {"farming_potato_2.png"} +minetest.register_node("farming:potato_2", table.copy(crop_def)) + +-- stage 3 +crop_def.tiles = {"farming_potato_3.png"} +crop_def.drop = { + items = { + {items = {'farming:potato'}, rarity = 1}, + {items = {'farming:potato'}, rarity = 3}, + } +} +minetest.register_node("farming:potato_3", table.copy(crop_def)) + +-- stage 4 +crop_def.tiles = {"farming_potato_4.png"} +crop_def.groups.growing = 0 +crop_def.drop = { + items = { + {items = {'farming:potato 2'}, rarity = 1}, + {items = {'farming:potato 3'}, rarity = 2}, + } +} +minetest.register_node("farming:potato_4", table.copy(crop_def)) diff --git a/mods/farming/pumpkin.lua b/mods/farming/pumpkin.lua new file mode 100755 index 00000000..ebbbd877 --- /dev/null +++ b/mods/farming/pumpkin.lua @@ -0,0 +1,181 @@ + +--[[ + Big thanks to PainterlyPack.net for allowing me to use these textures +]] + +local S = farming.intllib + +-- pumpkin +minetest.register_node("farming:pumpkin", { + description = S("Pumpkin"), + tiles = { + "farming_pumpkin_top.png", + "farming_pumpkin_top.png", + "farming_pumpkin_side.png" + }, + groups = { + choppy = 1, oddly_breakable_by_hand = 1, + flammable = 2, plant = 1 + }, + drop = { + items = { + {items = {'farming:pumpkin_slice 9'}, rarity = 1}, + } + }, + sounds = default.node_sound_wood_defaults(), +}) + +-- pumpkin slice +minetest.register_craftitem("farming:pumpkin_slice", { + description = S("Pumpkin Slice"), + inventory_image = "farming_pumpkin_slice.png", + on_place = function(itemstack, placer, pointed_thing) + return farming.place_seed(itemstack, placer, pointed_thing, "farming:pumpkin_1") + end, + on_use = minetest.item_eat(2), +}) + +minetest.register_craft({ + output = "farming:pumpkin", + recipe = { + {"farming:pumpkin_slice", "farming:pumpkin_slice", "farming:pumpkin_slice"}, + {"farming:pumpkin_slice", "farming:pumpkin_slice", "farming:pumpkin_slice"}, + {"farming:pumpkin_slice", "farming:pumpkin_slice", "farming:pumpkin_slice"}, + } +}) + +minetest.register_craft({ + output = "farming:pumpkin_slice 9", + recipe = { + {"", "farming:pumpkin", ""}, + } +}) + +-- jack 'o lantern +minetest.register_node("farming:jackolantern", { + description = S("Jack 'O Lantern"), + tiles = { + "farming_pumpkin_top.png", + "farming_pumpkin_top.png", + "farming_pumpkin_side.png", + "farming_pumpkin_side.png", + "farming_pumpkin_side.png", + "farming_pumpkin_face_off.png" + }, + paramtype2 = "facedir", + groups = {choppy = 1, oddly_breakable_by_hand = 1, flammable = 2}, + sounds = default.node_sound_wood_defaults(), + on_punch = function(pos, node, puncher) + node.name = "farming:jackolantern_on" + minetest.swap_node(pos, node) + end, +}) + +minetest.register_node("farming:jackolantern_on", { + tiles = { + "farming_pumpkin_top.png", + "farming_pumpkin_top.png", + "farming_pumpkin_side.png", + "farming_pumpkin_side.png", + "farming_pumpkin_side.png", + "farming_pumpkin_face_on.png" + }, + light_source = default.LIGHT_MAX - 1, + paramtype2 = "facedir", + groups = {choppy = 1, oddly_breakable_by_hand = 1, flammable = 2}, + sounds = default.node_sound_wood_defaults(), + drop = "farming:jackolantern", + on_punch = function(pos, node, puncher) + node.name = "farming:jackolantern" + minetest.swap_node(pos, node) + end, +}) + +minetest.register_craft({ + output = "farming:jackolantern", + recipe = { + {"", "", ""}, + {"", "default:torch", ""}, + {"", "farming:pumpkin", ""}, + } +}) + +-- pumpkin bread +minetest.register_craftitem("farming:pumpkin_bread", { + description = S("Pumpkin Bread"), + inventory_image = "farming_pumpkin_bread.png", + on_use = minetest.item_eat(8) +}) + +minetest.register_craftitem("farming:pumpkin_dough", { + description = S("Pumpkin Dough"), + inventory_image = "farming_pumpkin_dough.png", +}) + +minetest.register_craft({ + output = "farming:pumpkin_dough", + type = "shapeless", + recipe = {"farming:flour", "farming:pumpkin_slice", "farming:pumpkin_slice"} +}) + +minetest.register_craft({ + type = "cooking", + output = "farming:pumpkin_bread", + recipe = "farming:pumpkin_dough", + cooktime = 10 +}) + +-- pumpkin definition +local crop_def = { + drawtype = "plantlike", + tiles = {"farming_pumpkin_1.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = farming.select, + groups = { + snappy = 3, flammable = 2, plant = 1, attached_node = 1, + not_in_creative_inventory = 1, growing = 1 + }, + sounds = default.node_sound_leaves_defaults() +} + +-- stage 1 +minetest.register_node("farming:pumpkin_1", table.copy(crop_def)) + +-- stage 2 +crop_def.tiles = {"farming_pumpkin_2.png"} +minetest.register_node("farming:pumpkin_2", table.copy(crop_def)) + +-- stage 3 +crop_def.tiles = {"farming_pumpkin_3.png"} +minetest.register_node("farming:pumpkin_3", table.copy(crop_def)) + +-- stage 4 +crop_def.tiles = {"farming_pumpkin_4.png"} +minetest.register_node("farming:pumpkin_4", table.copy(crop_def)) + +-- stage 5 +crop_def.tiles = {"farming_pumpkin_5.png"} +minetest.register_node("farming:pumpkin_5", table.copy(crop_def)) + +-- stage 6 +crop_def.tiles = {"farming_pumpkin_6.png"} +minetest.register_node("farming:pumpkin_6", table.copy(crop_def)) + +-- stage 7 +crop_def.tiles = {"farming_pumpkin_7.png"} +minetest.register_node("farming:pumpkin_7", table.copy(crop_def)) + +-- stage 8 (final) +crop_def.tiles = {"farming_pumpkin_8.png"} +crop_def.groups.growing = 0 +crop_def.drop = { + items = { + {items = {'farming:pumpkin_slice 9'}, rarity = 1}, + } +} +minetest.register_node("farming:pumpkin_8", table.copy(crop_def)) diff --git a/mods/farming/raspberry.lua b/mods/farming/raspberry.lua new file mode 100755 index 00000000..384eb590 --- /dev/null +++ b/mods/farming/raspberry.lua @@ -0,0 +1,68 @@ + +local S = farming.intllib + +-- raspberries +minetest.register_craftitem("farming:raspberries", { + description = S("Raspberries"), + inventory_image = "farming_raspberries.png", + on_place = function(itemstack, placer, pointed_thing) + return farming.place_seed(itemstack, placer, pointed_thing, "farming:raspberry_1") + end, + on_use = minetest.item_eat(1), +}) + +-- raspberry smoothie +minetest.register_craftitem("farming:smoothie_raspberry", { + description = S("Raspberry Smoothie"), + inventory_image = "farming_raspberry_smoothie.png", + on_use = minetest.item_eat(2, "vessels:drinking_glass"), +}) + +minetest.register_craft({ + output = "farming:smoothie_raspberry", + recipe = { + {"default:snow"}, + {"farming:raspberries"}, + {"vessels:drinking_glass"}, + } +}) + +-- raspberries definition +local crop_def = { + drawtype = "plantlike", + tiles = {"farming_raspberry_1.png"}, + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + drop = "", + selection_box = farming.select, + groups = { + snappy = 3, flammable = 2, plant = 1, attached_node = 1, + not_in_creative_inventory = 1, growing = 1 + }, + sounds = default.node_sound_leaves_defaults() +} + +-- stage 1 +minetest.register_node("farming:raspberry_1", table.copy(crop_def)) + +-- stage 2 +crop_def.tiles = {"farming_raspberry_2.png"} +minetest.register_node("farming:raspberry_2", table.copy(crop_def)) + +-- stage 3 +crop_def.tiles = {"farming_raspberry_3.png"} +minetest.register_node("farming:raspberry_3", table.copy(crop_def)) + +-- stage 4 (final) +crop_def.tiles = {"farming_raspberry_4.png"} +crop_def.groups.growing = 0 +crop_def.drop = { + items = { + {items = {'farming:raspberries 2'}, rarity = 1}, + {items = {'farming:raspberries'}, rarity = 2}, + {items = {'farming:raspberries'}, rarity = 3}, + } +} +minetest.register_node("farming:raspberry_4", table.copy(crop_def)) diff --git a/mods/farming/rhubarb.lua b/mods/farming/rhubarb.lua new file mode 100755 index 00000000..30e9fba9 --- /dev/null +++ b/mods/farming/rhubarb.lua @@ -0,0 +1,64 @@ + +local S = farming.intllib + +-- rhubarb +minetest.register_craftitem("farming:rhubarb", { + description = S("Rhubarb"), + inventory_image = "farming_rhubarb.png", + on_place = function(itemstack, placer, pointed_thing) + return farming.place_seed(itemstack, placer, pointed_thing, "farming:rhubarb_1") + end, + on_use = minetest.item_eat(1), +}) + +-- rhubarb pie +minetest.register_craftitem("farming:rhubarb_pie", { + description = S("Rhubarb Pie"), + inventory_image = "farming_rhubarb_pie.png", + on_use = minetest.item_eat(6), +}) + +minetest.register_craft({ + output = "farming:rhubarb_pie", + recipe = { + {"", "farming:sugar", ""}, + {"farming:rhubarb", "farming:rhubarb", "farming:rhubarb"}, + {"farming:wheat", "farming:wheat", "farming:wheat"}, + } +}) + +-- rhubarb definition +local crop_def = { + drawtype = "plantlike", + tiles = {"farming_rhubarb_1.png"}, + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + drop = "", + selection_box = farming.select, + groups = { + snappy = 3, flammable = 2, plant = 1, attached_node = 1, + not_in_creative_inventory = 1, growing = 1 + }, + sounds = default.node_sound_leaves_defaults() +} + +-- stage 1 +minetest.register_node("farming:rhubarb_1", table.copy(crop_def)) + +-- stage2 +crop_def.tiles = {"farming_rhubarb_2.png"} +minetest.register_node("farming:rhubarb_2", table.copy(crop_def)) + +-- stage 3 (final) +crop_def.tiles = {"farming_rhubarb_3.png"} +crop_def.groups.growing = 0 +crop_def.drop = { + items = { + {items = {'farming:rhubarb 2'}, rarity = 1}, + {items = {'farming:rhubarb'}, rarity = 2}, + {items = {'farming:rhubarb'}, rarity = 3}, + } +} +minetest.register_node("farming:rhubarb_3", table.copy(crop_def)) diff --git a/mods/farming/soil.lua b/mods/farming/soil.lua new file mode 100755 index 00000000..3546081c --- /dev/null +++ b/mods/farming/soil.lua @@ -0,0 +1,67 @@ + +local S = farming.intllib + +-- normal soil +minetest.register_node("farming:soil", { + description = S("Soil"), + tiles = {"default_dirt.png^farming_soil.png", "default_dirt.png"}, + drop = "default:dirt", + groups = {crumbly = 3, not_in_creative_inventory = 1, soil = 2}, + sounds = default.node_sound_dirt_defaults(), +}) + +-- wet soil +minetest.register_node("farming:soil_wet", { + description = S("Wet Soil"), + tiles = {"default_dirt.png^farming_soil_wet.png", "default_dirt.png^farming_soil_wet_side.png"}, + drop = "default:dirt", + groups = {crumbly = 3, not_in_creative_inventory = 1, soil = 3}, + sounds = default.node_sound_dirt_defaults(), +}) + +-- sand is not soil, change existing sand-soil to use normal soil +minetest.register_alias("farming:desert_sand_soil", "farming:soil") +minetest.register_alias("farming:desert_sand_soil_wet", "farming:soil_wet") + +-- if water near soil then change to wet soil +minetest.register_abm({ + nodenames = {"farming:soil", "farming:soil_wet"}, + interval = 15, + chance = 4, + catch_up = false, + + action = function(pos, node) + + pos.y = pos.y + 1 + local nn = minetest.get_node_or_nil(pos) + pos.y = pos.y - 1 + + if nn then nn = nn.name else return end + + -- what's on top of soil, if solid/not plant change soil to dirt + if minetest.registered_nodes[nn] + and minetest.registered_nodes[nn].walkable + and minetest.get_item_group(nn, "plant") == 0 then + minetest.set_node(pos, {name = "default:dirt"}) + return + end + + -- if map around soil not loaded then skip until loaded + if minetest.find_node_near(pos, 3, {"ignore"}) then + return + end + + -- check if there is water nearby and change soil accordingly + if minetest.find_node_near(pos, 3, {"group:water"}) then + if node.name == "farming:soil" then + minetest.set_node(pos, {name = "farming:soil_wet"}) + end + + elseif node.name == "farming:soil_wet" then + minetest.set_node(pos, {name = "farming:soil"}) + + elseif node.name == "farming:soil" then + minetest.set_node(pos, {name = "default:dirt"}) + end + end, +}) diff --git a/mods/farming/statistics.lua b/mods/farming/statistics.lua new file mode 100755 index 00000000..c8defa2f --- /dev/null +++ b/mods/farming/statistics.lua @@ -0,0 +1,174 @@ +local statistics = {} +local ROOT_2 = math.sqrt(2.0) + +-- Approximations for erf(x) and erfInv(x) from +-- https://en.wikipedia.org/wiki/Error_function + +local erf +local erf_inv + +local A = 8 * (math.pi - 3.0)/(3.0 * math.pi * (4.0 - math.pi)) +local B = 4.0 / math.pi +local C = 2.0/(math.pi * A) +local D = 1.0 / A + +erf = function(x) + + if x == 0 then return 0; end + + local xSq = x * x + local aXSq = A * xSq + local v = math.sqrt(1.0 - math.exp(-xSq * (B + aXSq) / (1.0 + aXSq))) + + return (x > 0 and v) or -v +end + +erf_inv = function(x) + + if x == 0 then return 0; end + + if x <= -1 or x >= 1 then return nil; end + + local y = math.log(1 - x * x) + local u = C + 0.5 * y + local v = math.sqrt(math.sqrt(u * u - D * y) - u) + + return (x > 0 and v) or -v +end + +local function std_normal(u) + return ROOT_2 * erf_inv(2.0 * u - 1.0) +end + +local poisson +local cdf_table = {} + +local function generate_cdf(lambda_index, lambda) + + local max = math.ceil(4 * lambda) + local pdf = math.exp(-lambda) + local cdf = pdf + local t = { [0] = pdf } + + for i = 1, max - 1 do + pdf = pdf * lambda / i + cdf = cdf + pdf + t[i] = cdf + end + + return t +end + +for li = 1, 100 do + cdf_table[li] = generate_cdf(li, 0.25 * li) +end + +poisson = function(lambda, max) + + if max < 2 then + return (math.random() < math.exp(-lambda) and 0) or 1 + elseif lambda >= 2 * max then + return max + end + + local u = math.random() + local lambda_index = math.floor(4 * lambda + 0.5) + local cdfs = cdf_table[lambda_index] + + if cdfs then + + lambda = 0.25 * lambda_index + + if u < cdfs[0] then return 0; end + if max > #cdfs then max = #cdfs + 1 else max = math.floor(max); end + if u >= cdfs[max - 1] then return max; end + + if max > 4 then -- Binary search + + local s = 0 + + while s + 1 < max do + + local m = math.floor(0.5 * (s + max)) + + if u < cdfs[m] then max = m; else s = m; end + end + else + for i = 1, max - 1 do + if u < cdfs[i] then return i; end + end + end + + return max + else + local x = lambda + math.sqrt(lambda) * std_normal(u) + + return (x < 0.5 and 0) or (x >= max - 0.5 and max) or math.floor(x + 0.5) + end +end + +-- Error function. +statistics.erf = erf + +-- Inverse error function. +statistics.erf_inv = erf_inv + +--- Standard normal distribution function (mean 0, standard deviation 1). + -- + -- @return + -- Any real number (actually between -3.0 and 3.0). + +statistics.std_normal = function() + + local u = math.random() + + if u < 0.001 then + return -3.0 + elseif u > 0.999 then + return 3.0 + end + + return std_normal(u) +end + +--- Standard normal distribution function (mean 0, standard deviation 1). + -- + -- @param mu + -- The distribution mean. + -- @param sigma + -- The distribution standard deviation. + -- @return + -- Any real number (actually between -3*sigma and 3*sigma). + +statistics.normal = function(mu, sigma) + + local u = math.random() + + if u < 0.001 then + return mu - 3.0 * sigma + elseif u > 0.999 then + return mu + 3.0 * sigma + end + + return mu + sigma * std_normal(u) +end + +--- Poisson distribution function. + -- + -- @param lambda + -- The distribution mean and variance. + -- @param max + -- The distribution maximum. + -- @return + -- An integer between 0 and max (both inclusive). + +statistics.poisson = function(lambda, max) + + lambda, max = tonumber(lambda), tonumber(max) + + if not lambda or not max or lambda <= 0 or max < 1 then return 0; end + + return poisson(lambda, max) +end + +return statistics diff --git a/mods/farming/sugar.lua b/mods/farming/sugar.lua new file mode 100755 index 00000000..9c65eadf --- /dev/null +++ b/mods/farming/sugar.lua @@ -0,0 +1,16 @@ + +local S = farming.intllib + +--= Sugar + +minetest.register_craftitem("farming:sugar", { + description = S("Sugar"), + inventory_image = "farming_sugar.png", +}) + +minetest.register_craft({ + type = "cooking", + cooktime = 3, + output = "farming:sugar 2", + recipe = "default:papyrus", +}) diff --git a/mods/farming/textures/default_junglegrass.png b/mods/farming/textures/default_junglegrass.png new file mode 100755 index 00000000..50a894a4 Binary files /dev/null and b/mods/farming/textures/default_junglegrass.png differ diff --git a/mods/farming/textures/farming_baked_potato.png b/mods/farming/textures/farming_baked_potato.png new file mode 100755 index 00000000..fa06937c Binary files /dev/null and b/mods/farming/textures/farming_baked_potato.png differ diff --git a/mods/farming/textures/farming_barley.png b/mods/farming/textures/farming_barley.png new file mode 100644 index 00000000..ca929e0e Binary files /dev/null and b/mods/farming/textures/farming_barley.png differ diff --git a/mods/farming/textures/farming_barley_1.png b/mods/farming/textures/farming_barley_1.png new file mode 100644 index 00000000..4a458b16 Binary files /dev/null and b/mods/farming/textures/farming_barley_1.png differ diff --git a/mods/farming/textures/farming_barley_2.png b/mods/farming/textures/farming_barley_2.png new file mode 100644 index 00000000..96610c2f Binary files /dev/null and b/mods/farming/textures/farming_barley_2.png differ diff --git a/mods/farming/textures/farming_barley_3.png b/mods/farming/textures/farming_barley_3.png new file mode 100644 index 00000000..ef14b5b3 Binary files /dev/null and b/mods/farming/textures/farming_barley_3.png differ diff --git a/mods/farming/textures/farming_barley_4.png b/mods/farming/textures/farming_barley_4.png new file mode 100644 index 00000000..f7c90544 Binary files /dev/null and b/mods/farming/textures/farming_barley_4.png differ diff --git a/mods/farming/textures/farming_barley_5.png b/mods/farming/textures/farming_barley_5.png new file mode 100644 index 00000000..68c0d683 Binary files /dev/null and b/mods/farming/textures/farming_barley_5.png differ diff --git a/mods/farming/textures/farming_barley_6.png b/mods/farming/textures/farming_barley_6.png new file mode 100644 index 00000000..496a2185 Binary files /dev/null and b/mods/farming/textures/farming_barley_6.png differ diff --git a/mods/farming/textures/farming_barley_7.png b/mods/farming/textures/farming_barley_7.png new file mode 100644 index 00000000..1c636afb Binary files /dev/null and b/mods/farming/textures/farming_barley_7.png differ diff --git a/mods/farming/textures/farming_barley_seed.png b/mods/farming/textures/farming_barley_seed.png new file mode 100644 index 00000000..2f00a20a Binary files /dev/null and b/mods/farming/textures/farming_barley_seed.png differ diff --git a/mods/farming/textures/farming_beanbush.png b/mods/farming/textures/farming_beanbush.png new file mode 100644 index 00000000..637e7162 Binary files /dev/null and b/mods/farming/textures/farming_beanbush.png differ diff --git a/mods/farming/textures/farming_beanpole.png b/mods/farming/textures/farming_beanpole.png new file mode 100644 index 00000000..ed07572e Binary files /dev/null and b/mods/farming/textures/farming_beanpole.png differ diff --git a/mods/farming/textures/farming_beanpole_1.png b/mods/farming/textures/farming_beanpole_1.png new file mode 100644 index 00000000..ef2bd5ab Binary files /dev/null and b/mods/farming/textures/farming_beanpole_1.png differ diff --git a/mods/farming/textures/farming_beanpole_2.png b/mods/farming/textures/farming_beanpole_2.png new file mode 100644 index 00000000..34143e47 Binary files /dev/null and b/mods/farming/textures/farming_beanpole_2.png differ diff --git a/mods/farming/textures/farming_beanpole_3.png b/mods/farming/textures/farming_beanpole_3.png new file mode 100644 index 00000000..d693f170 Binary files /dev/null and b/mods/farming/textures/farming_beanpole_3.png differ diff --git a/mods/farming/textures/farming_beanpole_4.png b/mods/farming/textures/farming_beanpole_4.png new file mode 100644 index 00000000..c779b254 Binary files /dev/null and b/mods/farming/textures/farming_beanpole_4.png differ diff --git a/mods/farming/textures/farming_beanpole_5.png b/mods/farming/textures/farming_beanpole_5.png new file mode 100644 index 00000000..910f8a07 Binary files /dev/null and b/mods/farming/textures/farming_beanpole_5.png differ diff --git a/mods/farming/textures/farming_beans.png b/mods/farming/textures/farming_beans.png new file mode 100644 index 00000000..ad5cf859 Binary files /dev/null and b/mods/farming/textures/farming_beans.png differ diff --git a/mods/farming/textures/farming_blueberries.png b/mods/farming/textures/farming_blueberries.png new file mode 100755 index 00000000..b0c49319 Binary files /dev/null and b/mods/farming/textures/farming_blueberries.png differ diff --git a/mods/farming/textures/farming_blueberry_1.png b/mods/farming/textures/farming_blueberry_1.png new file mode 100755 index 00000000..b3cfdbf1 Binary files /dev/null and b/mods/farming/textures/farming_blueberry_1.png differ diff --git a/mods/farming/textures/farming_blueberry_2.png b/mods/farming/textures/farming_blueberry_2.png new file mode 100755 index 00000000..d5209e8a Binary files /dev/null and b/mods/farming/textures/farming_blueberry_2.png differ diff --git a/mods/farming/textures/farming_blueberry_3.png b/mods/farming/textures/farming_blueberry_3.png new file mode 100755 index 00000000..4ccf71a6 Binary files /dev/null and b/mods/farming/textures/farming_blueberry_3.png differ diff --git a/mods/farming/textures/farming_blueberry_4.png b/mods/farming/textures/farming_blueberry_4.png new file mode 100755 index 00000000..72a5d13b Binary files /dev/null and b/mods/farming/textures/farming_blueberry_4.png differ diff --git a/mods/farming/textures/farming_blueberry_muffin.png b/mods/farming/textures/farming_blueberry_muffin.png new file mode 100755 index 00000000..1f0a39a0 Binary files /dev/null and b/mods/farming/textures/farming_blueberry_muffin.png differ diff --git a/mods/farming/textures/farming_bottle_ethanol.png b/mods/farming/textures/farming_bottle_ethanol.png new file mode 100755 index 00000000..7972e1db Binary files /dev/null and b/mods/farming/textures/farming_bottle_ethanol.png differ diff --git a/mods/farming/textures/farming_bread.png b/mods/farming/textures/farming_bread.png old mode 100644 new mode 100755 index 00e53719..bd00e3e1 Binary files a/mods/farming/textures/farming_bread.png and b/mods/farming/textures/farming_bread.png differ diff --git a/mods/farming/textures/farming_carrot.png b/mods/farming/textures/farming_carrot.png new file mode 100755 index 00000000..9727555e Binary files /dev/null and b/mods/farming/textures/farming_carrot.png differ diff --git a/mods/farming/textures/farming_carrot_1.png b/mods/farming/textures/farming_carrot_1.png new file mode 100755 index 00000000..bbeae7e8 Binary files /dev/null and b/mods/farming/textures/farming_carrot_1.png differ diff --git a/mods/farming/textures/farming_carrot_2.png b/mods/farming/textures/farming_carrot_2.png new file mode 100755 index 00000000..b24ecc05 Binary files /dev/null and b/mods/farming/textures/farming_carrot_2.png differ diff --git a/mods/farming/textures/farming_carrot_3.png b/mods/farming/textures/farming_carrot_3.png new file mode 100755 index 00000000..471ba233 Binary files /dev/null and b/mods/farming/textures/farming_carrot_3.png differ diff --git a/mods/farming/textures/farming_carrot_4.png b/mods/farming/textures/farming_carrot_4.png new file mode 100755 index 00000000..32ee2624 Binary files /dev/null and b/mods/farming/textures/farming_carrot_4.png differ diff --git a/mods/farming/textures/farming_carrot_5.png b/mods/farming/textures/farming_carrot_5.png new file mode 100755 index 00000000..0bcd9c1e Binary files /dev/null and b/mods/farming/textures/farming_carrot_5.png differ diff --git a/mods/farming/textures/farming_carrot_6.png b/mods/farming/textures/farming_carrot_6.png new file mode 100755 index 00000000..a17c6b2b Binary files /dev/null and b/mods/farming/textures/farming_carrot_6.png differ diff --git a/mods/farming/textures/farming_carrot_7.png b/mods/farming/textures/farming_carrot_7.png new file mode 100755 index 00000000..d26eee7c Binary files /dev/null and b/mods/farming/textures/farming_carrot_7.png differ diff --git a/mods/farming/textures/farming_carrot_8.png b/mods/farming/textures/farming_carrot_8.png new file mode 100755 index 00000000..00b6d928 Binary files /dev/null and b/mods/farming/textures/farming_carrot_8.png differ diff --git a/mods/farming/textures/farming_carrot_gold.png b/mods/farming/textures/farming_carrot_gold.png new file mode 100755 index 00000000..a1453c71 Binary files /dev/null and b/mods/farming/textures/farming_carrot_gold.png differ diff --git a/mods/farming/textures/farming_chocolate_dark.png b/mods/farming/textures/farming_chocolate_dark.png new file mode 100755 index 00000000..c3855722 Binary files /dev/null and b/mods/farming/textures/farming_chocolate_dark.png differ diff --git a/mods/farming/textures/farming_cocoa_1.png b/mods/farming/textures/farming_cocoa_1.png new file mode 100755 index 00000000..cbf4da89 Binary files /dev/null and b/mods/farming/textures/farming_cocoa_1.png differ diff --git a/mods/farming/textures/farming_cocoa_2.png b/mods/farming/textures/farming_cocoa_2.png new file mode 100755 index 00000000..3c4bc985 Binary files /dev/null and b/mods/farming/textures/farming_cocoa_2.png differ diff --git a/mods/farming/textures/farming_cocoa_3.png b/mods/farming/textures/farming_cocoa_3.png new file mode 100755 index 00000000..f4ceac25 Binary files /dev/null and b/mods/farming/textures/farming_cocoa_3.png differ diff --git a/mods/farming/textures/farming_cocoa_beans.png b/mods/farming/textures/farming_cocoa_beans.png new file mode 100755 index 00000000..b230630f Binary files /dev/null and b/mods/farming/textures/farming_cocoa_beans.png differ diff --git a/mods/farming/textures/farming_coffee_1.png b/mods/farming/textures/farming_coffee_1.png new file mode 100755 index 00000000..97c207a3 Binary files /dev/null and b/mods/farming/textures/farming_coffee_1.png differ diff --git a/mods/farming/textures/farming_coffee_2.png b/mods/farming/textures/farming_coffee_2.png new file mode 100755 index 00000000..cc7fceb0 Binary files /dev/null and b/mods/farming/textures/farming_coffee_2.png differ diff --git a/mods/farming/textures/farming_coffee_3.png b/mods/farming/textures/farming_coffee_3.png new file mode 100755 index 00000000..93088c80 Binary files /dev/null and b/mods/farming/textures/farming_coffee_3.png differ diff --git a/mods/farming/textures/farming_coffee_4.png b/mods/farming/textures/farming_coffee_4.png new file mode 100755 index 00000000..dbfc0ed9 Binary files /dev/null and b/mods/farming/textures/farming_coffee_4.png differ diff --git a/mods/farming/textures/farming_coffee_5.png b/mods/farming/textures/farming_coffee_5.png new file mode 100755 index 00000000..3bafd1ce Binary files /dev/null and b/mods/farming/textures/farming_coffee_5.png differ diff --git a/mods/farming/textures/farming_coffee_beans.png b/mods/farming/textures/farming_coffee_beans.png new file mode 100755 index 00000000..8e6743c4 Binary files /dev/null and b/mods/farming/textures/farming_coffee_beans.png differ diff --git a/mods/farming/textures/farming_coffee_cup.png b/mods/farming/textures/farming_coffee_cup.png new file mode 100755 index 00000000..7cdc4d43 Binary files /dev/null and b/mods/farming/textures/farming_coffee_cup.png differ diff --git a/mods/farming/textures/farming_coffee_cup_hot.png b/mods/farming/textures/farming_coffee_cup_hot.png new file mode 100755 index 00000000..2aaea7bf Binary files /dev/null and b/mods/farming/textures/farming_coffee_cup_hot.png differ diff --git a/mods/farming/textures/farming_cookie.png b/mods/farming/textures/farming_cookie.png new file mode 100755 index 00000000..09a8a62a Binary files /dev/null and b/mods/farming/textures/farming_cookie.png differ diff --git a/mods/farming/textures/farming_corn.png b/mods/farming/textures/farming_corn.png new file mode 100755 index 00000000..9dcde4b5 Binary files /dev/null and b/mods/farming/textures/farming_corn.png differ diff --git a/mods/farming/textures/farming_corn_1.png b/mods/farming/textures/farming_corn_1.png new file mode 100755 index 00000000..60e8b997 Binary files /dev/null and b/mods/farming/textures/farming_corn_1.png differ diff --git a/mods/farming/textures/farming_corn_2.png b/mods/farming/textures/farming_corn_2.png new file mode 100755 index 00000000..6ba6cc97 Binary files /dev/null and b/mods/farming/textures/farming_corn_2.png differ diff --git a/mods/farming/textures/farming_corn_3.png b/mods/farming/textures/farming_corn_3.png new file mode 100755 index 00000000..c5fa80b1 Binary files /dev/null and b/mods/farming/textures/farming_corn_3.png differ diff --git a/mods/farming/textures/farming_corn_4.png b/mods/farming/textures/farming_corn_4.png new file mode 100755 index 00000000..a43632dd Binary files /dev/null and b/mods/farming/textures/farming_corn_4.png differ diff --git a/mods/farming/textures/farming_corn_5.png b/mods/farming/textures/farming_corn_5.png new file mode 100755 index 00000000..7b6fb02b Binary files /dev/null and b/mods/farming/textures/farming_corn_5.png differ diff --git a/mods/farming/textures/farming_corn_6.png b/mods/farming/textures/farming_corn_6.png new file mode 100755 index 00000000..bf1c6f2f Binary files /dev/null and b/mods/farming/textures/farming_corn_6.png differ diff --git a/mods/farming/textures/farming_corn_7.png b/mods/farming/textures/farming_corn_7.png new file mode 100755 index 00000000..51581536 Binary files /dev/null and b/mods/farming/textures/farming_corn_7.png differ diff --git a/mods/farming/textures/farming_corn_8.png b/mods/farming/textures/farming_corn_8.png new file mode 100755 index 00000000..0bf4fa76 Binary files /dev/null and b/mods/farming/textures/farming_corn_8.png differ diff --git a/mods/farming/textures/farming_corn_cob.png b/mods/farming/textures/farming_corn_cob.png new file mode 100755 index 00000000..688016b3 Binary files /dev/null and b/mods/farming/textures/farming_corn_cob.png differ diff --git a/mods/farming/textures/farming_cotton.png b/mods/farming/textures/farming_cotton.png old mode 100644 new mode 100755 diff --git a/mods/farming/textures/farming_cotton_1.png b/mods/farming/textures/farming_cotton_1.png old mode 100644 new mode 100755 index 2581db59..5fc21807 Binary files a/mods/farming/textures/farming_cotton_1.png and b/mods/farming/textures/farming_cotton_1.png differ diff --git a/mods/farming/textures/farming_cotton_2.png b/mods/farming/textures/farming_cotton_2.png old mode 100644 new mode 100755 index af9ed340..db4f4a3e Binary files a/mods/farming/textures/farming_cotton_2.png and b/mods/farming/textures/farming_cotton_2.png differ diff --git a/mods/farming/textures/farming_cotton_3.png b/mods/farming/textures/farming_cotton_3.png old mode 100644 new mode 100755 index ba46f3d6..df3d7a77 Binary files a/mods/farming/textures/farming_cotton_3.png and b/mods/farming/textures/farming_cotton_3.png differ diff --git a/mods/farming/textures/farming_cotton_4.png b/mods/farming/textures/farming_cotton_4.png old mode 100644 new mode 100755 index e6708b55..f314b07b Binary files a/mods/farming/textures/farming_cotton_4.png and b/mods/farming/textures/farming_cotton_4.png differ diff --git a/mods/farming/textures/farming_cotton_5.png b/mods/farming/textures/farming_cotton_5.png index 0ad6a8f5..81e184e0 100644 Binary files a/mods/farming/textures/farming_cotton_5.png and b/mods/farming/textures/farming_cotton_5.png differ diff --git a/mods/farming/textures/farming_cotton_6.png b/mods/farming/textures/farming_cotton_6.png old mode 100644 new mode 100755 index 838fa930..f4bd4fb3 Binary files a/mods/farming/textures/farming_cotton_6.png and b/mods/farming/textures/farming_cotton_6.png differ diff --git a/mods/farming/textures/farming_cotton_7.png b/mods/farming/textures/farming_cotton_7.png index f2623c25..11c0cf6d 100644 Binary files a/mods/farming/textures/farming_cotton_7.png and b/mods/farming/textures/farming_cotton_7.png differ diff --git a/mods/farming/textures/farming_cotton_8.png b/mods/farming/textures/farming_cotton_8.png index d4bf6bd5..4450a2c4 100644 Binary files a/mods/farming/textures/farming_cotton_8.png and b/mods/farming/textures/farming_cotton_8.png differ diff --git a/mods/farming/textures/farming_cotton_seed.png b/mods/farming/textures/farming_cotton_seed.png old mode 100644 new mode 100755 index cff769b2..f1d5b8ab Binary files a/mods/farming/textures/farming_cotton_seed.png and b/mods/farming/textures/farming_cotton_seed.png differ diff --git a/mods/farming/textures/farming_cucumber.png b/mods/farming/textures/farming_cucumber.png new file mode 100755 index 00000000..2fba95df Binary files /dev/null and b/mods/farming/textures/farming_cucumber.png differ diff --git a/mods/farming/textures/farming_cucumber_1.png b/mods/farming/textures/farming_cucumber_1.png new file mode 100755 index 00000000..e008fd12 Binary files /dev/null and b/mods/farming/textures/farming_cucumber_1.png differ diff --git a/mods/farming/textures/farming_cucumber_2.png b/mods/farming/textures/farming_cucumber_2.png new file mode 100755 index 00000000..9c345ff4 Binary files /dev/null and b/mods/farming/textures/farming_cucumber_2.png differ diff --git a/mods/farming/textures/farming_cucumber_3.png b/mods/farming/textures/farming_cucumber_3.png new file mode 100755 index 00000000..02cf00b5 Binary files /dev/null and b/mods/farming/textures/farming_cucumber_3.png differ diff --git a/mods/farming/textures/farming_cucumber_4.png b/mods/farming/textures/farming_cucumber_4.png new file mode 100755 index 00000000..f42533a7 Binary files /dev/null and b/mods/farming/textures/farming_cucumber_4.png differ diff --git a/mods/farming/textures/farming_desert_sand_soil.png b/mods/farming/textures/farming_desert_sand_soil.png old mode 100644 new mode 100755 diff --git a/mods/farming/textures/farming_desert_sand_soil_wet.png b/mods/farming/textures/farming_desert_sand_soil_wet.png old mode 100644 new mode 100755 diff --git a/mods/farming/textures/farming_desert_sand_soil_wet_side.png b/mods/farming/textures/farming_desert_sand_soil_wet_side.png old mode 100644 new mode 100755 diff --git a/mods/farming/textures/farming_donut.png b/mods/farming/textures/farming_donut.png new file mode 100755 index 00000000..6e3d8d32 Binary files /dev/null and b/mods/farming/textures/farming_donut.png differ diff --git a/mods/farming/textures/farming_donut_apple.png b/mods/farming/textures/farming_donut_apple.png new file mode 100755 index 00000000..aaa97aff Binary files /dev/null and b/mods/farming/textures/farming_donut_apple.png differ diff --git a/mods/farming/textures/farming_donut_chocolate.png b/mods/farming/textures/farming_donut_chocolate.png new file mode 100755 index 00000000..7175df69 Binary files /dev/null and b/mods/farming/textures/farming_donut_chocolate.png differ diff --git a/mods/farming/textures/farming_flour.png b/mods/farming/textures/farming_flour.png old mode 100644 new mode 100755 index bd33f937..b1a97836 Binary files a/mods/farming/textures/farming_flour.png and b/mods/farming/textures/farming_flour.png differ diff --git a/mods/farming/textures/farming_grapebush.png b/mods/farming/textures/farming_grapebush.png new file mode 100755 index 00000000..c2e66205 Binary files /dev/null and b/mods/farming/textures/farming_grapebush.png differ diff --git a/mods/farming/textures/farming_grapes.png b/mods/farming/textures/farming_grapes.png new file mode 100644 index 00000000..1a6df8b4 Binary files /dev/null and b/mods/farming/textures/farming_grapes.png differ diff --git a/mods/farming/textures/farming_grapes_1.png b/mods/farming/textures/farming_grapes_1.png new file mode 100644 index 00000000..5358685a Binary files /dev/null and b/mods/farming/textures/farming_grapes_1.png differ diff --git a/mods/farming/textures/farming_grapes_2.png b/mods/farming/textures/farming_grapes_2.png new file mode 100644 index 00000000..901add19 Binary files /dev/null and b/mods/farming/textures/farming_grapes_2.png differ diff --git a/mods/farming/textures/farming_grapes_3.png b/mods/farming/textures/farming_grapes_3.png new file mode 100644 index 00000000..4f6095e5 Binary files /dev/null and b/mods/farming/textures/farming_grapes_3.png differ diff --git a/mods/farming/textures/farming_grapes_4.png b/mods/farming/textures/farming_grapes_4.png new file mode 100644 index 00000000..63fee466 Binary files /dev/null and b/mods/farming/textures/farming_grapes_4.png differ diff --git a/mods/farming/textures/farming_grapes_5.png b/mods/farming/textures/farming_grapes_5.png new file mode 100644 index 00000000..536c49aa Binary files /dev/null and b/mods/farming/textures/farming_grapes_5.png differ diff --git a/mods/farming/textures/farming_grapes_6.png b/mods/farming/textures/farming_grapes_6.png new file mode 100644 index 00000000..fd6131e8 Binary files /dev/null and b/mods/farming/textures/farming_grapes_6.png differ diff --git a/mods/farming/textures/farming_grapes_7.png b/mods/farming/textures/farming_grapes_7.png new file mode 100644 index 00000000..63c9ae84 Binary files /dev/null and b/mods/farming/textures/farming_grapes_7.png differ diff --git a/mods/farming/textures/farming_grapes_8.png b/mods/farming/textures/farming_grapes_8.png new file mode 100644 index 00000000..4b35cc4b Binary files /dev/null and b/mods/farming/textures/farming_grapes_8.png differ diff --git a/mods/farming/textures/farming_melon_1.png b/mods/farming/textures/farming_melon_1.png new file mode 100755 index 00000000..3c6ea6d8 Binary files /dev/null and b/mods/farming/textures/farming_melon_1.png differ diff --git a/mods/farming/textures/farming_melon_2.png b/mods/farming/textures/farming_melon_2.png new file mode 100755 index 00000000..185ed826 Binary files /dev/null and b/mods/farming/textures/farming_melon_2.png differ diff --git a/mods/farming/textures/farming_melon_3.png b/mods/farming/textures/farming_melon_3.png new file mode 100755 index 00000000..e1f62d4a Binary files /dev/null and b/mods/farming/textures/farming_melon_3.png differ diff --git a/mods/farming/textures/farming_melon_4.png b/mods/farming/textures/farming_melon_4.png new file mode 100755 index 00000000..d9199f3c Binary files /dev/null and b/mods/farming/textures/farming_melon_4.png differ diff --git a/mods/farming/textures/farming_melon_5.png b/mods/farming/textures/farming_melon_5.png new file mode 100755 index 00000000..755cbd34 Binary files /dev/null and b/mods/farming/textures/farming_melon_5.png differ diff --git a/mods/farming/textures/farming_melon_6.png b/mods/farming/textures/farming_melon_6.png new file mode 100755 index 00000000..30382b84 Binary files /dev/null and b/mods/farming/textures/farming_melon_6.png differ diff --git a/mods/farming/textures/farming_melon_7.png b/mods/farming/textures/farming_melon_7.png new file mode 100755 index 00000000..438a9413 Binary files /dev/null and b/mods/farming/textures/farming_melon_7.png differ diff --git a/mods/farming/textures/farming_melon_side.png b/mods/farming/textures/farming_melon_side.png new file mode 100755 index 00000000..fc815141 Binary files /dev/null and b/mods/farming/textures/farming_melon_side.png differ diff --git a/mods/farming/textures/farming_melon_slice.png b/mods/farming/textures/farming_melon_slice.png new file mode 100755 index 00000000..b3cf2293 Binary files /dev/null and b/mods/farming/textures/farming_melon_slice.png differ diff --git a/mods/farming/textures/farming_melon_top.png b/mods/farming/textures/farming_melon_top.png new file mode 100755 index 00000000..f387dbd0 Binary files /dev/null and b/mods/farming/textures/farming_melon_top.png differ diff --git a/mods/farming/textures/farming_potato.png b/mods/farming/textures/farming_potato.png new file mode 100755 index 00000000..9fe29706 Binary files /dev/null and b/mods/farming/textures/farming_potato.png differ diff --git a/mods/farming/textures/farming_potato_1.png b/mods/farming/textures/farming_potato_1.png new file mode 100755 index 00000000..a9c00409 Binary files /dev/null and b/mods/farming/textures/farming_potato_1.png differ diff --git a/mods/farming/textures/farming_potato_2.png b/mods/farming/textures/farming_potato_2.png new file mode 100755 index 00000000..a46fa4f8 Binary files /dev/null and b/mods/farming/textures/farming_potato_2.png differ diff --git a/mods/farming/textures/farming_potato_3.png b/mods/farming/textures/farming_potato_3.png new file mode 100755 index 00000000..c3d19e93 Binary files /dev/null and b/mods/farming/textures/farming_potato_3.png differ diff --git a/mods/farming/textures/farming_potato_4.png b/mods/farming/textures/farming_potato_4.png new file mode 100755 index 00000000..457a2664 Binary files /dev/null and b/mods/farming/textures/farming_potato_4.png differ diff --git a/mods/farming/textures/farming_pumpkin_1.png b/mods/farming/textures/farming_pumpkin_1.png new file mode 100755 index 00000000..e5b9a2bf Binary files /dev/null and b/mods/farming/textures/farming_pumpkin_1.png differ diff --git a/mods/farming/textures/farming_pumpkin_2.png b/mods/farming/textures/farming_pumpkin_2.png new file mode 100755 index 00000000..d977e8c2 Binary files /dev/null and b/mods/farming/textures/farming_pumpkin_2.png differ diff --git a/mods/farming/textures/farming_pumpkin_3.png b/mods/farming/textures/farming_pumpkin_3.png new file mode 100755 index 00000000..83f81905 Binary files /dev/null and b/mods/farming/textures/farming_pumpkin_3.png differ diff --git a/mods/farming/textures/farming_pumpkin_4.png b/mods/farming/textures/farming_pumpkin_4.png new file mode 100755 index 00000000..20de004a Binary files /dev/null and b/mods/farming/textures/farming_pumpkin_4.png differ diff --git a/mods/farming/textures/farming_pumpkin_5.png b/mods/farming/textures/farming_pumpkin_5.png new file mode 100755 index 00000000..59fa78eb Binary files /dev/null and b/mods/farming/textures/farming_pumpkin_5.png differ diff --git a/mods/farming/textures/farming_pumpkin_6.png b/mods/farming/textures/farming_pumpkin_6.png new file mode 100755 index 00000000..0ad58b14 Binary files /dev/null and b/mods/farming/textures/farming_pumpkin_6.png differ diff --git a/mods/farming/textures/farming_pumpkin_7.png b/mods/farming/textures/farming_pumpkin_7.png new file mode 100755 index 00000000..235dac3d Binary files /dev/null and b/mods/farming/textures/farming_pumpkin_7.png differ diff --git a/mods/farming/textures/farming_pumpkin_8.png b/mods/farming/textures/farming_pumpkin_8.png new file mode 100755 index 00000000..9565e566 Binary files /dev/null and b/mods/farming/textures/farming_pumpkin_8.png differ diff --git a/mods/farming/textures/farming_pumpkin_bread.png b/mods/farming/textures/farming_pumpkin_bread.png new file mode 100755 index 00000000..dd659057 Binary files /dev/null and b/mods/farming/textures/farming_pumpkin_bread.png differ diff --git a/mods/farming/textures/farming_pumpkin_dough.png b/mods/farming/textures/farming_pumpkin_dough.png new file mode 100755 index 00000000..f54fb14b Binary files /dev/null and b/mods/farming/textures/farming_pumpkin_dough.png differ diff --git a/mods/farming/textures/farming_pumpkin_face_off.png b/mods/farming/textures/farming_pumpkin_face_off.png new file mode 100755 index 00000000..f44751ca Binary files /dev/null and b/mods/farming/textures/farming_pumpkin_face_off.png differ diff --git a/mods/farming/textures/farming_pumpkin_face_on.png b/mods/farming/textures/farming_pumpkin_face_on.png new file mode 100755 index 00000000..6e3d1b9f Binary files /dev/null and b/mods/farming/textures/farming_pumpkin_face_on.png differ diff --git a/mods/farming/textures/farming_pumpkin_side.png b/mods/farming/textures/farming_pumpkin_side.png new file mode 100755 index 00000000..69ee16d1 Binary files /dev/null and b/mods/farming/textures/farming_pumpkin_side.png differ diff --git a/mods/farming/textures/farming_pumpkin_slice.png b/mods/farming/textures/farming_pumpkin_slice.png new file mode 100755 index 00000000..1fb659e2 Binary files /dev/null and b/mods/farming/textures/farming_pumpkin_slice.png differ diff --git a/mods/farming/textures/farming_pumpkin_top.png b/mods/farming/textures/farming_pumpkin_top.png new file mode 100755 index 00000000..1c6a5ea5 Binary files /dev/null and b/mods/farming/textures/farming_pumpkin_top.png differ diff --git a/mods/farming/textures/farming_raspberries.png b/mods/farming/textures/farming_raspberries.png new file mode 100755 index 00000000..0879f416 Binary files /dev/null and b/mods/farming/textures/farming_raspberries.png differ diff --git a/mods/farming/textures/farming_raspberry_1.png b/mods/farming/textures/farming_raspberry_1.png new file mode 100755 index 00000000..d1a7ffca Binary files /dev/null and b/mods/farming/textures/farming_raspberry_1.png differ diff --git a/mods/farming/textures/farming_raspberry_2.png b/mods/farming/textures/farming_raspberry_2.png new file mode 100755 index 00000000..d5209e8a Binary files /dev/null and b/mods/farming/textures/farming_raspberry_2.png differ diff --git a/mods/farming/textures/farming_raspberry_3.png b/mods/farming/textures/farming_raspberry_3.png new file mode 100755 index 00000000..4ccf71a6 Binary files /dev/null and b/mods/farming/textures/farming_raspberry_3.png differ diff --git a/mods/farming/textures/farming_raspberry_4.png b/mods/farming/textures/farming_raspberry_4.png new file mode 100755 index 00000000..e0067124 Binary files /dev/null and b/mods/farming/textures/farming_raspberry_4.png differ diff --git a/mods/farming/textures/farming_raspberry_smoothie.png b/mods/farming/textures/farming_raspberry_smoothie.png new file mode 100755 index 00000000..78393b15 Binary files /dev/null and b/mods/farming/textures/farming_raspberry_smoothie.png differ diff --git a/mods/farming/textures/farming_rhubarb.png b/mods/farming/textures/farming_rhubarb.png new file mode 100755 index 00000000..7d416ab2 Binary files /dev/null and b/mods/farming/textures/farming_rhubarb.png differ diff --git a/mods/farming/textures/farming_rhubarb_1.png b/mods/farming/textures/farming_rhubarb_1.png new file mode 100755 index 00000000..01585b1b Binary files /dev/null and b/mods/farming/textures/farming_rhubarb_1.png differ diff --git a/mods/farming/textures/farming_rhubarb_2.png b/mods/farming/textures/farming_rhubarb_2.png new file mode 100755 index 00000000..d87b71f5 Binary files /dev/null and b/mods/farming/textures/farming_rhubarb_2.png differ diff --git a/mods/farming/textures/farming_rhubarb_3.png b/mods/farming/textures/farming_rhubarb_3.png new file mode 100755 index 00000000..44682e90 Binary files /dev/null and b/mods/farming/textures/farming_rhubarb_3.png differ diff --git a/mods/farming/textures/farming_rhubarb_pie.png b/mods/farming/textures/farming_rhubarb_pie.png new file mode 100755 index 00000000..ba9ea550 Binary files /dev/null and b/mods/farming/textures/farming_rhubarb_pie.png differ diff --git a/mods/farming/textures/farming_soil.png b/mods/farming/textures/farming_soil.png index 0be94e3c..31504258 100644 Binary files a/mods/farming/textures/farming_soil.png and b/mods/farming/textures/farming_soil.png differ diff --git a/mods/farming/textures/farming_soil_wet.png b/mods/farming/textures/farming_soil_wet.png index d5e335ef..2eb2c3cd 100644 Binary files a/mods/farming/textures/farming_soil_wet.png and b/mods/farming/textures/farming_soil_wet.png differ diff --git a/mods/farming/textures/farming_soil_wet_side.png b/mods/farming/textures/farming_soil_wet_side.png old mode 100644 new mode 100755 index 6bd3a56c..f0b1bd45 Binary files a/mods/farming/textures/farming_soil_wet_side.png and b/mods/farming/textures/farming_soil_wet_side.png differ diff --git a/mods/farming/textures/farming_straw.png b/mods/farming/textures/farming_straw.png new file mode 100644 index 00000000..ffc789dc Binary files /dev/null and b/mods/farming/textures/farming_straw.png differ diff --git a/mods/farming/textures/farming_sugar.png b/mods/farming/textures/farming_sugar.png new file mode 100755 index 00000000..5cb7fa01 Binary files /dev/null and b/mods/farming/textures/farming_sugar.png differ diff --git a/mods/farming/textures/farming_tomato.png b/mods/farming/textures/farming_tomato.png new file mode 100755 index 00000000..586aa56d Binary files /dev/null and b/mods/farming/textures/farming_tomato.png differ diff --git a/mods/farming/textures/farming_tomato_1.png b/mods/farming/textures/farming_tomato_1.png new file mode 100755 index 00000000..c15e0952 Binary files /dev/null and b/mods/farming/textures/farming_tomato_1.png differ diff --git a/mods/farming/textures/farming_tomato_2.png b/mods/farming/textures/farming_tomato_2.png new file mode 100755 index 00000000..33837a5b Binary files /dev/null and b/mods/farming/textures/farming_tomato_2.png differ diff --git a/mods/farming/textures/farming_tomato_3.png b/mods/farming/textures/farming_tomato_3.png new file mode 100755 index 00000000..04ef57a9 Binary files /dev/null and b/mods/farming/textures/farming_tomato_3.png differ diff --git a/mods/farming/textures/farming_tomato_4.png b/mods/farming/textures/farming_tomato_4.png new file mode 100755 index 00000000..44baad9f Binary files /dev/null and b/mods/farming/textures/farming_tomato_4.png differ diff --git a/mods/farming/textures/farming_tomato_5.png b/mods/farming/textures/farming_tomato_5.png new file mode 100755 index 00000000..3c8fee33 Binary files /dev/null and b/mods/farming/textures/farming_tomato_5.png differ diff --git a/mods/farming/textures/farming_tomato_6.png b/mods/farming/textures/farming_tomato_6.png new file mode 100755 index 00000000..fa584497 Binary files /dev/null and b/mods/farming/textures/farming_tomato_6.png differ diff --git a/mods/farming/textures/farming_tomato_7.png b/mods/farming/textures/farming_tomato_7.png new file mode 100755 index 00000000..880c05b0 Binary files /dev/null and b/mods/farming/textures/farming_tomato_7.png differ diff --git a/mods/farming/textures/farming_tomato_8.png b/mods/farming/textures/farming_tomato_8.png new file mode 100755 index 00000000..f07b9eb6 Binary files /dev/null and b/mods/farming/textures/farming_tomato_8.png differ diff --git a/mods/farming/textures/farming_tool_bronzehoe.png b/mods/farming/textures/farming_tool_bronzehoe.png old mode 100644 new mode 100755 diff --git a/mods/farming/textures/farming_tool_diamondhoe.png b/mods/farming/textures/farming_tool_diamondhoe.png index 093acb82..0ca8c83a 100644 Binary files a/mods/farming/textures/farming_tool_diamondhoe.png and b/mods/farming/textures/farming_tool_diamondhoe.png differ diff --git a/mods/farming/textures/farming_tool_mesehoe.png b/mods/farming/textures/farming_tool_mesehoe.png old mode 100644 new mode 100755 diff --git a/mods/farming/textures/farming_tool_mithrilhoe.png b/mods/farming/textures/farming_tool_mithrilhoe.png new file mode 100755 index 00000000..329a9b70 Binary files /dev/null and b/mods/farming/textures/farming_tool_mithrilhoe.png differ diff --git a/mods/farming/textures/farming_tool_silverhoe.png b/mods/farming/textures/farming_tool_silverhoe.png new file mode 100755 index 00000000..d174dda2 Binary files /dev/null and b/mods/farming/textures/farming_tool_silverhoe.png differ diff --git a/mods/farming/textures/farming_tool_steelhoe.png b/mods/farming/textures/farming_tool_steelhoe.png old mode 100644 new mode 100755 diff --git a/mods/farming/textures/farming_tool_stonehoe.png b/mods/farming/textures/farming_tool_stonehoe.png old mode 100644 new mode 100755 diff --git a/mods/farming/textures/farming_tool_woodhoe.png b/mods/farming/textures/farming_tool_woodhoe.png old mode 100644 new mode 100755 diff --git a/mods/farming/textures/farming_trellis.png b/mods/farming/textures/farming_trellis.png new file mode 100644 index 00000000..fed03277 Binary files /dev/null and b/mods/farming/textures/farming_trellis.png differ diff --git a/mods/farming/textures/farming_wheat.png b/mods/farming/textures/farming_wheat.png index cba51374..d188c295 100644 Binary files a/mods/farming/textures/farming_wheat.png and b/mods/farming/textures/farming_wheat.png differ diff --git a/mods/farming/textures/farming_wheat_1.png b/mods/farming/textures/farming_wheat_1.png old mode 100644 new mode 100755 index 2ca23ee7..c16ad94b Binary files a/mods/farming/textures/farming_wheat_1.png and b/mods/farming/textures/farming_wheat_1.png differ diff --git a/mods/farming/textures/farming_wheat_2.png b/mods/farming/textures/farming_wheat_2.png old mode 100644 new mode 100755 index 6ae90d60..baddb4c5 Binary files a/mods/farming/textures/farming_wheat_2.png and b/mods/farming/textures/farming_wheat_2.png differ diff --git a/mods/farming/textures/farming_wheat_3.png b/mods/farming/textures/farming_wheat_3.png index 29950fe5..3e609426 100644 Binary files a/mods/farming/textures/farming_wheat_3.png and b/mods/farming/textures/farming_wheat_3.png differ diff --git a/mods/farming/textures/farming_wheat_4.png b/mods/farming/textures/farming_wheat_4.png index cdc2003d..6710ec0c 100644 Binary files a/mods/farming/textures/farming_wheat_4.png and b/mods/farming/textures/farming_wheat_4.png differ diff --git a/mods/farming/textures/farming_wheat_5.png b/mods/farming/textures/farming_wheat_5.png index 2ddff037..47442942 100644 Binary files a/mods/farming/textures/farming_wheat_5.png and b/mods/farming/textures/farming_wheat_5.png differ diff --git a/mods/farming/textures/farming_wheat_6.png b/mods/farming/textures/farming_wheat_6.png index f7d8145e..fd220bfe 100644 Binary files a/mods/farming/textures/farming_wheat_6.png and b/mods/farming/textures/farming_wheat_6.png differ diff --git a/mods/farming/textures/farming_wheat_7.png b/mods/farming/textures/farming_wheat_7.png index 89a95912..e58fcf7d 100644 Binary files a/mods/farming/textures/farming_wheat_7.png and b/mods/farming/textures/farming_wheat_7.png differ diff --git a/mods/farming/textures/farming_wheat_8.png b/mods/farming/textures/farming_wheat_8.png old mode 100644 new mode 100755 index 78181fff..d0500934 Binary files a/mods/farming/textures/farming_wheat_8.png and b/mods/farming/textures/farming_wheat_8.png differ diff --git a/mods/farming/textures/farming_wheat_seed.png b/mods/farming/textures/farming_wheat_seed.png old mode 100644 new mode 100755 index 81fc3b22..a9031fba Binary files a/mods/farming/textures/farming_wheat_seed.png and b/mods/farming/textures/farming_wheat_seed.png differ diff --git a/mods/farming/textures/vessels_drinking_cup.png b/mods/farming/textures/vessels_drinking_cup.png new file mode 100755 index 00000000..c19cfeb2 Binary files /dev/null and b/mods/farming/textures/vessels_drinking_cup.png differ diff --git a/mods/farming/tomato.lua b/mods/farming/tomato.lua new file mode 100755 index 00000000..1ed78704 --- /dev/null +++ b/mods/farming/tomato.lua @@ -0,0 +1,78 @@ + +--[[ + Textures edited from: + http://www.minecraftforum.net/forums/mapping-and-modding/minecraft-mods/1288375-food-plus-mod-more-food-than-you-can-imagine-v2-9) +]] + +local S = farming.intllib + +-- tomato +minetest.register_craftitem("farming:tomato", { + description = S("Tomato"), + inventory_image = "farming_tomato.png", + on_place = function(itemstack, placer, pointed_thing) + return farming.place_seed(itemstack, placer, pointed_thing, "farming:tomato_1") + end, + on_use = minetest.item_eat(4), +}) + +-- tomato definition +local crop_def = { + drawtype = "plantlike", + tiles = {"farming_tomato_1.png"}, + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + drop = "", + selection_box = farming.select, + groups = { + snappy = 3, flammable = 2, plant = 1, attached_node = 1, + not_in_creative_inventory = 1, growing = 1 + }, + sounds = default.node_sound_leaves_defaults() +} + +-- stage 1 +minetest.register_node("farming:tomato_1", table.copy(crop_def)) + +-- stage2 +crop_def.tiles = {"farming_tomato_2.png"} +minetest.register_node("farming:tomato_2", table.copy(crop_def)) + +-- stage 3 +crop_def.tiles = {"farming_tomato_3.png"} +minetest.register_node("farming:tomato_3", table.copy(crop_def)) + +-- stage 4 +crop_def.tiles = {"farming_tomato_4.png"} +minetest.register_node("farming:tomato_4", table.copy(crop_def)) + +-- stage 5 +crop_def.tiles = {"farming_tomato_5.png"} +minetest.register_node("farming:tomato_5", table.copy(crop_def)) + +-- stage 6 +crop_def.tiles = {"farming_tomato_6.png"} +minetest.register_node("farming:tomato_6", table.copy(crop_def)) + +-- stage 7 +crop_def.tiles = {"farming_tomato_7.png"} +crop_def.drop = { + items = { + {items = {'farming:tomato'}, rarity = 1}, + {items = {'farming:tomato'}, rarity = 3}, + } +} +minetest.register_node("farming:tomato_7", table.copy(crop_def)) + +-- stage 8 (final) +crop_def.tiles = {"farming_tomato_8.png"} +crop_def.groups.growing = 0 +crop_def.drop = { + items = { + {items = {'farming:tomato 3'}, rarity = 1}, + {items = {'farming:tomato 3'}, rarity = 2}, + } +} +minetest.register_node("farming:tomato_8", table.copy(crop_def)) diff --git a/mods/farming/wheat.lua b/mods/farming/wheat.lua new file mode 100755 index 00000000..65e5ce69 --- /dev/null +++ b/mods/farming/wheat.lua @@ -0,0 +1,154 @@ + +local S = farming.intllib + +-- wheat seeds +minetest.register_node("farming:seed_wheat", { + description = S("Wheat Seed"), + tiles = {"farming_wheat_seed.png"}, + inventory_image = "farming_wheat_seed.png", + wield_image = "farming_wheat_seed.png", + drawtype = "signlike", + groups = {seed = 1, snappy = 3, attached_node = 1}, + paramtype = "light", + paramtype2 = "wallmounted", + walkable = false, + sunlight_propagates = true, + selection_box = farming.select, + on_place = function(itemstack, placer, pointed_thing) + return farming.place_seed(itemstack, placer, pointed_thing, "farming:wheat_1") + end, +}) + +-- harvested wheat +minetest.register_craftitem("farming:wheat", { + description = S("Wheat"), + inventory_image = "farming_wheat.png", +}) + +-- straw +minetest.register_node("farming:straw", { + description = S("Straw"), + tiles = {"farming_straw.png"}, + is_ground_content = false, + groups = {snappy = 3, flammable = 4}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_craft({ + output = "farming:straw 3", + recipe = { + {"farming:wheat", "farming:wheat", "farming:wheat"}, + {"farming:wheat", "farming:wheat", "farming:wheat"}, + {"farming:wheat", "farming:wheat", "farming:wheat"}, + } +}) + +minetest.register_craft({ + output = "farming:wheat 3", + recipe = { + {"farming:straw"}, + } +}) + +-- flour +minetest.register_craftitem("farming:flour", { + description = S("Flour"), + inventory_image = "farming_flour.png", +}) + +minetest.register_craft({ + type = "shapeless", + output = "farming:flour", + recipe = {"farming:wheat", "farming:wheat", "farming:wheat", "farming:wheat"} +}) + +-- bread +minetest.register_craftitem("farming:bread", { + description = S("Bread"), + inventory_image = "farming_bread.png", + on_use = minetest.item_eat(5), +}) + +minetest.register_craft({ + type = "cooking", + cooktime = 15, + output = "farming:bread", + recipe = "farming:flour" +}) + +-- wheat definition +local crop_def = { + drawtype = "plantlike", + tiles = {"farming_wheat_1.png"}, + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + drop = "", + selection_box = farming.select, + groups = { + snappy = 3, flammable = 2, plant = 1, attached_node = 1, + not_in_creative_inventory = 1, growing = 1 + }, + sounds = default.node_sound_leaves_defaults() +} + +-- stage 1 +minetest.register_node("farming:wheat_1", table.copy(crop_def)) + +-- stage 2 +crop_def.tiles = {"farming_wheat_2.png"} +minetest.register_node("farming:wheat_2", table.copy(crop_def)) + +-- stage 3 +crop_def.tiles = {"farming_wheat_3.png"} +minetest.register_node("farming:wheat_3", table.copy(crop_def)) + +-- stage 4 +crop_def.tiles = {"farming_wheat_4.png"} +minetest.register_node("farming:wheat_4", table.copy(crop_def)) + +-- stage 5 +crop_def.tiles = {"farming_wheat_5.png"} +crop_def.drop = { + items = { + {items = {'farming:wheat'}, rarity = 2}, + {items = {'farming:seed_wheat'}, rarity = 2}, + } +} +minetest.register_node("farming:wheat_5", table.copy(crop_def)) + +-- stage 6 +crop_def.tiles = {"farming_wheat_6.png"} +crop_def.drop = { + items = { + {items = {'farming:wheat'}, rarity = 2}, + {items = {'farming:seed_wheat'}, rarity = 1}, + } +} +minetest.register_node("farming:wheat_6", table.copy(crop_def)) + +-- stage 7 +crop_def.tiles = {"farming_wheat_7.png"} +crop_def.drop = { + items = { + {items = {'farming:wheat'}, rarity = 1}, + {items = {'farming:wheat'}, rarity = 3}, + {items = {'farming:seed_wheat'}, rarity = 1}, + {items = {'farming:seed_wheat'}, rarity = 3}, + } +} +minetest.register_node("farming:wheat_7", table.copy(crop_def)) + +-- stage 8 (final) +crop_def.tiles = {"farming_wheat_8.png"} +crop_def.groups.growing = 0 +crop_def.drop = { + items = { + {items = {'farming:wheat'}, rarity = 1}, + {items = {'farming:wheat'}, rarity = 3}, + {items = {'farming:seed_wheat'}, rarity = 1}, + {items = {'farming:seed_wheat'}, rarity = 3}, + } +} +minetest.register_node("farming:wheat_8", table.copy(crop_def)) diff --git a/mods/fire/README.txt b/mods/fire/README.txt index fdbce15f..35affc26 100644 --- a/mods/fire/README.txt +++ b/mods/fire/README.txt @@ -1,32 +1,28 @@ -Minetest 0.4 mod: fire -====================== +Minetest Game mod: fire +======================= +See license.txt for license information. -License of source code: ------------------------ -Copyright (C) 2012 Perttu Ahola (celeron55) +Authors of source code +---------------------- +Originally by Perttu Ahola (celeron55) (LGPL 2.1) +Various Minetest developers and contributors (LGPL 2.1) -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) +Authors 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/ +Copyright (C) 2012 Perttu Ahola (celeron55) (CC BY-SA 3.0) fire_basic_flame_animated.png: - Muadtralk + Muadtralk (CC BY-SA 3.0) + +fire_flint_steel.png + Gambit (CC BY-SA 3.0) + +fire_small.ogg sampled from: + http://www.freesound.org/people/dobroide/sounds/4211/ (CC BY 3.0) + +fire_large.ogg sampled from: + http://www.freesound.org/people/Dynamicell/sounds/17548/ (CC BY 3.0) + +fire_flint_and_steel.ogg + https://www.freesound.org/people/Benboncan/sounds/66457/ (CC BY 3.0) diff --git a/mods/bones/depends.txt b/mods/fire/depends.txt similarity index 100% rename from mods/bones/depends.txt rename to mods/fire/depends.txt diff --git a/mods/fire/init.lua b/mods/fire/init.lua old mode 100644 new mode 100755 index 9acda876..2f07b524 --- a/mods/fire/init.lua +++ b/mods/fire/init.lua @@ -1,68 +1,195 @@ -- minetest/fire/init.lua +-- Global namespace for functions + +fire = {} + + +-- Register flame nodes + 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}, - }}, + drawtype = "firelike", + 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", + paramtype = "light", light_source = 14, - groups = {igniter=2,dig_immediate=3,hot=3}, - drop = '', walkable = false, buildable_to = true, + sunlight_propagates = true, damage_per_second = 4, - - after_place_node = function(pos, placer) - fire.on_flame_add_at(pos) + groups = {igniter = 2, dig_immediate = 3, not_in_creative_inventory = 1}, + on_timer = function(pos) + local f = minetest.find_node_near(pos, 1, {"group:flammable"}) + if not f then + minetest.remove_node(pos) + return + end + -- restart timer + return true end, - - after_dig_node = function(pos, oldnode, oldmetadata, digger) - fire.on_flame_remove_at(pos) + drop = "", + + on_construct = function(pos) + minetest.get_node_timer(pos):start(math.random(30, 60)) + minetest.after(0, fire.update_sounds_around, pos) + end, + + on_destruct = function(pos) + minetest.after(0, fire.update_sounds_around, pos) + end, + + on_blast = function() + end, -- unaffected by explosions +}) + +minetest.register_node("fire:permanent_flame", { + description = "Permanent Flame", + drawtype = "firelike", + 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", + paramtype = "light", + light_source = 14, + walkable = false, + buildable_to = true, + sunlight_propagates = true, + damage_per_second = 4, + groups = {igniter = 2, dig_immediate = 3}, + drop = "", + + on_blast = function() end, }) -fire = {} -fire.D = 6 --- key: position hash of low corner of area --- value: {handle=sound handle, name=sound name} -fire.sounds = {} + +-- Flint and steel + +minetest.register_tool("fire:flint_and_steel", { + description = "Flint and Steel", + inventory_image = "fire_flint_steel.png", + on_use = function(itemstack, user, pointed_thing) + local pt = pointed_thing + minetest.sound_play( + "fire_flint_and_steel", + {pos = pt.above, gain = 0.6, max_hear_distance = 8} + ) + itemstack:add_wear(1000) + if pt.type == "node" then + local node_under = minetest.get_node(pt.under).name + local nodedef = minetest.registered_nodes[node_under] + if not nodedef then + return + end + local player_name = user:get_player_name() + if minetest.is_protected(pt.under, player_name) then + minetest.chat_send_player(player_name, "This area is protected") + return + end + if nodedef.on_ignite then + nodedef.on_ignite(pt.under, user) + elseif minetest.get_item_group(node_under, "flammable") >= 1 + and minetest.get_node(pt.above).name == "air" then + minetest.set_node(pt.above, {name = "fire:basic_flame"}) + end + end + if not minetest.setting_getbool("creative_mode") then + return itemstack + end + end +}) + +minetest.register_craft({ + output = "fire:flint_and_steel", + recipe = { + {"default:flint", "default:steel_ingot"} + } +}) + + +-- Override coalblock to enable permanent flame above +-- Coalblock is non-flammable to avoid unwanted basic_flame nodes + +minetest.override_item("default:coalblock", { + after_destruct = function(pos, oldnode) + pos.y = pos.y + 1 + if minetest.get_node(pos).name == "fire:permanent_flame" then + minetest.remove_node(pos) + end + end, + on_ignite = function(pos, igniter) + local flame_pos = {x = pos.x, y = pos.y + 1, z = pos.z} + if minetest.get_node(flame_pos).name == "air" then + minetest.set_node(flame_pos, {name = "fire:permanent_flame"}) + end + end, +}) + +-- Get sound area of position + +fire.D = 6 -- size of sound areas 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, + 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 + x = p0.x + fire.D - 1, + y = p0.y + fire.D - 1, + z = p0.z + fire.D - 1 } return p0, p1 end + +-- Fire sounds table +-- key: position hash of low corner of area +-- value: {handle=sound handle, name=sound name} +fire.sounds = {} + + +-- Update fire sounds in sound area of position + 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 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} + wanted_sound = {name = "fire_large", gain = 0.7} elseif #flames_p > 0 then - wanted_sound = {name="fire_small", gain=1.5} + wanted_sound = {name = "fire_small", gain = 0.9} 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}), + handle = minetest.sound_play(wanted_sound, + {pos = cp, max_hear_distance = 16, loop = true}), name = wanted_sound.name, } end @@ -73,68 +200,122 @@ function fire.update_sounds_around(pos) 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}), + handle = minetest.sound_play(wanted_sound, + {pos = cp, max_hear_distance = 16, 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 +--[[ Extinguish all flames quickly with water, snow, ice -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 + label = "Extinguish flame", + nodenames = {"fire:basic_flame", "fire:permanent_flame"}, + neighbors = {"group:puts_out_fire"}, + interval = 3, + chance = 1, + catch_up = false, + action = function(pos, node, active_object_count, active_object_count_wider) + minetest.remove_node(pos) + minetest.sound_play("fire_extinguish_flame", + {pos = pos, max_hear_distance = 16, gain = 0.25}) end, }) + +-- Enable the following ABMs according to 'enable fire' setting + +local fire_enabled = minetest.setting_getbool("enable_fire") +if fire_enabled == nil then + -- New setting not specified, check for old setting. + -- If old setting is also not specified, 'not nil' is true. + fire_enabled = not minetest.setting_getbool("disable_fire") +end + +if not fire_enabled then + + -- Remove basic flames only + + minetest.register_abm({ + label = "Remove disabled fire", + nodenames = {"fire:basic_flame"}, + interval = 7, + chance = 1, + catch_up = false, + action = minetest.remove_node, + }) + +else -- Fire enabled + + -- Ignite neighboring nodes, add basic flames + + minetest.register_abm({ + label = "Ignite flame", + nodenames = {"group:flammable"}, + neighbors = {"group:igniter"}, + interval = 7, + chance = 12, + catch_up = false, + action = function(pos, node, active_object_count, active_object_count_wider) + -- If there is water or stuff like that around node, don't ignite + if minetest.find_node_near(pos, 1, {"group:puts_out_fire"}) then + return + end + local p = minetest.find_node_near(pos, 1, {"air"}) + if p then + minetest.set_node(p, {name = "fire:basic_flame"}) + end + end, + }) + + -- Remove flammable nodes + + minetest.register_abm({ + label = "Remove flammable nodes", + nodenames = {"fire:basic_flame"}, + neighbors = "group:flammable", + interval = 5, + chance = 18, + catch_up = false, + action = function(pos, node, active_object_count, active_object_count_wider) + local p = minetest.find_node_near(pos, 1, {"group:flammable"}) + if p then + -- remove flammable nodes around flame + local flammable_node = minetest.get_node(p) + local def = minetest.registered_nodes[flammable_node.name] + if def.on_burn then + def.on_burn(p) + else + minetest.remove_node(p) + nodeupdate(p) + end + end + end, + }) + +end + + -- Rarely ignite things from far + +-- Currently disabled to reduce the chance of uncontrollable spreading + fires that disrupt servers. Also for less lua processing load. + minetest.register_abm({ nodenames = {"group:igniter"}, neighbors = {"air"}, - interval = 2, + interval = 5, chance = 10, - action = function(p0, node, _, _) + action = function(pos, node, active_object_count, active_object_count_wider) 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"}) + local p = minetest.find_node_near(pos, 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 @@ -142,51 +323,9 @@ minetest.register_abm({ 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) + minetest.set_node(p2, {name = "fire:basic_flame"}) 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/mods/fire/license.txt b/mods/fire/license.txt new file mode 100644 index 00000000..43f9cd7f --- /dev/null +++ b/mods/fire/license.txt @@ -0,0 +1,84 @@ +License of source code +---------------------- + +GNU Lesser General Public License, version 2.1 +Copyright (C) 2012-2016 celeron55, Perttu Ahola +Copyright (C) 2012-2016 Various Minetest developers and contributors + +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: +https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html + + +Licenses of media (textures and sounds) +--------------------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2012-2016 Perttu Ahola (celeron55) +Copyright (C) 2012-2016 Muadtralk +Copyright (C) 2013-2016 Gambit + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike — If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ + +----------------------- + +Attribution 3.0 Unported (CC BY 3.0) +Copyright (C) 2005 dobroide +Copyright (C) 2006 Dynamicell +Copyright (C) 2009 Benboncan + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by/3.0/ diff --git a/mods/fire/sounds/fire_extinguish_flame.1.ogg b/mods/fire/sounds/fire_extinguish_flame.1.ogg new file mode 100644 index 00000000..42506ddf Binary files /dev/null and b/mods/fire/sounds/fire_extinguish_flame.1.ogg differ diff --git a/mods/fire/sounds/fire_extinguish_flame.2.ogg b/mods/fire/sounds/fire_extinguish_flame.2.ogg new file mode 100644 index 00000000..2747ab81 Binary files /dev/null and b/mods/fire/sounds/fire_extinguish_flame.2.ogg differ diff --git a/mods/fire/sounds/fire_extinguish_flame.3.ogg b/mods/fire/sounds/fire_extinguish_flame.3.ogg new file mode 100644 index 00000000..8baeac32 Binary files /dev/null and b/mods/fire/sounds/fire_extinguish_flame.3.ogg differ diff --git a/mods/fire/sounds/fire_flint_and_steel.ogg b/mods/fire/sounds/fire_flint_and_steel.ogg new file mode 100644 index 00000000..6996e16f Binary files /dev/null and b/mods/fire/sounds/fire_flint_and_steel.ogg differ diff --git a/mods/fire/sounds/fire_large.ogg b/mods/fire/sounds/fire_large.ogg old mode 100644 new mode 100755 index fe78e625..f97867d7 Binary files a/mods/fire/sounds/fire_large.ogg and b/mods/fire/sounds/fire_large.ogg differ diff --git a/mods/fire/sounds/fire_small.ogg b/mods/fire/sounds/fire_small.ogg old mode 100644 new mode 100755 index 5aac595b..4fc13bf7 Binary files a/mods/fire/sounds/fire_small.ogg and b/mods/fire/sounds/fire_small.ogg differ diff --git a/mods/fire/textures/fire_basic_flame.png b/mods/fire/textures/fire_basic_flame.png old mode 100644 new mode 100755 diff --git a/mods/fire/textures/fire_basic_flame_animated.png b/mods/fire/textures/fire_basic_flame_animated.png old mode 100644 new mode 100755 diff --git a/mods/fire/textures/fire_flint_steel.png b/mods/fire/textures/fire_flint_steel.png new file mode 100644 index 00000000..624f5565 Binary files /dev/null and b/mods/fire/textures/fire_flint_steel.png differ diff --git a/mods/flowers/README.txt b/mods/flowers/README.txt old mode 100644 new mode 100755 index 04f96d99..2a5e4de3 --- a/mods/flowers/README.txt +++ b/mods/flowers/README.txt @@ -1,16 +1,26 @@ -Minetest 0.4 mod: flowers -========================= +Minetest Game mod: flowers +========================== +See license.txt for license information. -License of source code: ------------------------ -Copyright (C) 2012-2013 Ironzorg, VanessaE +Authors of source code +---------------------- +Originally by Ironzorg (MIT) and VanessaE (MIT) +Various Minetest developers and contributors (MIT) -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. +Authors of media (textures) +--------------------------- +RHRhino (CC BY-SA 3.0): + flowers_dandelion_white.png + flowers_dandelion_yellow.png + flowers_geranium.png + flowers_rose.png + flowers_tulip.png + flowers_viola.png -License of media (textures and sounds) --------------------------------------- -WTFPL +Gambit (CC BY-SA 3.0): + flowers_mushroom_brown.png + flowers_mushroom_red.png + flowers_waterlily.png + +yyt16384 (CC BY-SA 3.0): + flowers_waterlily_bottom.png, derived from Gambit's texture diff --git a/mods/flowers/depends.txt b/mods/flowers/depends.txt old mode 100644 new mode 100755 diff --git a/mods/flowers/init.lua b/mods/flowers/init.lua old mode 100644 new mode 100755 index b4096475..563287ff --- a/mods/flowers/init.lua +++ b/mods/flowers/init.lua @@ -1,167 +1,321 @@ -- Minetest 0.4 mod: default -- See README.txt for licensing and other information. + +-- Namespace for functions + +flowers = {} + + -- Map Generation -dofile(minetest.get_modpath("flowers").."/mapgen.lua") + +dofile(minetest.get_modpath("flowers") .. "/mapgen.lua") + + +-- +-- Flowers +-- -- 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_dandelion_yellow", "flowers:dandelion_yellow") +minetest.register_alias("flowers:flower_geranium", "flowers:geranium") minetest.register_alias("flowers:flower_viola", "flowers:viola") +minetest.register_alias("flowers:flower_dandelion_white", "flowers:dandelion_white") -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", + +-- Flower registration + +local function add_simple_flower(name, desc, box, f_groups) + -- Common flowers' groups + f_groups.snappy = 3 + f_groups.flammable = 2 + f_groups.flower = 1 + f_groups.flora = 1 + f_groups.attached_node = 1 + + minetest.register_node("flowers:" .. name, { + description = desc, + drawtype = "plantlike", + waving = 1, + tiles = {"flowers_" .. name .. ".png"}, + inventory_image = "flowers_" .. name .. ".png", + wield_image = "flowers_" .. name .. ".png", + sunlight_propagates = true, + paramtype = "light", + walkable = false, + buildable_to = true, + stack_max = 99, + groups = f_groups, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = box + } + }) +end + +flowers.datas = { + { + "rose", + "Rose", + {-2 / 16, -0.5, -2 / 16, 2 / 16, 5 / 16, 2 / 16}, + {color_red = 1, flammable = 1} + }, + { + "tulip", + "Orange Tulip", + {-2 / 16, -0.5, -2 / 16, 2 / 16, 3 / 16, 2 / 16}, + {color_orange = 1, flammable = 1} + }, + { + "dandelion_yellow", + "Yellow Dandelion", + {-2 / 16, -0.5, -2 / 16, 2 / 16, 4 / 16, 2 / 16}, + {color_yellow = 1, flammable = 1} + }, + { + "geranium", + "Blue Geranium", + {-2 / 16, -0.5, -2 / 16, 2 / 16, 2 / 16, 2 / 16}, + {color_blue = 1, flammable = 1} + }, + { + "viola", + "Viola", + {-5 / 16, -0.5, -5 / 16, 5 / 16, -1 / 16, 5 / 16}, + {color_violet = 1, flammable = 1} + }, + { + "dandelion_white", + "White dandelion", + {-5 / 16, -0.5, -5 / 16, 5 / 16, -2 / 16, 5 / 16}, + {color_white = 1, flammable = 1} + }, +} + +for _,item in pairs(flowers.datas) do + add_simple_flower(unpack(item)) +end + +minetest.register_node("flowers:lily_pad", { + description = "Lily Pad", + drawtype = "nodebox", + tiles = { "flowers_lily_pad.png" }, + inventory_image = "flowers_lily_pad.png", + wield_image = "flowers_lily_pad.png", + wield_scale = {x = 1, y = 1, z = 0.001}, + is_ground_content = true, 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}, + groups = {snappy = 3, flammable = 2, flower = 1, flora = 1}, sounds = default.node_sound_leaves_defaults(), + node_box = { + type = "fixed", + fixed = {-0.5, -0.45, -0.5, 0.5, -0.4375, 0.5}, + }, selection_box = { type = "fixed", - fixed = { -0.15, -0.5, -0.15, 0.15, 0.2, 0.15 }, + fixed = {-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5}, }, }) -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 }, - }, -}) +-- Flower spread +-- Public function to enable override by mods -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 }, - }, -}) +function flowers.flower_spread(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"}) + return + elseif under.name ~= "default:dirt_with_grass" and + under.name ~= "default:dirt_with_dry_grass" then + return + end -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 }, - }, -}) + local light = minetest.get_node_light(pos) + if not light or light < 13 then + return + end -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 }, - }, -}) + local pos0 = vector.subtract(pos, 4) + local pos1 = vector.add(pos, 4) + if #minetest.find_nodes_in_area(pos0, pos1, "group:flora") > 3 then + return + end -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) + local seedling = minetest.find_nodes_in_area_under_air(pos0, pos1, + {"default:dirt_with_grass", "default:dirt_with_dry_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 - - 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 + minetest.set_node(seedling, {name = node.name}) + end +end + + +minetest.register_abm({ + label = "Flower spread", + nodenames = {"group:flora"}, + neighbors = {"default:dirt_with_grass", "default:dirt_with_dry_grass", + "default:desert_sand"}, + interval = 13, + chance = 96, + action = function(...) + flowers.flower_spread(...) end, }) + + +-- +-- Mushrooms +-- + +minetest.register_node("flowers:mushroom_red", { + description = "Red Mushroom", + tiles = {"flowers_mushroom_red.png"}, + inventory_image = "flowers_mushroom_red.png", + wield_image = "flowers_mushroom_red.png", + drawtype = "plantlike", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + groups = {snappy = 3, attached_node = 1, flammable = 1}, + sounds = default.node_sound_leaves_defaults(), + on_use = minetest.item_eat(-5), + selection_box = { + type = "fixed", + fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, -1 / 16, 4 / 16}, + } +}) + +minetest.register_node("flowers:mushroom_brown", { + description = "Brown Mushroom", + tiles = {"flowers_mushroom_brown.png"}, + inventory_image = "flowers_mushroom_brown.png", + wield_image = "flowers_mushroom_brown.png", + drawtype = "plantlike", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + groups = {snappy = 3, attached_node = 1, flammable = 1}, + sounds = default.node_sound_leaves_defaults(), + on_use = minetest.item_eat(1), + selection_box = { + type = "fixed", + fixed = {-3 / 16, -0.5, -3 / 16, 3 / 16, -2 / 16, 3 / 16}, + } +}) + + +-- Mushroom spread and death + +minetest.register_abm({ + label = "Mushroom spread", + nodenames = {"flowers:mushroom_brown", "flowers:mushroom_red"}, + interval = 11, + chance = 50, + action = function(pos, node) + if minetest.get_node_light(pos, nil) == 15 then + minetest.remove_node(pos) + return + end + local random = { + x = pos.x + math.random(-2, 2), + y = pos.y + math.random(-1, 1), + z = pos.z + math.random(-2, 2) + } + local random_node = minetest.get_node_or_nil(random) + if not random_node or random_node.name ~= "air" then + return + end + local node_under = minetest.get_node_or_nil({x = random.x, + y = random.y - 1, z = random.z}) + if not node_under then + return + end + + if (minetest.get_item_group(node_under.name, "soil") ~= 0 or + minetest.get_item_group(node_under.name, "tree") ~= 0) and + minetest.get_node_light(pos, 0.5) <= 3 and + minetest.get_node_light(random, 0.5) <= 3 then + minetest.set_node(random, {name = node.name}) + end + end +}) + + +-- These old mushroom related nodes can be simplified now + +minetest.register_alias("flowers:mushroom_spores_brown", "flowers:mushroom_brown") +minetest.register_alias("flowers:mushroom_spores_red", "flowers:mushroom_red") +minetest.register_alias("flowers:mushroom_fertile_brown", "flowers:mushroom_brown") +minetest.register_alias("flowers:mushroom_fertile_red", "flowers:mushroom_red") +minetest.register_alias("mushroom:brown_natural", "flowers:mushroom_brown") +minetest.register_alias("mushroom:red_natural", "flowers:mushroom_red") + + +-- +-- Waterlily +-- + +minetest.register_node("flowers:waterlily", { + description = "Waterlily", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + tiles = {"flowers_waterlily.png", "flowers_waterlily_bottom.png"}, + inventory_image = "flowers_waterlily.png", + wield_image = "flowers_waterlily.png", + liquids_pointable = true, + walkable = false, + buildable_to = true, + sunlight_propagates = true, + floodable = true, + groups = {snappy = 3, flower = 1, flammable = 1}, + sounds = default.node_sound_leaves_defaults(), + node_placement_prediction = "", + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -15 / 32, 0.5} + }, + selection_box = { + type = "fixed", + fixed = {-7 / 16, -0.5, -7 / 16, 7 / 16, -15 / 32, 7 / 16} + }, + + on_place = function(itemstack, placer, pointed_thing) + local pos = pointed_thing.above + local node = minetest.get_node(pointed_thing.under).name + local def = minetest.registered_nodes[node] + local player_name = placer:get_player_name() + + if def and def.liquidtype == "source" and + minetest.get_item_group(node, "water") > 0 then + if not minetest.is_protected(pos, player_name) then + minetest.set_node(pos, {name = "flowers:waterlily", + param2 = math.random(0, 3)}) + if not minetest.setting_getbool("creative_mode") then + itemstack:take_item() + end + else + minetest.chat_send_player(player_name, "Node is protected") + minetest.record_protection_violation(pos, player_name) + end + end + + return itemstack + end +}) diff --git a/mods/flowers/license.txt b/mods/flowers/license.txt new file mode 100644 index 00000000..d3011622 --- /dev/null +++ b/mods/flowers/license.txt @@ -0,0 +1,62 @@ +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2012-2016 Ironzorg, VanessaE +Copyright (C) 2012-2016 Various Minetest developers and contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT + + +Licenses of media (textures) +---------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2014-2016 RHRhino +Copyright (C) 2015-2016 Gambit +Copyright (C) 2016 yyt16384 + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike — If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/mods/flowers/mapgen.lua b/mods/flowers/mapgen.lua old mode 100644 new mode 100755 index 7148f6e5..921e3abb --- a/mods/flowers/mapgen.lua +++ b/mods/flowers/mapgen.lua @@ -1,62 +1,229 @@ -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) +-- +-- Mgv6 +-- + +local function register_mgv6_flower(name) + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = 0.006, + spread = {x = 100, y = 100, z = 100}, + seed = 436, + octaves = 3, + persist = 0.6 + }, + y_min = 1, + y_max = 30, + decoration = "flowers:"..name, + }) +end + +local function register_mgv6_mushroom(name) + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = 0.04, + spread = {x = 100, y = 100, z = 100}, + seed = 7133, + octaves = 3, + persist = 0.6 + }, + y_min = 1, + y_max = 30, + decoration = "flowers:"..name, + spawn_by = "default:tree", + num_spawn_by = 1, + }) +end + +local function register_mgv6_waterlily() + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt"}, + sidelen = 16, + noise_params = { + offset = -0.12, + scale = 0.3, + spread = {x = 100, y = 100, z = 100}, + seed = 33, + octaves = 3, + persist = 0.7 + }, + y_min = 0, + y_max = 0, + schematic = minetest.get_modpath("flowers").."/schematics/waterlily.mts", + rotation = "random", + }) +end + +function flowers.register_mgv6_decorations() + register_mgv6_flower("rose") + register_mgv6_flower("tulip") + register_mgv6_flower("dandelion_yellow") + register_mgv6_flower("geranium") + register_mgv6_flower("viola") + register_mgv6_flower("dandelion_white") + + register_mgv6_mushroom("mushroom_brown") + register_mgv6_mushroom("mushroom_red") + + register_mgv6_waterlily() +end + + +-- +-- All other biome API mapgens +-- + +local function register_flower(seed, name) + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = -0.015, + scale = 0.025, + spread = {x = 200, y = 200, z = 200}, + seed = seed, + octaves = 3, + persist = 0.6 + }, + biomes = {"stone_grassland", "sandstone_grassland", + "deciduous_forest", "coniferous_forest"}, + y_min = 1, + y_max = 31000, + decoration = "flowers:"..name, + }) +end + +local function register_mushroom(name) + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = 0.006, + spread = {x = 200, y = 200, z = 200}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = {"deciduous_forest", "coniferous_forest"}, + y_min = 1, + y_max = 31000, + decoration = "flowers:"..name, + }) +end + +local function register_waterlily() + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt"}, + sidelen = 16, + noise_params = { + offset = -0.12, + scale = 0.3, + spread = {x = 200, y = 200, z = 200}, + seed = 33, + octaves = 3, + persist = 0.7 + }, + biomes = {"rainforest_swamp", "savanna_swamp", "deciduous_forest_swamp"}, + y_min = 0, + y_max = 0, + schematic = minetest.get_modpath("flowers").."/schematics/waterlily.mts", + rotation = "random", + }) +end + +function flowers.register_decorations() + register_flower(436, "rose") + register_flower(19822, "tulip") + register_flower(1220999, "dandelion_yellow") + register_flower(36662, "geranium") + register_flower(1133, "viola") + register_flower(73133, "dandelion_white") + + register_mushroom("mushroom_brown") + register_mushroom("mushroom_red") + + register_waterlily() +end + + +minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:water_source"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = 0.006, + spread = {x=100, y=100, z=100}, + seed = 436, + octaves = 3, + persist = 0.6 + }, + y_min = -10, + y_max = 30, + decoration = "flowers:lily_pad", +}) + +minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:sand"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = 0.006, + spread = {x=100, y=100, z=100}, + seed = 436, + octaves = 3, + persist = 0.6 + }, + y_min = -400, + y_max = 400, + decoration = "default:dry_shrub", +}) + +minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:snow"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = 0.006, + spread = {x=100, y=100, z=100}, + seed = 436, + octaves = 3, + persist = 0.6 + }, + y_min = -400, + y_max = 400, + decoration = "default:snow", +}) + + +-- +-- Detect mapgen to select functions +-- + +-- Mods using singlenode mapgen can call these functions to enable +-- the use of minetest.generate_ores or minetest.generate_decorations + + +local mg_params = minetest.get_mapgen_params() --(1) MFF IMPORTANT for mt <= 0.14.4 stable +if mg_params.mgname == "v6" then --(1) +--local mg_name = minetest.get_mapgen_setting("mg_name") --(2) for mt > 0.14.4 stable +--if mg_name == "v6" then --(2) + flowers.register_mgv6_decorations() +elseif mg_params.mgname ~= "singlenode" then --(1) +--elseif mg_name ~= "singlenode" then --(2) + flowers.register_decorations() +end diff --git a/mods/flowers/schematics/waterlily.mts b/mods/flowers/schematics/waterlily.mts new file mode 100755 index 00000000..876310cc Binary files /dev/null and b/mods/flowers/schematics/waterlily.mts differ diff --git a/mods/flowers/textures/flowers_dandelion_white.png b/mods/flowers/textures/flowers_dandelion_white.png old mode 100644 new mode 100755 index dee0fc53..b39ba602 Binary files a/mods/flowers/textures/flowers_dandelion_white.png and b/mods/flowers/textures/flowers_dandelion_white.png differ diff --git a/mods/flowers/textures/flowers_dandelion_yellow.png b/mods/flowers/textures/flowers_dandelion_yellow.png old mode 100644 new mode 100755 index 99becb52..3c7070a1 Binary files a/mods/flowers/textures/flowers_dandelion_yellow.png and b/mods/flowers/textures/flowers_dandelion_yellow.png differ diff --git a/mods/flowers/textures/flowers_geranium.png b/mods/flowers/textures/flowers_geranium.png old mode 100644 new mode 100755 index 22b7da19..4bc51f06 Binary files a/mods/flowers/textures/flowers_geranium.png and b/mods/flowers/textures/flowers_geranium.png differ diff --git a/mods/flowers/textures/flowers_lily_pad.png b/mods/flowers/textures/flowers_lily_pad.png new file mode 100755 index 00000000..b0879406 Binary files /dev/null and b/mods/flowers/textures/flowers_lily_pad.png differ diff --git a/mods/flowers/textures/flowers_mushroom_brown.png b/mods/flowers/textures/flowers_mushroom_brown.png new file mode 100755 index 00000000..33ffcd47 Binary files /dev/null and b/mods/flowers/textures/flowers_mushroom_brown.png differ diff --git a/mods/flowers/textures/flowers_mushroom_red.png b/mods/flowers/textures/flowers_mushroom_red.png new file mode 100755 index 00000000..a68f5d50 Binary files /dev/null and b/mods/flowers/textures/flowers_mushroom_red.png differ diff --git a/mods/flowers/textures/flowers_mushroom_spores_brown.png b/mods/flowers/textures/flowers_mushroom_spores_brown.png new file mode 100755 index 00000000..a0818d23 Binary files /dev/null and b/mods/flowers/textures/flowers_mushroom_spores_brown.png differ diff --git a/mods/flowers/textures/flowers_mushroom_spores_red.png b/mods/flowers/textures/flowers_mushroom_spores_red.png new file mode 100755 index 00000000..1f1d3a45 Binary files /dev/null and b/mods/flowers/textures/flowers_mushroom_spores_red.png differ diff --git a/mods/flowers/textures/flowers_rose.png b/mods/flowers/textures/flowers_rose.png old mode 100644 new mode 100755 index cc3803a4..733fbe31 Binary files a/mods/flowers/textures/flowers_rose.png and b/mods/flowers/textures/flowers_rose.png differ diff --git a/mods/flowers/textures/flowers_tulip.png b/mods/flowers/textures/flowers_tulip.png old mode 100644 new mode 100755 index f03e3aa4..1b0dd816 Binary files a/mods/flowers/textures/flowers_tulip.png and b/mods/flowers/textures/flowers_tulip.png differ diff --git a/mods/flowers/textures/flowers_viola.png b/mods/flowers/textures/flowers_viola.png old mode 100644 new mode 100755 index 93a525d7..13f390a9 Binary files a/mods/flowers/textures/flowers_viola.png and b/mods/flowers/textures/flowers_viola.png differ diff --git a/mods/flowers/textures/flowers_waterlily.png b/mods/flowers/textures/flowers_waterlily.png new file mode 100644 index 00000000..6b5ddc0b Binary files /dev/null and b/mods/flowers/textures/flowers_waterlily.png differ diff --git a/mods/flowers/textures/flowers_waterlily_bottom.png b/mods/flowers/textures/flowers_waterlily_bottom.png new file mode 100644 index 00000000..3dbeaf40 Binary files /dev/null and b/mods/flowers/textures/flowers_waterlily_bottom.png differ diff --git a/mods/give_initial_stuff/init.lua b/mods/give_initial_stuff/init.lua deleted file mode 100644 index c65ddeae..00000000 --- a/mods/give_initial_stuff/init.lua +++ /dev/null @@ -1,12 +0,0 @@ -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/mods/h2omes/depends.txt b/mods/h2omes/depends.txt new file mode 100755 index 00000000..b231431d --- /dev/null +++ b/mods/h2omes/depends.txt @@ -0,0 +1,2 @@ +action_timers +nether? diff --git a/mods/h2omes/init.lua b/mods/h2omes/init.lua new file mode 100644 index 00000000..39bac125 --- /dev/null +++ b/mods/h2omes/init.lua @@ -0,0 +1,425 @@ +h2omes = {} +h2omes.homes = {} -- table players home +h2omes.path = minetest.get_worldpath() .. "/h2omes/" +minetest.mkdir(h2omes.path) + +h2omes.time_home = 2 * 60 --MFF 04/05/2016 2 minutes plus 20 minutes +h2omes.time_spawn = 5*60 +h2omes.time_from_player = 5*60 +h2omes.time_to_player = 5*60 + +local tmp_players = {} +local from_players = {} + +h2omes.have_nether = false -- nether mod +if (minetest.get_modpath("nether") ~= nil) then + h2omes.have_nether = true +end + + +function h2omes.check(name) + if h2omes.homes[name] == nil then + h2omes.homes[name] = {["home"] = {}, ["pit"] = {}} + end +end + + +--function save_homes +function h2omes.save_homes(name) + local file = h2omes.path..name + local input, err = io.open(file, "w") + if input then + input:write(minetest.serialize(h2omes.homes[name])) + input:close() + else + minetest.log("error", "open(" .. file .. ", 'w') failed: " .. err) + end +end + + +--function load_homes +function h2omes.load_homes(name) + h2omes.check(name) + local file = h2omes.path..name + local input, err = io.open(file, "r") + if input then + local data = minetest.deserialize(input:read()) + io.close(input) + if data and type(data) == "table" then + if data.home then + if data.home.real then + h2omes.homes[name].home.real = data.home.real + end + if data.home.nether then + h2omes.homes[name].home.nether = data.home.nether + end + end + if data.pit then + if data.pit.real then + h2omes.homes[name].pit.real = data.pit.real + end + if data.pit.nether then + h2omes.homes[name].pit.nether = data.pit.nether + end + end + end + end +end + +-- disallowed tp real-->nether or nether-->real +function h2omes.can_teleport(from_pos, to_pos) + if not h2omes.have_nether then -- not nether mod, -19600 is real + return true + end + if from_pos.y < -19600 and to_pos.y < -19600 then + return true + elseif from_pos.y > -19600 and to_pos.y > -19600 then + return true + end + return false +end + + +--function set_homes +function h2omes.set_home(name, home_type, pos) + h2omes.check(name) + if not pos then + local player = minetest.get_player_by_name(name) + if not player then return end + pos = player:getpos() + end + if not pos then return false end + if pos.y < -19600 and h2omes.have_nether then + h2omes.homes[name][home_type].nether = pos + else + h2omes.homes[name][home_type].real = pos + end + minetest.chat_send_player(name, home_type.." set!") + minetest.sound_play("dingdong",{to_player=name, gain = 1.0}) + h2omes.save_homes(name) + return true +end + + +--function get_homes +function h2omes.get_home(name, home_type) + h2omes.check(name) + local player = minetest.get_player_by_name(name) + if not player then return nil end + local pos = player:getpos() + if not pos then return nil end + local status = "real" + if pos.y < -19600 and h2omes.have_nether then + status = "nether" + end + if h2omes.homes[name][home_type][status] then + return h2omes.homes[name][home_type][status] + end + return nil +end + +--function getspawn +function h2omes.getspawn(name) + local player = minetest.get_player_by_name(name) + if not player then return nil end + local pos = player:getpos() + if not pos then return nil end + local spawn_pos + if pos.y < -19600 and h2omes.have_nether then + spawn_pos = minetest.string_to_pos(minetest.setting_get("nether_static_spawnpoint") or "") + elseif minetest.setting_get_pos("static_spawnpoint") then + spawn_pos = minetest.setting_get_pos("static_spawnpoint") + end + return spawn_pos +end + + +--function to_spawn +function h2omes.to_spawn(name) + local player = minetest.get_player_by_name(name) + if not player then return false end + local spawn_pos = h2omes.getspawn(name) + if spawn_pos then + minetest.chat_send_player(name, "Teleporting to spawn...") + player:setpos(spawn_pos) + minetest.sound_play("teleport", {to_player=name, gain = 1.0}) + minetest.log("action","Player ".. name .." respawned. Next allowed respawn in ".. h2omes.time_spawn .." seconds.") + return true + else + minetest.chat_send_player(name, "ERROR: No spawn point is set on this server!") + return false + end +end + + +--function to_homes +function h2omes.to_home(name, home_type) + h2omes.check(name) + local player = minetest.get_player_by_name(name) + if not player then return false end + local pos = player:getpos() + if not pos then return false end + local status = "real" + if pos.y < -19600 and h2omes.have_nether then + status = "nether" + end + if h2omes.homes[name][home_type][status] then + player:setpos(h2omes.homes[name][home_type][status]) + minetest.chat_send_player(name, "Teleported to "..home_type.."!") + minetest.sound_play("teleport", {to_player=name, gain = 1.0}) + return true + end + return false +end + + +--function to_player +function h2omes.to_player(name, to_pos, to_name) + local player = minetest.get_player_by_name(name) + if not player then return false end + local from_pos = player:getpos() + if to_pos then + if h2omes.can_teleport(from_pos, to_pos) then + minetest.chat_send_player(name, "Teleporting to player "..to_name) + player:setpos(to_pos) + minetest.sound_play("teleport", {to_player=name, gain = 1.0}) + return true + else + minetest.chat_send_player(name, "Sorry, teleport between 2 worlds(real/nether) is not allowed!") + return false + end + else + minetest.chat_send_player(name, "ERROR: No position to player!") + return false + end +end + + +function h2omes.update_pos(name, pos, from_name) + from_players[name] = {name=from_name, pos=pos} + minetest.chat_send_player(name, from_name .." sent you their position to teleport") + minetest.sound_play("dingdong",{to_player=name, gain = 0.8}) + return true +end + + +function h2omes.send_pos_to_player(name, pos, to_name) + local player = minetest.get_player_by_name(to_name) + if not player or not pos then return false end + if action_timers.wrapper(name, "send_pos_to_player", "from_player_" .. to_name, h2omes.time_from_player, h2omes.update_pos, {to_name, pos, name}) then + minetest.chat_send_player(name, "Your position has been sent to "..to_name) + return true + else + minetest.chat_send_player(name, "Error: "..to_name.." already received a request. please try again later.") + end + return false +end + + +function h2omes.show_formspec_home(name) + if tmp_players[name] == nil then + tmp_players[name] = {} + end + local player = minetest.get_player_by_name(name) + if not player then return false end + local formspec = {"size[8,9]label[3.15,0;Home Settings]"} + local pos = player:getpos() + --spawn + table.insert(formspec, "label[3.45,0.8;TO SPAWN]") + local spawn_pos = h2omes.getspawn(name) + if spawn_pos then + table.insert(formspec, string.format("label[2.9,1.3;x:%s, y:%s, z:%s]", math.floor(spawn_pos.x), math.floor(spawn_pos.y), math.floor(spawn_pos.z) )) + table.insert(formspec, "button_exit[6,1.1;1.5,1;to_spawn;To Spawn]") + else + table.insert(formspec, "label[3.3,1.3;No spawn set]") + end + + --home + table.insert(formspec, "label[3.5,2.1;TO HOME]") + table.insert(formspec, "button[0.5,2.4;1.5,1;set_home;Set Home]") + local home_pos = h2omes.get_home(name, "home") + if home_pos then + table.insert(formspec, string.format("label[2.9,2.5;x:%s, y:%s, z:%s]", math.floor(home_pos.x), math.floor(home_pos.y), math.floor(home_pos.z) )) + table.insert(formspec, "button_exit[6,2.4;1.5,1;to_home;To Home]") + else + table.insert(formspec, "label[3.3,2.5;Home no set]") + end + + --pit + table.insert(formspec, "label[3.55,3.4;TO PIT]") + table.insert(formspec, "button[0.5,3.7;1.5,1;set_pit;Set Pit]") + local pit_pos = h2omes.get_home(name, "pit") + if pit_pos then + table.insert(formspec, string.format("label[2.9,3.8;x:%s, y:%s, z:%s]", math.floor(pit_pos.x), math.floor(pit_pos.y), math.floor(pit_pos.z) )) + table.insert(formspec, "button_exit[6,3.7;1.5,1;to_pit;To Pit]") + else + table.insert(formspec, "label[3.3,3.8;Pit no set]") + end + + --to player + table.insert(formspec, "label[3.35,4.7;TO PLAYER]") + local to_player = from_players[name] + if to_player and to_player.name and to_player.pos then + table.insert(formspec, string.format("label[0.5,5.1;To %s]", to_player.name)) + table.insert(formspec,string.format("label[2.9,5.1;x:%s, y:%s, z:%s]", math.floor(to_player.pos.x),math.floor(to_player.pos.y),math.floor(to_player.pos.z))) + table.insert(formspec, "button_exit[6,5;1.5,1;to_player;To Player]") + else + table.insert(formspec, "label[2.7,5.1;No request from player]") + end + + table.insert(formspec, "label[2.8,6;SEND MY POS TO PLAYER]") + if not tmp_players[name] or not tmp_players[name].players_list or #tmp_players[name].players_list < 1 or tmp_players[name].refresh then + tmp_players[name].refresh = nil + tmp_players[name].players_list = {} + tmp_players[name].selected_id = 0 + for _,player in pairs(minetest.get_connected_players()) do + local player_name = player:get_player_name() + if player_name and player_name ~= "" and player_name ~= name then + table.insert(tmp_players[name].players_list, player_name) + end + end + tmp_players[name]["select_player"] = nil + end + if #tmp_players[name].players_list == 0 then + table.insert(formspec, "label[3,6.4;No player, try later]") + else + table.insert(formspec,"button[3.5,6.4;1.5,1;refresh;refresh]") + table.insert(formspec, "dropdown[0.5,6.5;3,1;select_player;"..table.concat(tmp_players[name].players_list, ",")..";"..tmp_players[name].selected_id.."]") + end + if tmp_players[name].selected_id and tmp_players[name].selected_id > 0 then + table.insert(formspec, "button_exit[6,6.4;1.5,1;send_to;Send To]") + end + + table.insert(formspec, "button_exit[3.25,8.3;1.5,1;close;Close]") + minetest.show_formspec(name, "h2omes:formspec", table.concat(formspec)) +end + + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if not name or name == "" then return end + if formname == "h2omes:formspec" then + if fields["set_home"] then + --h2omes.set_home(name, "home") + action_timers.wrapper(name, "sethome", "sethome_" .. name, h2omes.time_home, h2omes.set_home, {name, "home"}) + elseif fields["set_pit"] then + --h2omes.set_home(name, "pit") + action_timers.wrapper(name, "setpit", "sethome_" .. name, h2omes.time_home, h2omes.set_home, {name, "pit"}) + elseif fields["to_home"] then + --h2omes.to_home(name, "home") + action_timers.wrapper(name, "home", "tohome_" .. name, h2omes.time_home, h2omes.to_home, {name, "home"}) + elseif fields["to_pit"] then + --h2omes.to_home(name, "pit") + action_timers.wrapper(name, "pit", "tohome_" .. name, h2omes.time_home, h2omes.to_home, {name, "pit"}) + elseif fields["to_spawn"] then + action_timers.wrapper(name, "spawn", "tospawn_" .. name, h2omes.time_spawn, h2omes.to_spawn, {name}) + elseif fields["to_player"] then + if not from_players[name] then return end + local to_name = from_players[name].name + local pos = from_players[name].pos + from_players[name] = nil + if not to_name or not pos then return end + h2omes.to_player(name, pos, to_name) + elseif fields["send_to"] then + local to_name = tmp_players[name]["select_player"] + if not to_name then return end + local pos = player:getpos() + action_timers.wrapper(name, "send_pos_to_player", "to_player_" .. name, h2omes.time_to_player, h2omes.send_pos_to_player, {name, pos, to_name}) + tmp_players[name] = nil + elseif fields["refresh"] then + tmp_players[name].refresh = true + elseif fields["select_player"] then + for i, n in pairs(tmp_players[name].players_list) do + if n == fields["select_player"] then + tmp_players[name]["select_player"] = fields["select_player"] + tmp_players[name].selected_id = i + break + end + end + end + if not fields["quit"] then + h2omes.show_formspec_home(name) + end + end +end) + + +minetest.register_on_joinplayer(function(player) + local name = player:get_player_name() + if not name or name == "" then return end + h2omes.load_homes(name) +end) + + +minetest.register_on_leaveplayer(function(player) + local name = player:get_player_name() + if not name or name == "" then return end + h2omes.homes[name] = nil + tmp_players[name] = nil + from_players[name] = nil +end) + + +minetest.register_privilege("home", "Can use /sethome, /home, /setpit and /pit") + +minetest.register_chatcommand("spawn", { + description = "Teleport a player to the defined spawnpoint", + func = function(name) + local spawn_pos = h2omes.getspawn(name) + if spawn_pos then + action_timers.wrapper(name, "spawn", "tospawn_" .. name, h2omes.time_spawn, h2omes.to_spawn, {name}) + else + minetest.chat_send_player(name, "ERROR: No spawn point is set on this server!") + return false + end + end +}) + +minetest.register_chatcommand("home", { + description = "Teleport you to your home point", + privs = {home=true}, + func = function (name, params) + if not h2omes.get_home(name, "home") then + minetest.chat_send_player(name, "Set a home using /sethome") + return false + end + --h2omes.to_home(name, "home") + return action_timers.wrapper(name, "home", "tohome_" .. name, h2omes.time_home, h2omes.to_home, {name, "home"}) + end, +}) + + +minetest.register_chatcommand("sethome", { + description = "Set your home point", + privs = {home=true}, + func = function (name, params) + --h2omes.set_home(name, "home") + return action_timers.wrapper(name, "sethome", "sethome_" .. name, h2omes.time_home, h2omes.set_home, {name, "home"}) + end, +}) + + +minetest.register_chatcommand("pit", { + description = "Teleport you to your pit point", + privs = {home=true}, + func = function (name, params) + if not h2omes.get_home(name, "pit") then + minetest.chat_send_player(name, "Set a pit using /setpit") + return false + end + --h2omes.to_home(name, "pit") + return action_timers.wrapper(name, "pit", "tohome_" .. name, h2omes.time_home, h2omes.to_home, {name, "pit"}) + end, +}) + + +minetest.register_chatcommand("setpit", { + description = "Set your pit point", + privs = {home=true}, + func = function (name, params) + --h2omes.set_home(name, "pit") + return action_timers.wrapper(name, "setpit", "sethome_" .. name, h2omes.time_home, h2omes.set_home, {name, "pit"}) + end, +}) + +minetest.log("action","[h2omes] Loaded.") diff --git a/mods/nyancat/README.txt b/mods/nyancat/README.txt new file mode 100644 index 00000000..fadc1d23 --- /dev/null +++ b/mods/nyancat/README.txt @@ -0,0 +1,16 @@ +Minetest Game mod: nyancat +========================== +See license.txt for license information. + +Authors of source code +---------------------- +Originally by celeron55, Perttu Ahola (LGPL 2.1) +Various Minetest developers and contributors (LGPL 2.1) + +Authors of media files +---------------------- +VanessaE (CC BY-SA 3.0): + nyancat_front.png + nyancat_back.png + nyancat_side.png + nyancat_rainbow.png diff --git a/mods/give_initial_stuff/depends.txt b/mods/nyancat/depends.txt similarity index 88% rename from mods/give_initial_stuff/depends.txt rename to mods/nyancat/depends.txt index 3a7daa1d..4ad96d51 100644 --- a/mods/give_initial_stuff/depends.txt +++ b/mods/nyancat/depends.txt @@ -1,2 +1 @@ default - diff --git a/mods/nyancat/init.lua b/mods/nyancat/init.lua new file mode 100644 index 00000000..7192beb8 --- /dev/null +++ b/mods/nyancat/init.lua @@ -0,0 +1,89 @@ +minetest.register_node("nyancat:nyancat", { + description = "Nyan Cat", + tiles = {"nyancat_side.png", "nyancat_side.png", "nyancat_side.png", + "nyancat_side.png", "nyancat_back.png", "nyancat_front.png"}, + paramtype = "light", + light_source = default.LIGHT_MAX, + paramtype2 = "facedir", + groups = {cracky = 2}, + is_ground_content = false, + legacy_facedir_simple = true, + sounds = default.node_sound_defaults(), +}) + +minetest.register_node("nyancat:nyancat_rainbow", { + description = "Nyan Cat Rainbow", + tiles = { + "nyancat_rainbow.png^[transformR90", + "nyancat_rainbow.png^[transformR90", + "nyancat_rainbow.png" + }, + paramtype = "light", + light_source = default.LIGHT_MAX, + paramtype2 = "facedir", + groups = {cracky = 2}, + is_ground_content = false, + sounds = default.node_sound_defaults(), +}) + +minetest.register_craft({ + type = "fuel", + recipe = "nyancat:nyancat", + burntime = 1, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "nyancat:nyancat_rainbow", + burntime = 1, +}) + +nyancat = {} + +function nyancat.place(pos, facedir, length) + if facedir > 3 then + facedir = 0 + end + local tailvec = minetest.facedir_to_dir(facedir) + local p = {x = pos.x, y = pos.y, z = pos.z} + minetest.set_node(p, {name = "nyancat: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 = "nyancat:nyancat_rainbow", param2 = facedir}) + end +end + +function nyancat.generate(minp, maxp, seed) + 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 pr:next(0, 1000) == 0 then + local x0 = pr:next(minp.x, maxp.x) + local y0 = pr:next(minp.y, maxp.y) + local z0 = pr:next(minp.z, maxp.z) + local p0 = {x = x0, y = y0, z = z0} + nyancat.place(p0, pr:next(0, 3), pr:next(3, 15)) + end + end +end + +minetest.register_on_generated(function(minp, maxp, seed) + nyancat.generate(minp, maxp, seed) +end) + +-- Legacy +minetest.register_alias("default:nyancat", "nyancat:nyancat") +minetest.register_alias("default:nyancat_rainbow", "nyancat:nyancat_rainbow") +minetest.register_alias("nyancat", "nyancat:nyancat") +minetest.register_alias("nyancat_rainbow", "nyancat:nyancat_rainbow") +default.make_nyancat = nyancat.place +default.generate_nyancats = nyancat.generate diff --git a/mods/nyancat/license.txt b/mods/nyancat/license.txt new file mode 100644 index 00000000..3aa38617 --- /dev/null +++ b/mods/nyancat/license.txt @@ -0,0 +1,50 @@ +License of source code +---------------------- + +GNU Lesser General Public License, version 2.1 +Copyright (C) 2011-2016 celeron55, Perttu Ahola +Copyright (C) 2012-2016 Various Minetest developers and contributors + +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: +https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html + + +Licenses of media (textures) +---------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2012-2016 VanessaE + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike — If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/mods/nyancat/textures/nyancat_back.png b/mods/nyancat/textures/nyancat_back.png new file mode 100644 index 00000000..e479ace8 Binary files /dev/null and b/mods/nyancat/textures/nyancat_back.png differ diff --git a/mods/nyancat/textures/nyancat_front.png b/mods/nyancat/textures/nyancat_front.png new file mode 100644 index 00000000..c9dd6a33 Binary files /dev/null and b/mods/nyancat/textures/nyancat_front.png differ diff --git a/mods/nyancat/textures/nyancat_rainbow.png b/mods/nyancat/textures/nyancat_rainbow.png new file mode 100644 index 00000000..685a22cc Binary files /dev/null and b/mods/nyancat/textures/nyancat_rainbow.png differ diff --git a/mods/nyancat/textures/nyancat_side.png b/mods/nyancat/textures/nyancat_side.png new file mode 100644 index 00000000..3152c337 Binary files /dev/null and b/mods/nyancat/textures/nyancat_side.png differ diff --git a/mods/player_physics/LICENSE b/mods/player_physics/LICENSE new file mode 100644 index 00000000..9cecc1d4 --- /dev/null +++ b/mods/player_physics/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + {one line to give the program's name and a brief idea of what it does.} + Copyright (C) {year} {name of author} + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + {project} Copyright (C) {year} {fullname} + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/mods/player_physics/README.md b/mods/player_physics/README.md new file mode 100644 index 00000000..f0626cac --- /dev/null +++ b/mods/player_physics/README.md @@ -0,0 +1,35 @@ +# player_physics +A minetest mod to centralize the management of player's stats(sprint, jump, gravity) +Because many mods (sprint, 3d_armor and others) rewrite the stats in their corner and it cancel + + +***API*** + + - player_physics.set_stats(player, "uniq_name", table) + + - player_physics.remove_stats(player, "uniq_name") + +**Exemple** + + - player_physics.set_stats(player, "potion_speedlvl1", {speed=0.35}) + + - player_physics.set_stats(player, "sprint_mod", {speed=0.35, jump=0.1}) + + - player_physics.remove_stats(player, "potion_speedlvl1") + +**Temporary effect** + + - player_physics.add_effect(player, "uniq_name", time, stats) + - player_physics.remove_effect(player, "uniq_name") + +**Exemple** +You make a potion that adds speed for 10 seconds. + + on_use = function(itemstack, user, pointed_thing) + player_physics.add_effect(user, "potion_speedlvl1", 10, {speed=0.6}) + itemstack:take_item() + return itemstack + end + + + diff --git a/mods/player_physics/init.lua b/mods/player_physics/init.lua new file mode 100644 index 00000000..ed1e5e28 --- /dev/null +++ b/mods/player_physics/init.lua @@ -0,0 +1,121 @@ +local players = {} +player_physics = {} + + +function player_physics.check(playerName) + if players[playerName] == nil then + players[playerName] = {speed = {}, jump = {}, gravity={}, temp={}} + end +end + + +minetest.register_on_joinplayer(function(player) + local playerName = player:get_player_name() + player_physics.check(playerName) +end) + + +minetest.register_on_leaveplayer(function(player) + local playerName = player:get_player_name() + players[playerName] = nil +end) + + +function player_physics.set_stats(player, uuid, stats) + if type(stats) ~= "table" then + minetest.log("error", "player_physics: set_stats(player, uuid, stat) stats must be table(eg:{speed=1})") + return + end + local playerName = player:get_player_name() + player_physics.check(playerName) + for stat, v in pairs(stats) do + if (stat == "speed" or stat == "jump" or stat == "gravity") and type(v) == "number" then + players[playerName][stat][uuid] = v + end + end +end + + +function player_physics.remove_stats(player, uuid) + local playerName = player:get_player_name() + player_physics.check(playerName) + for _, stat in pairs({"speed", "jump", "gravity"}) do + players[playerName][stat][uuid] = nil + end +end + + +function player_physics.add_effect(player, uuid, time, stats) + if type(stats) ~= "table" then + minetest.log("error", "player_physics: add_effect(player, uuid, time, stats) stats must be table(eg:{speed=1})") + return + end + if type(time) ~= "number" then + minetest.log("error", "player_physics: add_effect(player, uuid, time, stats) time must be number") + return + end + local playerName = player:get_player_name() + player_physics.check(playerName) + for stat, v in pairs(stats) do + if (stat == "speed" or stat == "jump" or stat == "gravity") and type(v) == "number" then + players[playerName]["temp"][uuid][stat] = {value=v, time=time} + end + end +end + + +function player_physics.remove_effect(player, uuid) + local playerName = player:get_player_name() + player_physics.check(playerName) + players[playerName]["temp"][uuid] = nil +end + + +minetest.register_globalstep(function(dtime) + for _,player in ipairs(minetest.get_connected_players()) do + local playerName = player:get_player_name() + if playerName ~= "" then + player_physics.check(playerName) + local stats ={speed=1, jump=1, gravity=1} + + for _, stat in pairs({"speed", "jump", "gravity"}) do + for uuid, v in pairs(players[playerName][stat]) do + stats[stat] = stats[stat] + v + end + end + + --temporary effect + for uuid, _ in pairs(players[playerName]["temp"]) do + for stat, v in pairs(players[playerName]["temp"][uuid]) do + stats[stat] = stats[stat] + v.value + local t = v.time-dtime + if t > 0 then + players[playerName]["temp"][uuid][stat].time = t + else + players[playerName]["temp"][uuid][stat] = nil + end + end + end --/temporary effect + + if stats.speed > 4 then + stats.speed = 4 + elseif stats.speed < 0 then + stats.speed = 0 + end + + if stats.jump > 3 then + stats.jump = 3 + elseif stats.jump < 0 then + stats.jump = 0 + end + + if stats.gravity > 2 then + stats.gravity = 2 + elseif stats.gravity < -2 then + stats.gravity = -2 + end + player:set_physics_override(stats) + end + end +end) + diff --git a/mods/screwdriver/README.txt b/mods/screwdriver/README.txt new file mode 100644 index 00000000..9d39c58c --- /dev/null +++ b/mods/screwdriver/README.txt @@ -0,0 +1,13 @@ +Minetest Game mod: screwdriver +============================== +See license.txt for license information. + +License of source code +---------------------- +Originally by RealBadAngel, Maciej Kasatkin (LGPL 2.1) +Various Minetest developers and contributors (LGPL 2.1) + +License of media (textures) +--------------------------- +Created by Gambit (CC BY-SA 3.0): + screwdriver.png diff --git a/mods/screwdriver/init.lua b/mods/screwdriver/init.lua old mode 100644 new mode 100755 index c257235f..31daa1c5 --- a/mods/screwdriver/init.lua +++ b/mods/screwdriver/init.lua @@ -1,51 +1,4 @@ - -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, "Hold shift and use 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 +screwdriver = {} local function nextrange(x, max) x = x + 1 @@ -55,78 +8,119 @@ local function nextrange(x, max) return x end -local function screwdriver_handler(itemstack, user, pointed_thing) +screwdriver.ROTATE_FACE = 1 +screwdriver.ROTATE_AXIS = 2 +screwdriver.disallow = function(pos, node, user, mode, new_param2) + return false +end +screwdriver.rotate_simple = function(pos, node, user, mode, new_param2) + if mode ~= screwdriver.ROTATE_FACE then + return false + end +end +local USES = 200 +local USES_perfect = 10000 + +-- Handles rotation +screwdriver.handler = function(itemstack, user, pointed_thing, mode, uses) 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 + -- verify node is facedir (expected to be rotatable) + if not ndef or ndef.paramtype2 ~= "facedir" 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 + -- Compute param2 + local rotationPart = node.param2 % 32 -- get first 4 bits + local preservePart = node.param2 - rotationPart + local axisdir = math.floor(rotationPart / 4) + local rotation = rotationPart - axisdir * 4 + if mode == screwdriver.ROTATE_FACE then + rotationPart = axisdir * 4 + nextrange(rotation, 3) + elseif mode == screwdriver.ROTATE_AXIS then + rotationPart = nextrange(axisdir, 5) * 4 + end + + local new_param2 = preservePart + rotationPart + local should_rotate = true + + if ndef and ndef.on_rotate then -- Node provides a handler, so let the handler decide instead if the node can be rotated + -- Copy pos and node because callback can modify it + local result = ndef.on_rotate(vector.new(pos), + {name = node.name, param1 = node.param1, param2 = node.param2}, + user, mode, new_param2) + if result == false then -- Disallow rotation + return + elseif result == true then + should_rotate = false 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 + else + if not ndef or not ndef.paramtype2 == "facedir" or + ndef.on_rotate == false or + (ndef.drawtype == "nodebox" and + not ndef.node_box.type == "fixed") or + node.param2 == nil then + return + end + + if ndef.can_dig and not ndef.can_dig(pos, user) then + return 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 + + if should_rotate then + node.param2 = new_param2 + minetest.swap_node(pos, node) end - itemstack:set_wear(item_wear) + + if not minetest.setting_getbool("creative_mode") and minetest.registered_tools["screwdriver:screwdriver_perfect"] then + itemstack:add_wear(65535 / (USES_perfect - 1)) + elseif not minetest.setting_getbool("creative_mode") then + itemstack:add_wear(65535 / (USES - 1)) + end + return itemstack end +-- Screwdriver +minetest.register_tool("screwdriver:screwdriver", { + description = "Screwdriver (left-click rotates face, right-click rotates axis)", + inventory_image = "screwdriver.png", + on_use = function(itemstack, user, pointed_thing) + screwdriver.handler(itemstack, user, pointed_thing, screwdriver.ROTATE_FACE, 200) + return itemstack + end, + on_place = function(itemstack, user, pointed_thing) + screwdriver.handler(itemstack, user, pointed_thing, screwdriver.ROTATE_AXIS) + return itemstack + end, +}) + +-- Perfect Screwdriver (en mithril à 10 000 utilisations) +minetest.register_tool("screwdriver:screwdriver_perfect", { + description = "Perfect Screwdriver (left-click rotates face, right-click rotates axis)", + inventory_image = "screwdriver_perfect.png", + on_use = function(itemstack, user, pointed_thing) + screwdriver.handler(itemstack, user, pointed_thing, screwdriver.ROTATE_FACE, 10000) + return itemstack + end, + on_place = function(itemstack, user, pointed_thing) + screwdriver.handler(itemstack, user, pointed_thing, screwdriver.ROTATE_AXIS, 10000) + return itemstack + end, +}) + + minetest.register_craft({ output = "screwdriver:screwdriver", recipe = { @@ -135,25 +129,15 @@ minetest.register_craft({ } }) -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, +minetest.register_craft({ + output = "screwdriver:screwdriver_perfect", + recipe = { + {"default:mithril_ingot"}, + {"group:stick"} + } }) -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 - +minetest.register_alias("screwdriver:screwdriver1", "screwdriver:screwdriver") +minetest.register_alias("screwdriver:screwdriver2", "screwdriver:screwdriver") +minetest.register_alias("screwdriver:screwdriver3", "screwdriver:screwdriver") +minetest.register_alias("screwdriver:screwdriver4", "screwdriver:screwdriver") diff --git a/mods/screwdriver/license.txt b/mods/screwdriver/license.txt new file mode 100644 index 00000000..d9b721bb --- /dev/null +++ b/mods/screwdriver/license.txt @@ -0,0 +1,50 @@ +License of source code +---------------------- + +GNU Lesser General Public License, version 2.1 +Copyright (C) 2013-2016 RealBadAngel, Maciej Kasatkin +Copyright (C) 2013-2016 Various Minetest developers and contributors + +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: +https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html + + +Licenses of media (textures) +---------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2013-2016 Gambit + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike — If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/mods/screwdriver/readme.txt b/mods/screwdriver/readme.txt deleted file mode 100644 index d0b10e05..00000000 --- a/mods/screwdriver/readme.txt +++ /dev/null @@ -1,18 +0,0 @@ -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/mods/screwdriver/textures/screwdriver.png b/mods/screwdriver/textures/screwdriver.png old mode 100644 new mode 100755 index 672692a1..32b38462 Binary files a/mods/screwdriver/textures/screwdriver.png and b/mods/screwdriver/textures/screwdriver.png differ diff --git a/mods/screwdriver/textures/screwdriver_perfect.png b/mods/screwdriver/textures/screwdriver_perfect.png new file mode 100755 index 00000000..37118cde Binary files /dev/null and b/mods/screwdriver/textures/screwdriver_perfect.png differ diff --git a/mods/screwdriver/textures/tool_mode1.png b/mods/screwdriver/textures/tool_mode1.png deleted file mode 100644 index 41e12ab4..00000000 Binary files a/mods/screwdriver/textures/tool_mode1.png and /dev/null differ diff --git a/mods/screwdriver/textures/tool_mode2.png b/mods/screwdriver/textures/tool_mode2.png deleted file mode 100644 index 2043d8f6..00000000 Binary files a/mods/screwdriver/textures/tool_mode2.png and /dev/null differ diff --git a/mods/screwdriver/textures/tool_mode3.png b/mods/screwdriver/textures/tool_mode3.png deleted file mode 100644 index fbc729f7..00000000 Binary files a/mods/screwdriver/textures/tool_mode3.png and /dev/null differ diff --git a/mods/screwdriver/textures/tool_mode4.png b/mods/screwdriver/textures/tool_mode4.png deleted file mode 100644 index c9253146..00000000 Binary files a/mods/screwdriver/textures/tool_mode4.png and /dev/null differ diff --git a/mods/sethome/init.lua b/mods/sethome/init.lua deleted file mode 100644 index 20f77c01..00000000 --- a/mods/sethome/init.lua +++ /dev/null @@ -1,65 +0,0 @@ -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/mods/stairs/README.txt b/mods/stairs/README.txt old mode 100644 new mode 100755 index 716a677c..d32cd71b --- a/mods/stairs/README.txt +++ b/mods/stairs/README.txt @@ -1,26 +1,16 @@ -Minetest 0.4 mod: stairs +Minetest Game mod: stairs ========================= +See license.txt for license information. -License of source code: ------------------------ -Copyright (C) 2011-2012 Kahrl -Copyright (C) 2011-2012 celeron55, Perttu Ahola +Authors of source code +---------------------- +Originally by Kahrl (LGPL 2.1) and +celeron55, Perttu Ahola (LGPL 2.1) +Various Minetest developers and contributors (LGPL 2.1) -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 +Authors of media (models) +------------------------- +Jean-Patrick G. (kilbith) (CC BY-SA 3.0): + stairs_stair.obj diff --git a/mods/stairs/depends.txt b/mods/stairs/depends.txt old mode 100644 new mode 100755 index 4ad96d51..d77ba253 --- a/mods/stairs/depends.txt +++ b/mods/stairs/depends.txt @@ -1 +1,2 @@ default +farming diff --git a/mods/stairs/init.lua b/mods/stairs/init.lua old mode 100644 new mode 100755 index afd89bda..3dd34954 --- a/mods/stairs/init.lua +++ b/mods/stairs/init.lua @@ -1,20 +1,46 @@ -- Minetest 0.4 mod: stairs -- See README.txt for licensing and other information. + +-- Global namespace for functions + stairs = {} + +-- Register aliases for new pine node names + +minetest.register_alias("stairs:stair_pinewood", "stairs:stair_pine_wood") +minetest.register_alias("stairs:slab_pinewood", "stairs:slab_pine_wood") + + +-- Get setting for replace ABM + +local replace = minetest.setting_getbool("enable_stairs_replace_abm") + + +-- Register stairs. -- Node will be called stairs:stair_ + function stairs.register_stair(subname, recipeitem, groups, images, description, sounds) + groups.stair = 1 minetest.register_node(":stairs:stair_" .. subname, { description = description, - drawtype = "nodebox", + drawtype = "mesh", + mesh = "stairs_stair.obj", tiles = images, paramtype = "light", paramtype2 = "facedir", - is_ground_content = true, + is_ground_content = false, groups = groups, sounds = sounds, - node_box = { + selection_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}, + }, + }, + collision_box = { type = "fixed", fixed = { {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, @@ -40,7 +66,7 @@ function stairs.register_stair(subname, recipeitem, groups, images, description, param2 = minetest.dir_to_facedir(dir) end - if p0.y-1 == p1.y then + if p0.y - 1 == p1.y then param2 = param2 + 20 if param2 == 21 then param2 = 23 @@ -54,40 +80,67 @@ function stairs.register_stair(subname, recipeitem, groups, images, description, }) -- for replace ABM - minetest.register_node(":stairs:stair_" .. subname.."upside_down", { - replace_name = "stairs:stair_" .. subname, - groups = {slabs_replace=1}, - }) + if replace then + minetest.register_node(":stairs:stair_" .. subname .. "upside_down", { + replace_name = "stairs:stair_" .. subname, + groups = {slabs_replace = 1}, + }) + end - minetest.register_craft({ - output = 'stairs:stair_' .. subname .. ' 6', - recipe = { - {recipeitem, "", ""}, - {recipeitem, recipeitem, ""}, - {recipeitem, recipeitem, recipeitem}, - }, - }) + if recipeitem then + minetest.register_craft({ + output = 'stairs:stair_' .. subname .. ' 8', + 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}, - }, - }) + -- Flipped recipe for the silly minecrafters + minetest.register_craft({ + output = 'stairs:stair_' .. subname .. ' 8', + recipe = { + {"", "", recipeitem}, + {"", recipeitem, recipeitem}, + {recipeitem, recipeitem, recipeitem}, + }, + }) + + -- Fuel + local baseburntime = minetest.get_craft_result({ + method = "fuel", + width = 1, + items = {recipeitem} + }).time + if baseburntime > 0 then + minetest.register_craft({ + type = "fuel", + recipe = 'stairs:stair_' .. subname, + burntime = math.floor(baseburntime * 0.75), + }) + end + end end + +-- Slab facedir to placement 6d matching table +local slab_trans_dir = {[0] = 8, 0, 2, 1, 3, 4} +-- Slab facedir when placing initial slab against other surface +local slab_trans_dir_place = {[0] = 0, 20, 12, 16, 4, 8} + +-- Register slabs. -- Node will be called stairs:slab_ + function stairs.register_slab(subname, recipeitem, groups, images, description, sounds) + groups.slab = 1 minetest.register_node(":stairs:slab_" .. subname, { description = description, drawtype = "nodebox", tiles = images, paramtype = "light", paramtype2 = "facedir", - is_ground_content = true, + is_ground_content = false, groups = groups, sounds = sounds, node_box = { @@ -95,196 +148,401 @@ function stairs.register_slab(subname, recipeitem, groups, images, description, 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 + local under = minetest.get_node(pointed_thing.under) + local wield_item = itemstack:get_name() - -- 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 + if under and wield_item == under.name then + -- place slab using under node orientation + local dir = minetest.dir_to_facedir(vector.subtract( + pointed_thing.above, pointed_thing.under), true) - local n0_is_upside_down = (n0.name == "stairs:slab_" .. subname and - n0.param2 >= 20) + local p2 = under.param2 - 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) + -- combine two slabs if possible + if slab_trans_dir[math.floor(p2 / 4)] == dir then + if not recipeitem then + return itemstack + end + local player_name = placer:get_player_name() + if minetest.is_protected(pointed_thing.under, player_name) and not + minetest.check_player_privs(placer, "protection_bypass") then + minetest.record_protection_violation(pointed_thing.under, + player_name) + return + end + minetest.set_node(pointed_thing.under, {name = recipeitem, param2 = p2}) + if not minetest.setting_getbool("creative_mode") then + itemstack:take_item() end return itemstack end - -- Place upside down slab - param2 = 20 - end + -- Placing a slab on an upside down slab should make it right-side up. + if p2 >= 20 and dir == 8 then + p2 = p2 - 20 + -- same for the opposite case: slab below normal slab + elseif p2 <= 3 and dir == 4 then + p2 = p2 + 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 + -- else attempt to place node with proper param2 + minetest.item_place_node(ItemStack(wield_item), placer, pointed_thing, p2) + if not minetest.setting_getbool("creative_mode") then + itemstack:take_item() + end + return itemstack + else + -- place slab using look direction of player + local dir = minetest.dir_to_wallmounted(vector.subtract( + pointed_thing.above, pointed_thing.under), true) - return minetest.item_place(itemstack, placer, pointed_thing, param2) + local rot = slab_trans_dir_place[dir] + if rot == 0 or rot == 20 then + rot = rot + minetest.dir_to_facedir(placer:get_look_dir()) + end + + return minetest.item_place(itemstack, placer, pointed_thing, rot) + end end, }) -- for replace ABM - minetest.register_node(":stairs:slab_" .. subname.."upside_down", { - replace_name = "stairs:slab_"..subname, - groups = {slabs_replace=1}, - }) + if replace then + minetest.register_node(":stairs:slab_" .. subname .. "upside_down", { + replace_name = "stairs:slab_".. subname, + groups = {slabs_replace = 1}, + }) + end - minetest.register_craft({ - output = 'stairs:slab_' .. subname .. ' 6', - recipe = { - {recipeitem, recipeitem, recipeitem}, - }, + if recipeitem then + minetest.register_craft({ + output = 'stairs:slab_' .. subname .. ' 6', + recipe = { + {recipeitem, recipeitem, recipeitem}, + }, + }) + + -- Fuel + local baseburntime = minetest.get_craft_result({ + method = "fuel", + width = 1, + items = {recipeitem} + }).time + if baseburntime > 0 then + minetest.register_craft({ + type = "fuel", + recipe = 'stairs:slab_' .. subname, + burntime = math.floor(baseburntime * 0.5), + }) + end + end +end + + +-- Optionally replace old "upside_down" nodes with new param2 versions. +-- Disabled by default. + +if replace then + minetest.register_abm({ + label = "Slab replace", + nodenames = {"group:slabs_replace"}, + interval = 16, + 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, }) 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, -}) +-- Stair/slab registration function. -- Nodes will be called stairs:{stair,slab}_ -function stairs.register_stair_and_slab(subname, recipeitem, groups, images, desc_stair, desc_slab, sounds) + +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()) +-- Register default stairs and slabs -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( + "wood", + "default:wood", + {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + {"default_wood.png"}, + "Wooden Stair", + "Wooden Slab", + default.node_sound_wood_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( + "junglewood", + "default:junglewood", + {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + {"default_junglewood.png"}, + "Jungle Wood Stair", + "Jungle Wood Slab", + default.node_sound_wood_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( + "pine_wood", + "default:pine_wood", + {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3}, + {"default_pine_wood.png"}, + "Pine Wood Stair", + "Pine Wood Slab", + default.node_sound_wood_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( + "acacia_wood", + "default:acacia_wood", + {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + {"default_acacia_wood.png"}, + "Acacia Wood Stair", + "Acacia Wood Slab", + default.node_sound_wood_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( + "aspen_wood", + "default:aspen_wood", + {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3}, + {"default_aspen_wood.png"}, + "Aspen Wood Stair", + "Aspen Wood Slab", + default.node_sound_wood_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( + "stone", + "default:stone", + {cracky = 3}, + {"default_stone.png"}, + "Stone Stair", + "Stone 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( + "cobble", + "default:cobble", + {cracky = 3}, + {"default_cobble.png"}, + "Cobblestone Stair", + "Cobblestone Slab", + default.node_sound_stone_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()) +stairs.register_stair_and_slab( + "mossycobble", + nil, + {cracky = 3}, + {"default_mossycobble.png"}, + "Mossy Cobblestone Stair", + "Mossy Cobblestone Slab", + default.node_sound_stone_defaults() +) + +stairs.register_stair_and_slab( + "stonebrick", + "default:stonebrick", + {cracky = 2}, + {"default_stone_brick.png"}, + "Stone Brick Stair", + "Stone Brick Slab", + default.node_sound_stone_defaults() +) + +stairs.register_stair_and_slab( + "stone_block", + "default:stone_block", + {cracky = 2}, + {"default_stone_block.png"}, + "Stone Block Stair", + "Stone Block Slab", + default.node_sound_stone_defaults() +) + +stairs.register_stair_and_slab( + "desert_stone", + "default:desert_stone", + {cracky = 3}, + {"default_desert_stone.png"}, + "Desert Stone Stair", + "Desert Stone 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 = 2}, + {"default_desert_stone_brick.png"}, + "Desert Stone Brick Stair", + "Desert Stone Brick Slab", + default.node_sound_stone_defaults() +) + +stairs.register_stair_and_slab( + "desert_stone_block", + "default:desert_stone_block", + {cracky = 2}, + {"default_desert_stone_block.png"}, + "Desert Stone Block Stair", + "Desert Stone Block Slab", + default.node_sound_stone_defaults() +) + +stairs.register_stair_and_slab( + "sandstone", + "default:sandstone", + {crumbly = 1, cracky = 3}, + {"default_sandstone.png"}, + "Sandstone Stair", + "Sandstone Slab", + default.node_sound_stone_defaults() +) + +stairs.register_stair_and_slab( + "sandstonebrick", + "default:sandstonebrick", + {cracky = 2}, + {"default_sandstone_brick.png"}, + "Sandstone Brick Stair", + "Sandstone Brick Slab", + default.node_sound_stone_defaults() +) + +stairs.register_stair_and_slab( + "sandstone_block", + "default:sandstone_block", + {cracky = 2}, + {"default_sandstone_block.png"}, + "Sandstone Block Stair", + "Sandstone Block Slab", + default.node_sound_stone_defaults() +) + +stairs.register_stair_and_slab( + "obsidian", + "default:obsidian", + {cracky = 1, level = 2}, + {"default_obsidian.png"}, + "Obsidian Stair", + "Obsidian Slab", + default.node_sound_stone_defaults() +) + +stairs.register_stair_and_slab( + "obsidianbrick", + "default:obsidianbrick", + {cracky = 1, level = 2}, + {"default_obsidian_brick.png"}, + "Obsidian Brick Stair", + "Obsidian Brick Slab", + default.node_sound_stone_defaults() +) + +stairs.register_stair_and_slab( + "obsidian_block", + "default:obsidian_block", + {cracky = 1, level = 2}, + {"default_obsidian_block.png"}, + "Obsidian Block Stair", + "Obsidian Block 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( + "straw", + "farming:straw", + {snappy = 3, flammable = 4}, + {"farming_straw.png"}, + "Straw Stair", + "Straw Slab", + default.node_sound_leaves_defaults() +) + +stairs.register_stair_and_slab( + "steelblock", + "default:steelblock", + {cracky = 1, level = 2}, + {"default_steel_block.png"}, + "Steel Block Stair", + "Steel Block Slab", + default.node_sound_metal_defaults() +) + +stairs.register_stair_and_slab( + "copperblock", + "default:copperblock", + {cracky = 1, level = 2}, + {"default_copper_block.png"}, + "Copper Block Stair", + "Copper Block Slab", + default.node_sound_metal_defaults() +) + +stairs.register_stair_and_slab( + "bronzeblock", + "default:bronzeblock", + {cracky = 1, level = 2}, + {"default_bronze_block.png"}, + "Bronze Block Stair", + "Bronze Block Slab", + default.node_sound_metal_defaults() +) + +stairs.register_stair_and_slab( + "goldblock", + "default:goldblock", + {cracky = 1}, + {"default_gold_block.png"}, + "Gold Block Stair", + "Gold Block Slab", + default.node_sound_metal_defaults() +) + +-- From BFD: + +stairs.register_stair_and_slab( + "cherry_wood", + "default:cherry_plank", + {snappy=2,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + {"default_wood_cherry_planks.png"}, + "Cherry Plank Stair", + "Cherry Plank Slab", + "Cherry Plank Corner Stair", + default.node_sound_wood_defaults() +) diff --git a/mods/stairs/models/stairs_stair.obj b/mods/stairs/models/stairs_stair.obj new file mode 100755 index 00000000..45882c6e --- /dev/null +++ b/mods/stairs/models/stairs_stair.obj @@ -0,0 +1,113 @@ +# Blender v2.72 (sub 0) OBJ File: '' +# www.blender.org +mtllib stairs.mtl +o stairs_top +v -0.500000 0.000000 -0.500000 +v -0.500000 0.000000 0.000000 +v 0.500000 0.000000 0.000000 +v 0.500000 0.000000 -0.500000 +v -0.500000 0.500000 0.000000 +v 0.500000 0.500000 0.000000 +v -0.500000 0.500000 0.500000 +v 0.500000 0.500000 0.500000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 0.500000 +vt 0.000000 0.500000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vn 0.000000 1.000000 0.000000 +g stairs_top +usemtl None +s off +f 4/1/1 1/2/1 2/3/1 3/4/1 +f 7/5/1 8/6/1 6/4/1 5/3/1 +o stairs_bottom +v -0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 -0.500000 +v -0.500000 -0.500000 0.500000 +v 0.500000 -0.500000 0.500000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vn 0.000000 -1.000000 -0.000000 +g stairs_bottom +usemtl None +s off +f 11/7/2 9/8/2 10/9/2 12/10/2 +o stairs_right +v -0.500000 0.000000 -0.500000 +v -0.500000 -0.500000 -0.500000 +v -0.500000 0.000000 0.000000 +v -0.500000 -0.500000 0.500000 +v -0.500000 0.500000 0.000000 +v -0.500000 0.500000 0.500000 +vt 0.000000 0.500000 +vt 0.000000 0.000000 +vt 0.500000 0.500000 +vt 1.000000 1.000000 +vt 0.500000 1.000000 +vt 1.000000 0.000000 +vn -1.000000 0.000000 0.000000 +g stairs_right +usemtl None +s off +f 13/11/3 14/12/3 15/13/3 +f 15/13/3 18/14/3 17/15/3 +f 14/12/3 16/16/3 18/14/3 +o stairs_left +v 0.500000 0.000000 0.000000 +v 0.500000 -0.500000 -0.500000 +v 0.500000 0.000000 -0.500000 +v 0.500000 -0.500000 0.500000 +v 0.500000 0.500000 0.000000 +v 0.500000 0.500000 0.500000 +vt 0.500000 0.500000 +vt 1.000000 0.000000 +vt 1.000000 0.500000 +vt 0.500000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vn 1.000000 0.000000 0.000000 +g stairs_left +usemtl None +s off +f 19/17/4 20/18/4 21/19/4 +f 19/17/4 23/20/4 24/21/4 +f 20/18/4 24/21/4 22/22/4 +o stairs_back +v -0.500000 -0.500000 0.500000 +v 0.500000 -0.500000 0.500000 +v -0.500000 0.500000 0.500000 +v 0.500000 0.500000 0.500000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vn 0.000000 -0.000000 1.000000 +g stairs_back +usemtl None +s off +f 26/23/5 28/24/5 27/25/5 25/26/5 +o stairs_front +v -0.500000 0.000000 -0.500000 +v -0.500000 -0.500000 -0.500000 +v -0.500000 0.000000 0.000000 +v 0.500000 0.000000 0.000000 +v 0.500000 -0.500000 -0.500000 +v 0.500000 0.000000 -0.500000 +v -0.500000 0.500000 0.000000 +v 0.500000 0.500000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 0.500000 +vt 0.000000 0.500000 +vt 0.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vn 0.000000 0.000000 -1.000000 +g stairs_front +usemtl None +s off +f 30/27/6 29/28/6 34/29/6 33/30/6 +f 31/28/6 35/31/6 36/32/6 32/29/6 diff --git a/mods/tnt/README.txt b/mods/tnt/README.txt deleted file mode 100644 index 46d3fca1..00000000 --- a/mods/tnt/README.txt +++ /dev/null @@ -1,45 +0,0 @@ -=== TNT-MOD for MINETEST-C55 === -by PilzAdam - -Introduction: -This mod adds TNT to Minetest. TNT is a tool to help the player -in mining. - -How to install: -Unzip the archive an place it in minetest-base-directory/mods/minetest/ -if you have a windows client or a linux run-in-place client. If you have -a linux system-wide instalation place it in ~/.minetest/mods/minetest/. -If you want to install this mod only in one world create the folder -worldmods/ in your worlddirectory. -For further information or help see: -http://wiki.minetest.com/wiki/Installing_Mods - -How to use the mod: -Craft gunpowder by placing coal and gravel in the crafting area. The -gunpowder can be used to craft TNT or as fuze for TNT. To craft TNT -surround gunpowder with 4 wood in a + shape. -There are different ways to blow up TNT: -1. Hit it with a torch. -2. Hit a gunpowder fuze that leads to a TNT block with a torch. -3. Activate it with mesecons (fastest way) -Be aware of the damage radius of 7 blocks! - -License: -WTFPL (see below) - -See also: -http://minetest.net/ - - 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. diff --git a/mods/tnt/init.lua b/mods/tnt/init.lua deleted file mode 100644 index 4da0713d..00000000 --- a/mods/tnt/init.lua +++ /dev/null @@ -1,350 +0,0 @@ --- loss probabilities array (one in X will be lost) -local loss_prob = {} - -loss_prob["default:cobble"] = 3 -loss_prob["default:dirt"] = 4 - -local radius_max = tonumber(minetest.setting_get("tnt_radius_max") or 25) - -local eject_drops = function(pos, stack) - local obj = minetest.add_item(pos, stack) - - if obj == nil then - return - end - obj:get_luaentity().collect = true - obj:setacceleration({x=0, y=-10, z=0}) - obj:setvelocity({x=math.random(0,6)-3, y=10, z=math.random(0,6)-3}) -end - -local add_drop = function(drops, pos, item) - if loss_prob[item] ~= nil then - if math.random(1,loss_prob[item]) == 1 then - return - end - end - - if drops[item] == nil then - drops[item] = ItemStack(item) - else - drops[item]:add_item(item) - end - - if drops[item]:get_free_space() == 0 then - stack = drops[item] - eject_drops(pos, stack) - drops[item] = nil - end -end - -local destroy = function(drops, pos, last, fast) - local nodename = minetest.get_node(pos).name - if nodename ~= "air" then - minetest.remove_node(pos, (fast and 1 or 0)) - if last then - nodeupdate(pos) - end - if minetest.registered_nodes[nodename].groups.flammable ~= nil then - minetest.set_node(pos, {name="fire:basic_flame"}, (fast and 2 or 0)) - return - end - local drop = minetest.get_node_drops(nodename, "") - for _,item in ipairs(drop) do - if type(item) == "string" then - add_drop(drops, pos, item) - else - for i=1,item:get_count() do - add_drop(drops, pos, item:get_name()) - end - end - end - end -end - -boom = function(pos, time) - minetest.after(time, function(pos) - if minetest.get_node(pos).name ~= "tnt:tnt_burning" then - return - end - minetest.sound_play("tnt_explode", {pos=pos, gain=1.5, max_hear_distance=2*64}) - minetest.set_node(pos, {name="tnt:boom"}) - minetest.after(0.5, function(pos) - minetest.remove_node(pos) - end, {x=pos.x, y=pos.y, z=pos.z}) - - - local radius = 2 - local drops = {} - local list = {} - local dr = 0 - local tnts = 1 - local destroyed = 0 - while dr 7) - destroyed = destroyed + 1 - else - if math.random(1,5) <= 4 then - destroy(drops, np, dr == radius, radius > 7) - destroyed = destroyed + 1 - end - end - end - end - end - - local objects = minetest.get_objects_inside_radius(pos, radius*2) - for _,obj in ipairs(objects) do - --if obj:is_player() or (obj:get_luaentity() and obj:get_luaentity().name ~= "__builtin:item") then - local p = obj:getpos() - local v = obj:getvelocity() - local vec = {x=p.x-pos.x, y=p.y-pos.y, z=p.z-pos.z} - local dist = (vec.x^2+vec.y^2+vec.z^2)^0.5 - local damage = ((radius*20)/dist) - --print("DMG dist="..dist.." damage="..damage) - if obj:is_player() or (obj:get_luaentity() and obj:get_luaentity().name ~= "__builtin:item") then - obj:punch(obj, 1.0, { - full_punch_interval=1.0, - damage_groups={fleshy=damage}, - }, vec) - end - if v ~= nil then - --obj:setvelocity({x=(p.x - pos.x) + (radius / 4) + v.x, y=(p.y - pos.y) + (radius / 2) + v.y, z=(p.z - pos.z) + (radius / 4) + v.z}) - obj:setvelocity({x=(p.x - pos.x) + (radius / 2) + v.x, y=(p.y - pos.y) + radius + v.y, z=(p.z - pos.z) + (radius / 2) + v.z}) - end - --end - end - - - print("TNT exploded=" .. tnts .. " radius=" .. radius .. " destroyed="..destroyed) - - for _,stack in pairs(drops) do - eject_drops(pos, stack) - end - local radiusp = radius+1 - minetest.add_particlespawner( - 100, --amount - 0.1, --time - {x=pos.x-radiusp, y=pos.y-radiusp, z=pos.z-radiusp}, --minpos - {x=pos.x+radiusp, y=pos.y+radiusp, z=pos.z+radiusp}, --maxpos - {x=-0, y=-0, z=-0}, --minvel - {x=0, y=0, z=0}, --maxvel - {x=-0.5,y=5,z=-0.5}, --minacc - {x=0.5,y=5,z=0.5}, --maxacc - 0.1, --minexptime - 1, --maxexptime - 8, --minsize - 15, --maxsize - false, --collisiondetection - "tnt_smoke.png" --texture - ) - end, pos) -end - -minetest.register_node("tnt:tnt", { - description = "TNT", - tiles = {"tnt_top.png", "tnt_bottom.png", "tnt_side.png"}, - groups = {dig_immediate=2, mesecon=2}, - sounds = default.node_sound_wood_defaults(), - - on_punch = function(pos, node, puncher) - if puncher:get_wielded_item():get_name() == "default:torch" then - minetest.sound_play("tnt_ignite", {pos=pos}) - minetest.set_node(pos, {name="tnt:tnt_burning"}) - boom(pos, 4) - end - end, - - mesecons = { - effector = { - action_on = function(pos, node) - minetest.set_node(pos, {name="tnt:tnt_burning"}) - boom(pos, 0) - end - }, - }, -}) - -minetest.register_node("tnt:tnt_burning", { - tiles = {{name="tnt_top_burning_animated.png", animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=1}}, "tnt_bottom.png", "tnt_side.png"}, - light_source = 5, - drop = "", - sounds = default.node_sound_wood_defaults(), -}) - -minetest.register_node("tnt:boom", { - drawtype = "plantlike", - tiles = {"tnt_boom.png"}, - light_source = LIGHT_MAX, - walkable = false, - drop = "", - groups = {dig_immediate=3}, -}) - -burn = function(pos) - if minetest.get_node(pos).name == "tnt:tnt" then - minetest.sound_play("tnt_ignite", {pos=pos}) - minetest.set_node(pos, {name="tnt:tnt_burning"}) - boom(pos, 1) - return - end - if minetest.get_node(pos).name ~= "tnt:gunpowder" then - return - end - minetest.sound_play("tnt_gunpowder_burning", {pos=pos, gain=2}) - minetest.set_node(pos, {name="tnt:gunpowder_burning"}) - - minetest.after(1, function(pos) - if minetest.get_node(pos).name ~= "tnt:gunpowder_burning" then - return - end - minetest.after(0.5, function(pos) - minetest.remove_node(pos) - end, {x=pos.x, y=pos.y, z=pos.z}) - for dx=-1,1 do - for dz=-1,1 do - for dy=-1,1 do - pos.x = pos.x+dx - pos.y = pos.y+dy - pos.z = pos.z+dz - - if not (math.abs(dx) == 1 and math.abs(dz) == 1) then - if dy == 0 then - burn({x=pos.x, y=pos.y, z=pos.z}) - else - if math.abs(dx) == 1 or math.abs(dz) == 1 then - burn({x=pos.x, y=pos.y, z=pos.z}) - end - end - end - - pos.x = pos.x-dx - pos.y = pos.y-dy - pos.z = pos.z-dz - end - end - end - end, pos) -end - -minetest.register_node("tnt:gunpowder", { - description = "Gun Powder", - drawtype = "raillike", - paramtype = "light", - sunlight_propagates = true, - walkable = false, - tiles = {"tnt_gunpowder.png",}, - inventory_image = "tnt_gunpowder_inventory.png", - wield_image = "tnt_gunpowder_inventory.png", - selection_box = { - type = "fixed", - fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2}, - }, - groups = {dig_immediate=2,attached_node=1}, - sounds = default.node_sound_leaves_defaults(), - - on_punch = function(pos, node, puncher) - if puncher:get_wielded_item():get_name() == "default:torch" then - burn(pos) - end - end, -}) - -minetest.register_node("tnt:gunpowder_burning", { - drawtype = "raillike", - paramtype = "light", - sunlight_propagates = true, - walkable = false, - light_source = 5, - tiles = {{name="tnt_gunpowder_burning_animated.png", animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=1}}}, - selection_box = { - type = "fixed", - fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2}, - }, - drop = "", - groups = {dig_immediate=2,attached_node=1}, - sounds = default.node_sound_leaves_defaults(), -}) - -minetest.register_abm({ - nodenames = {"tnt:tnt", "tnt:gunpowder"}, - neighbors = {"fire:basic_flame", "default:lava_source", "default:lava_flowing"}, - interval = 2, - chance = 10, - action = function(pos, node) - if node.name == "tnt:tnt" then - minetest.set_node(pos, {name="tnt:tnt_burning"}) - boom({x=pos.x, y=pos.y, z=pos.z}, 0) - else - burn(pos) - end - end -}) - -minetest.register_craft({ - output = "tnt:gunpowder", - type = "shapeless", - recipe = {"default:coal_lump", "default:gravel"} -}) - -minetest.register_craft({ - output = "tnt:tnt", - recipe = { - {"", "group:wood", ""}, - {"group:wood", "tnt:gunpowder", "group:wood"}, - {"", "group:wood", ""} - } -}) - -if minetest.setting_get("log_mods") then - minetest.log("action", "tnt loaded") -end diff --git a/mods/tnt/sounds/tnt_explode.ogg b/mods/tnt/sounds/tnt_explode.ogg deleted file mode 100644 index a414ea04..00000000 Binary files a/mods/tnt/sounds/tnt_explode.ogg and /dev/null differ diff --git a/mods/tnt/sounds/tnt_gunpowder_burning.ogg b/mods/tnt/sounds/tnt_gunpowder_burning.ogg deleted file mode 100644 index 5c5bfaf2..00000000 Binary files a/mods/tnt/sounds/tnt_gunpowder_burning.ogg and /dev/null differ diff --git a/mods/tnt/sounds/tnt_ignite.ogg b/mods/tnt/sounds/tnt_ignite.ogg deleted file mode 100644 index 199f2067..00000000 Binary files a/mods/tnt/sounds/tnt_ignite.ogg and /dev/null differ diff --git a/mods/tnt/textures/tnt_boom.png b/mods/tnt/textures/tnt_boom.png deleted file mode 100644 index c848bfcd..00000000 Binary files a/mods/tnt/textures/tnt_boom.png and /dev/null differ diff --git a/mods/tnt/textures/tnt_bottom.png b/mods/tnt/textures/tnt_bottom.png deleted file mode 100644 index 95f66cb9..00000000 Binary files a/mods/tnt/textures/tnt_bottom.png and /dev/null differ diff --git a/mods/tnt/textures/tnt_gunpowder.png b/mods/tnt/textures/tnt_gunpowder.png deleted file mode 100644 index 52153e92..00000000 Binary files a/mods/tnt/textures/tnt_gunpowder.png and /dev/null differ diff --git a/mods/tnt/textures/tnt_gunpowder_burning.png b/mods/tnt/textures/tnt_gunpowder_burning.png deleted file mode 100644 index fa7d107b..00000000 Binary files a/mods/tnt/textures/tnt_gunpowder_burning.png and /dev/null differ diff --git a/mods/tnt/textures/tnt_gunpowder_burning_animated.png b/mods/tnt/textures/tnt_gunpowder_burning_animated.png deleted file mode 100644 index 5ee24840..00000000 Binary files a/mods/tnt/textures/tnt_gunpowder_burning_animated.png and /dev/null differ diff --git a/mods/tnt/textures/tnt_gunpowder_inventory.png b/mods/tnt/textures/tnt_gunpowder_inventory.png deleted file mode 100644 index 105a2d25..00000000 Binary files a/mods/tnt/textures/tnt_gunpowder_inventory.png and /dev/null differ diff --git a/mods/tnt/textures/tnt_side.png b/mods/tnt/textures/tnt_side.png deleted file mode 100644 index d3034732..00000000 Binary files a/mods/tnt/textures/tnt_side.png and /dev/null differ diff --git a/mods/tnt/textures/tnt_smoke.png b/mods/tnt/textures/tnt_smoke.png deleted file mode 100644 index c3790476..00000000 Binary files a/mods/tnt/textures/tnt_smoke.png and /dev/null differ diff --git a/mods/tnt/textures/tnt_top.png b/mods/tnt/textures/tnt_top.png deleted file mode 100644 index 31b807cb..00000000 Binary files a/mods/tnt/textures/tnt_top.png and /dev/null differ diff --git a/mods/tnt/textures/tnt_top_burning.png b/mods/tnt/textures/tnt_top_burning.png deleted file mode 100644 index fc0d4905..00000000 Binary files a/mods/tnt/textures/tnt_top_burning.png and /dev/null differ diff --git a/mods/tnt/textures/tnt_top_burning_animated.png b/mods/tnt/textures/tnt_top_burning_animated.png deleted file mode 100644 index 18a270fb..00000000 Binary files a/mods/tnt/textures/tnt_top_burning_animated.png and /dev/null differ diff --git a/mods/vessels/README.txt b/mods/vessels/README.txt old mode 100644 new mode 100755 index 150b501d..5bb798c8 --- a/mods/vessels/README.txt +++ b/mods/vessels/README.txt @@ -1,45 +1,22 @@ -Minetest 0.4 mod: vessels +Minetest Game mod: vessels ========================== +See license.txt for license information. -Crafts -------- -Glass bottle (yields 10) +Authors of source code +---------------------- +Originally by Vanessa Ezekowitz (LGPL 2.1) +Modified by Perttu Ahola (LGPL 2.1) +Various Minetest developers and contributors (LGPL 2.1) - G - G - G - G - - G - +Authors of media (textures) +--------------------------- +All not listed below, Vanessa Ezekowitz (CC BY-SA 3.0) -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 +The following textures were modified by Thomas-S (CC BY-SA 3.0): + vessels_drinking_glass.png + vessels_drinking_glass_inv.png + vessels_glass_bottle.png + vessels_steel_bottle.png +The following texture was created by Wuzzy (CC BY-SA 3.0): + vessels_shelf_slot.png (based on vessels_glass_bottle.png) diff --git a/mods/vessels/depends.txt b/mods/vessels/depends.txt old mode 100644 new mode 100755 diff --git a/mods/vessels/init.lua b/mods/vessels/init.lua old mode 100644 new mode 100755 index 6ca8771b..06dba1f0 --- a/mods/vessels/init.lua +++ b/mods/vessels/init.lua @@ -1,28 +1,108 @@ -- Minetest 0.4 mod: vessels -- See README.txt for licensing and other information. +local vessels_shelf_formspec = + "size[8,7;]" .. + default.gui_bg .. + default.gui_bg_img .. + default.gui_slots .. + "list[context;vessels;0,0.3;8,2;]" .. + "list[current_player;main;0,2.85;8,1;]" .. + "list[current_player;main;0,4.08;8,3;8]" .. + "listring[context;vessels]" .. + "listring[current_player;main]" .. + default.get_hotbar_bg(0, 2.85) + +-- Inventory slots overlay +local vx, vy = 0, 0.3 +for i = 1, 16 do + if i == 9 then + vx = 0 + vy = vy + 1 + end + vessels_shelf_formspec = vessels_shelf_formspec .. + "image[" .. vx .. "," .. vy .. ";1,1;vessels_shelf_slot.png]" + vx = vx + 1 +end + +minetest.register_node("vessels:shelf", { + description = "Vessels Shelf", + tiles = {"default_wood.png", "default_wood.png", "default_wood.png", + "default_wood.png", "vessels_shelf.png", "vessels_shelf.png"}, + paramtype2 = "facedir", + 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.get_meta(pos) + meta:set_string("formspec", vessels_shelf_formspec) + local inv = meta:get_inventory() + inv:set_size("vessels", 8 * 2) + end, + can_dig = function(pos,player) + local inv = minetest.get_meta(pos):get_inventory() + return inv:is_empty("vessels") + end, + allow_metadata_inventory_put = function(pos, listname, index, stack, player) + if minetest.get_item_group(stack:get_name(), "vessel") ~= 0 then + return stack:get_count() + end + return 0 + 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 vessels shelf 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 vessels shelf 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 vessels shelf at ".. minetest.pos_to_string(pos)) + end, + on_blast = function(pos) + local drops = {} + default.get_inventory_drops(pos, "vessels", drops) + drops[#drops + 1] = "vessels:shelf" + minetest.remove_node(pos) + return drops + end, +}) + +minetest.register_craft({ + output = "vessels:shelf", + recipe = { + {"group:wood", "group:wood", "group:wood"}, + {"group:vessel", "group:vessel", "group:vessel"}, + {"group:wood", "group:wood", "group:wood"}, + } +}) + minetest.register_node("vessels:glass_bottle", { description = "Glass Bottle (empty)", drawtype = "plantlike", tiles = {"vessels_glass_bottle.png"}, - inventory_image = "vessels_glass_bottle_inv.png", + inventory_image = "vessels_glass_bottle.png", wield_image = "vessels_glass_bottle.png", paramtype = "light", + is_ground_content = false, walkable = false, selection_box = { type = "fixed", - fixed = {-0.25, -0.5, -0.25, 0.25, 0.4, 0.25} + fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25} }, - groups = {vessel=1,dig_immediate=3,attached_node=1}, + 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", "" } + {"default:glass", "", "default:glass"}, + {"default:glass", "", "default:glass"}, + {"", "default:glass", ""} } }) @@ -33,21 +113,22 @@ minetest.register_node("vessels:drinking_glass", { inventory_image = "vessels_drinking_glass_inv.png", wield_image = "vessels_drinking_glass.png", paramtype = "light", + is_ground_content = false, walkable = false, selection_box = { type = "fixed", - fixed = {-0.25, -0.5, -0.25, 0.25, 0.4, 0.25} + fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25} }, - groups = {vessel=1,dig_immediate=3,attached_node=1}, + 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" } + {"default:glass", "", "default:glass"}, + {"default:glass", "", "default:glass"}, + {"default:glass", "default:glass", "default:glass"} } }) @@ -55,29 +136,30 @@ 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", + inventory_image = "vessels_steel_bottle.png", wield_image = "vessels_steel_bottle.png", paramtype = "light", + is_ground_content = false, walkable = false, selection_box = { type = "fixed", - fixed = {-0.25, -0.5, -0.25, 0.25, 0.4, 0.25} + fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25} }, - groups = {vessel=1,dig_immediate=3,attached_node=1}, + 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", "" } + {"default:steel_ingot", "", "default:steel_ingot"}, + {"default:steel_ingot", "", "default:steel_ingot"}, + {"", "default:steel_ingot", ""} } }) --- Make sure we can recycle them +-- Glass and steel recycling minetest.register_craftitem("vessels:glass_fragments", { description = "Pile of Glass Fragments", diff --git a/mods/vessels/license.txt b/mods/vessels/license.txt new file mode 100644 index 00000000..de16a3b0 --- /dev/null +++ b/mods/vessels/license.txt @@ -0,0 +1,52 @@ +License of source code +---------------------- + +GNU Lesser General Public License, version 2.1 +Copyright (C) 2012-2016 Vanessa Ezekowitz +Copyright (C) 2012-2016 celeron55, Perttu Ahola +Copyright (C) 2012-2016 Various Minetest developers and contributors + +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: +https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html + + +Licenses of media (textures) +---------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2012-2016 Vanessa Ezekowitz +Copyright (C) 2016 Thomas-S + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike — If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/mods/vessels/textures/alternates/vessels_drinking_glass.png b/mods/vessels/textures/alternates/vessels_drinking_glass.png deleted file mode 100644 index 1ddbfd3c..00000000 Binary files a/mods/vessels/textures/alternates/vessels_drinking_glass.png and /dev/null differ diff --git a/mods/vessels/textures/alternates/vessels_glass_bottle.png b/mods/vessels/textures/alternates/vessels_glass_bottle.png deleted file mode 100644 index 336d8b7d..00000000 Binary files a/mods/vessels/textures/alternates/vessels_glass_bottle.png and /dev/null differ diff --git a/mods/vessels/textures/alternates/vessels_steel_bottle.png b/mods/vessels/textures/alternates/vessels_steel_bottle.png deleted file mode 100644 index f0246c8a..00000000 Binary files a/mods/vessels/textures/alternates/vessels_steel_bottle.png and /dev/null differ diff --git a/mods/vessels/textures/vessels_drinking_glass.png b/mods/vessels/textures/vessels_drinking_glass.png index 68c12d32..757a5153 100644 Binary files a/mods/vessels/textures/vessels_drinking_glass.png and b/mods/vessels/textures/vessels_drinking_glass.png differ diff --git a/mods/vessels/textures/vessels_drinking_glass_inv.png b/mods/vessels/textures/vessels_drinking_glass_inv.png index 2aeafc7c..b3e9d8dc 100644 Binary files a/mods/vessels/textures/vessels_drinking_glass_inv.png and b/mods/vessels/textures/vessels_drinking_glass_inv.png differ diff --git a/mods/vessels/textures/vessels_glass_bottle.png b/mods/vessels/textures/vessels_glass_bottle.png index 336d8b7d..83777c5c 100644 Binary files a/mods/vessels/textures/vessels_glass_bottle.png and b/mods/vessels/textures/vessels_glass_bottle.png differ diff --git a/mods/vessels/textures/vessels_glass_bottle_inv.png b/mods/vessels/textures/vessels_glass_bottle_inv.png index c10036fb..c751e57a 100644 Binary files a/mods/vessels/textures/vessels_glass_bottle_inv.png and b/mods/vessels/textures/vessels_glass_bottle_inv.png differ diff --git a/mods/vessels/textures/vessels_glass_fragments.png b/mods/vessels/textures/vessels_glass_fragments.png index 0bdec23a..53dedda6 100644 Binary files a/mods/vessels/textures/vessels_glass_fragments.png and b/mods/vessels/textures/vessels_glass_fragments.png differ diff --git a/mods/vessels/textures/vessels_shelf.png b/mods/vessels/textures/vessels_shelf.png new file mode 100644 index 00000000..b6ef3d96 Binary files /dev/null and b/mods/vessels/textures/vessels_shelf.png differ diff --git a/mods/vessels/textures/vessels_shelf_slot.png b/mods/vessels/textures/vessels_shelf_slot.png new file mode 100644 index 00000000..ff29082a Binary files /dev/null and b/mods/vessels/textures/vessels_shelf_slot.png differ diff --git a/mods/vessels/textures/vessels_steel_bottle.png b/mods/vessels/textures/vessels_steel_bottle.png index 3bad963d..5da1c69a 100644 Binary files a/mods/vessels/textures/vessels_steel_bottle.png and b/mods/vessels/textures/vessels_steel_bottle.png differ diff --git a/mods/vessels/textures/vessels_steel_bottle_inv.png b/mods/vessels/textures/vessels_steel_bottle_inv.png index 8a317b56..70c518ed 100644 Binary files a/mods/vessels/textures/vessels_steel_bottle_inv.png and b/mods/vessels/textures/vessels_steel_bottle_inv.png differ diff --git a/mods/walls/README.txt b/mods/walls/README.txt new file mode 100644 index 00000000..0389174d --- /dev/null +++ b/mods/walls/README.txt @@ -0,0 +1,7 @@ +Minetest Game mod: walls +======================== +See license.txt for license information. + +Authors of source code +---------------------- +Auke Kok (LGPL 2.1) diff --git a/mods/tnt/depends.txt b/mods/walls/depends.txt similarity index 61% rename from mods/tnt/depends.txt rename to mods/walls/depends.txt index 70715c7b..4ad96d51 100644 --- a/mods/tnt/depends.txt +++ b/mods/walls/depends.txt @@ -1,2 +1 @@ default -fire diff --git a/mods/walls/init.lua b/mods/walls/init.lua new file mode 100644 index 00000000..bee8e465 --- /dev/null +++ b/mods/walls/init.lua @@ -0,0 +1,46 @@ +walls = {} + +walls.register = function(wall_name, wall_desc, wall_texture, wall_mat, wall_sounds) + -- inventory node, and pole-type wall start item + minetest.register_node(wall_name, { + description = wall_desc, + drawtype = "nodebox", + node_box = { + type = "connected", + fixed = {{-1/4, -1/2, -1/4, 1/4, 1/2, 1/4}}, + -- connect_bottom = + connect_front = {{-3/16, -1/2, -1/2, 3/16, 3/8, -1/4}}, + connect_left = {{-1/2, -1/2, -3/16, -1/4, 3/8, 3/16}}, + connect_back = {{-3/16, -1/2, 1/4, 3/16, 3/8, 1/2}}, + connect_right = {{ 1/4, -1/2, -3/16, 1/2, 3/8, 3/16}}, + }, + connects_to = { "group:wall", "group:stone" }, + paramtype = "light", + is_ground_content = false, + tiles = { wall_texture, }, + walkable = true, + groups = { cracky = 3, wall = 1, stone = 2 }, + sounds = wall_sounds, + }) + + -- crafting recipe + minetest.register_craft({ + output = wall_name .. " 6", + recipe = { + { '', '', '' }, + { wall_mat, wall_mat, wall_mat}, + { wall_mat, wall_mat, wall_mat}, + } + }) + +end + +walls.register("walls:cobble", "Cobblestone Wall", "default_cobble.png", + "default:cobble", default.node_sound_stone_defaults()) + +walls.register("walls:mossycobble", "Mossy Cobblestone Wall", "default_mossycobble.png", + "default:mossycobble", default.node_sound_stone_defaults()) + +walls.register("walls:desertcobble", "Desert Cobblestone Wall", "default_desert_cobble.png", + "default:desert_cobble", default.node_sound_stone_defaults()) + diff --git a/mods/walls/license.txt b/mods/walls/license.txt new file mode 100644 index 00000000..ccfaf1cd --- /dev/null +++ b/mods/walls/license.txt @@ -0,0 +1,14 @@ +License of source code +---------------------- + +GNU Lesser General Public License, version 2.1 +Copyright (C) 2015 Auke Kok + +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: +https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html diff --git a/mods/wool/README.txt b/mods/wool/README.txt old mode 100644 new mode 100755 index 9db13327..a66677dd --- a/mods/wool/README.txt +++ b/mods/wool/README.txt @@ -1,28 +1,16 @@ -Minetest 0.4 mod: wool -====================== +Minetest Game mod: wool +======================= +See license.txt for license information. -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 +Authors of source code +---------------------- +Originally by Perttu Ahola (celeron55) (MIT) +Various Minetest developers and contributors (MIT) +Authors of media (textures) +--------------------------- +Cisoun (CC BY-SA 3.0): + 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/mods/wool/depends.txt b/mods/wool/depends.txt old mode 100644 new mode 100755 diff --git a/mods/wool/init.lua b/mods/wool/init.lua old mode 100644 new mode 100755 index 14cffa59..b2f7ea78 --- a/mods/wool/init.lua +++ b/mods/wool/init.lua @@ -1,15 +1,10 @@ --- 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}, + {"white", "White", "basecolor_white"}, {"grey", "Grey", "basecolor_grey"}, {"black", "Black", "basecolor_black"}, {"red", "Red", "basecolor_red"}, @@ -34,16 +29,24 @@ for _, row in ipairs(wool.dyes) do 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}, + is_ground_content = false, + 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'}, + output = "wool:" .. name, + recipe = {"group:dye," .. craft_color_group, "group:wool"}, }) end end + +-- legacy + +-- Backwards compatibility with jordach's 16-color wool mod +minetest.register_alias("wool:dark_blue", "wool:blue") +minetest.register_alias("wool:gold", "wool:yellow") diff --git a/mods/wool/license.txt b/mods/wool/license.txt new file mode 100644 index 00000000..93101636 --- /dev/null +++ b/mods/wool/license.txt @@ -0,0 +1,60 @@ +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2012-2016 Perttu Ahola (celeron55) +Copyright (C) 2012-2016 Various Minetest developers and contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT + + +Licenses of media (textures) +---------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2012-2016 Cisoun + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike — If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/mods/wool/textures/wool_black.png b/mods/wool/textures/wool_black.png old mode 100644 new mode 100755 index e24e52b7..700d439d Binary files a/mods/wool/textures/wool_black.png and b/mods/wool/textures/wool_black.png differ diff --git a/mods/wool/textures/wool_blue.png b/mods/wool/textures/wool_blue.png old mode 100644 new mode 100755 index 710a9a27..c71b36a0 Binary files a/mods/wool/textures/wool_blue.png and b/mods/wool/textures/wool_blue.png differ diff --git a/mods/wool/textures/wool_brown.png b/mods/wool/textures/wool_brown.png old mode 100644 new mode 100755 index dfc0c7fc..2620dfdb Binary files a/mods/wool/textures/wool_brown.png and b/mods/wool/textures/wool_brown.png differ diff --git a/mods/wool/textures/wool_cyan.png b/mods/wool/textures/wool_cyan.png old mode 100644 new mode 100755 index 46f8728e..395b6ac7 Binary files a/mods/wool/textures/wool_cyan.png and b/mods/wool/textures/wool_cyan.png differ diff --git a/mods/wool/textures/wool_dark_green.png b/mods/wool/textures/wool_dark_green.png old mode 100644 new mode 100755 index d2a02975..a686bfd8 Binary files a/mods/wool/textures/wool_dark_green.png and b/mods/wool/textures/wool_dark_green.png differ diff --git a/mods/wool/textures/wool_dark_grey.png b/mods/wool/textures/wool_dark_grey.png old mode 100644 new mode 100755 index 98f14883..93597236 Binary files a/mods/wool/textures/wool_dark_grey.png and b/mods/wool/textures/wool_dark_grey.png differ diff --git a/mods/wool/textures/wool_green.png b/mods/wool/textures/wool_green.png old mode 100644 new mode 100755 index c211ef52..dcb663be Binary files a/mods/wool/textures/wool_green.png and b/mods/wool/textures/wool_green.png differ diff --git a/mods/wool/textures/wool_grey.png b/mods/wool/textures/wool_grey.png old mode 100644 new mode 100755 index b1b28fac..2f4c3380 Binary files a/mods/wool/textures/wool_grey.png and b/mods/wool/textures/wool_grey.png differ diff --git a/mods/wool/textures/wool_magenta.png b/mods/wool/textures/wool_magenta.png old mode 100644 new mode 100755 index 79afdb89..5c2c4a7a Binary files a/mods/wool/textures/wool_magenta.png and b/mods/wool/textures/wool_magenta.png differ diff --git a/mods/wool/textures/wool_orange.png b/mods/wool/textures/wool_orange.png old mode 100644 new mode 100755 index ca14698f..a059f364 Binary files a/mods/wool/textures/wool_orange.png and b/mods/wool/textures/wool_orange.png differ diff --git a/mods/wool/textures/wool_pink.png b/mods/wool/textures/wool_pink.png old mode 100644 new mode 100755 index c282740a..8e901407 Binary files a/mods/wool/textures/wool_pink.png and b/mods/wool/textures/wool_pink.png differ diff --git a/mods/wool/textures/wool_red.png b/mods/wool/textures/wool_red.png old mode 100644 new mode 100755 index 4a5d43a2..da12ecff Binary files a/mods/wool/textures/wool_red.png and b/mods/wool/textures/wool_red.png differ diff --git a/mods/wool/textures/wool_violet.png b/mods/wool/textures/wool_violet.png old mode 100644 new mode 100755 index 59720bd7..d7d67831 Binary files a/mods/wool/textures/wool_violet.png and b/mods/wool/textures/wool_violet.png differ diff --git a/mods/wool/textures/wool_white.png b/mods/wool/textures/wool_white.png old mode 100644 new mode 100755 index a49f08ef..88f1e2f5 Binary files a/mods/wool/textures/wool_white.png and b/mods/wool/textures/wool_white.png differ diff --git a/mods/wool/textures/wool_yellow.png b/mods/wool/textures/wool_yellow.png old mode 100644 new mode 100755 index 9bf9f16a..2b0f0489 Binary files a/mods/wool/textures/wool_yellow.png and b/mods/wool/textures/wool_yellow.png differ diff --git a/mods/xpanes/README.txt b/mods/xpanes/README.txt old mode 100644 new mode 100755 index 021f8f80..bcbc1294 --- a/mods/xpanes/README.txt +++ b/mods/xpanes/README.txt @@ -1,13 +1,21 @@ -Minetest 0.4.x mod: xpanes -========================== +Minetest Game mod: xpanes +========================= +See license.txt for license information. -License: --------- -Copyright (C) xyz -modified by BlockMen (iron bars) +Authors of source code +---------------------- +Originally by xyz (MIT) +BlockMen (MIT) +sofar (MIT) +Various Minetest developers and contributors (MIT) -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. +Authors of media (textures) +--------------------------- +xyz (CC BY-SA 3.0): + All textures not mentioned below. + +Gambit (CC BY-SA 3.0): + xpanes_bar.png + +paramat (CC BY-SA 3.0): + xpanes_bar_top.png diff --git a/mods/xpanes/depends.txt b/mods/xpanes/depends.txt old mode 100644 new mode 100755 diff --git a/mods/xpanes/init.lua b/mods/xpanes/init.lua old mode 100644 new mode 100755 index 60ec68c1..b5299724 --- a/mods/xpanes/init.lua +++ b/mods/xpanes/init.lua @@ -1,175 +1,174 @@ xpanes = {} -local function rshift(x, by) - return math.floor(x / 2 ^ by) +local function is_pane(pos) + return minetest.get_item_group(minetest.get_node(pos).name, "pane") > 0 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 connects_dir(pos, name, dir) + local aside = vector.add(pos, minetest.facedir_to_dir(dir)) + if is_pane(aside) then + return true + end -local function update_pane(pos,name) - if minetest.get_node(pos).name:find("xpanes:"..name) == nil then - return - end - local sum = 0 - for i = 1, 4 do - local node = minetest.get_node({x = pos.x + directions[i].x, y = pos.y + directions[i].y, z = pos.z + directions[i].z}) - local pane_num = minetest.registered_nodes[node.name].groups.pane or 0 - if (minetest.registered_nodes[node.name].walkable ~= false and minetest.registered_nodes[node.name].drawtype ~= "nodebox") or pane_num > 0 then - sum = sum + 2 ^ (i - 1) - end - end - if sum == 0 then - sum = 15 - end - minetest.set_node(pos, {name = "xpanes:"..name.."_"..sum}) + local connects_to = minetest.registered_nodes[name].connects_to + if not connects_to then + return false + end + local list = minetest.find_nodes_in_area(aside, aside, connects_to) + + if #list > 0 then + return true + end + + return false end -local function update_nearby(pos,n) - if n == nil then n = minetest.get_node(pos) end - if not n or not n.name then return end - local name = string.sub(n.name,8,10) - if name ~= "bar" then name = "pane" end - for i = 1,4 do - update_pane({x = pos.x + directions[i].x, y = pos.y + directions[i].y, z = pos.z + directions[i].z}, name) - end +local function swap(pos, node, name, param2) + if node.name == name and node.param2 == param2 then + return + end + + minetest.set_node(pos, {name = name, param2 = param2}) end -local half_blocks = { - {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 function update_pane(pos) + if not is_pane(pos) then + return + end + local node = minetest.get_node(pos) + local name = node.name + if name:sub(-5) == "_flat" then + name = name:sub(1, -6) + end -local full_blocks = { - {-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 any = node.param2 + local c = {} + local count = 0 + for dir = 0, 3 do + c[dir] = connects_dir(pos, name, dir) + if c[dir] then + any = dir + count = count + 1 + end + end -local sb_half_blocks = { - {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} -} + if count == 0 then + swap(pos, node, name .. "_flat", any) + elseif count == 1 then + swap(pos, node, name .. "_flat", (any + 1) % 4) + elseif count == 2 then + if (c[0] and c[2]) or (c[1] and c[3]) then + swap(pos, node, name .. "_flat", (any + 1) % 4) + else + swap(pos, node, name, 0) + end + else + swap(pos, node, name, 0) + end +end -local sb_full_blocks = { - {-0.5, -0.5, -0.06, 0.5, 0.5, 0.06}, - {-0.06, -0.5, -0.5, 0.06, 0.5, 0.5} -} ---register panes and bars +minetest.register_on_placenode(function(pos, node) + if minetest.get_item_group(node, "pane") then + update_pane(pos) + end + for i = 0, 3 do + local dir = minetest.facedir_to_dir(i) + update_pane(vector.add(pos, dir)) + end +end) + +minetest.register_on_dignode(function(pos) + for i = 0, 3 do + local dir = minetest.facedir_to_dir(i) + update_pane(vector.add(pos, dir)) + end +end) + +xpanes = {} 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_blocks[1]) - table.insert(take2, sb_full_blocks[1]) - end - if need[2] == true and need[4] == true then - need[2] = nil - need[4] = nil - table.insert(take, full_blocks[2]) - table.insert(take2, sb_full_blocks[2]) - end - for k in pairs(need) do - table.insert(take, half_blocks[k]) - table.insert(take2, sb_half_blocks[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 - } - }) + for i = 1, 15 do + minetest.register_alias("xpanes:" .. name .. "_" .. i, "xpanes:" .. name .. "_flat") + end + + local flatgroups = table.copy(def.groups) + flatgroups.pane = 1 + minetest.register_node(":xpanes:" .. name .. "_flat", { + description = def.description, + drawtype = "nodebox", + paramtype = "light", + is_ground_content = false, + sunlight_propagates = true, + inventory_image = def.inventory_image, + wield_image = def.wield_image, + paramtype2 = "facedir", + tiles = {def.textures[3], def.textures[3], def.textures[1]}, + groups = flatgroups, + drop = "xpanes:" .. name .. "_flat", + sounds = def.sounds, + node_box = { + type = "fixed", + fixed = {{-1/2, -1/2, -1/32, 1/2, 1/2, 1/32}}, + }, + selection_box = { + type = "fixed", + fixed = {{-1/2, -1/2, -1/32, 1/2, 1/2, 1/32}}, + }, + connect_sides = { "left", "right" }, + }) + + local groups = table.copy(def.groups) + groups.pane = 1 + groups.not_in_creative_inventory = 1 + minetest.register_node(":xpanes:" .. name, { + drawtype = "nodebox", + paramtype = "light", + is_ground_content = false, + sunlight_propagates = true, + description = def.description, + tiles = {def.textures[3], def.textures[3], def.textures[1]}, + groups = groups, + drop = "xpanes:" .. name .. "_flat", + sounds = def.sounds, + node_box = { + type = "connected", + fixed = {{-1/32, -1/2, -1/32, 1/32, 1/2, 1/32}}, + connect_front = {{-1/32, -1/2, -1/2, 1/32, 1/2, -1/32}}, + connect_left = {{-1/2, -1/2, -1/32, -1/32, 1/2, 1/32}}, + connect_back = {{-1/32, -1/2, 1/32, 1/32, 1/2, 1/2}}, + connect_right = {{1/32, -1/2, -1/32, 1/2, 1/2, 1/32}}, + }, + connects_to = {"group:pane", "group:stone", "group:glass", "group:wood", "group:tree"}, + }) + + minetest.register_craft({ + output = "xpanes:" .. name .. "_flat 16", + recipe = def.recipe + }) 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'} + description = "Glass Pane", + 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}, + 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:glass', 'default:glass'}, - {'default:glass', 'default:glass', 'default:glass'} + description = "Iron bar", + textures = {"xpanes_bar.png","xpanes_bar.png","xpanes_bar_top.png"}, + inventory_image = "xpanes_bar.png", + wield_image = "xpanes_bar.png", + groups = {cracky=3, pane=1}, -- //MFF + sounds = default.node_sound_metal_defaults(), + recipe = { + {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, + {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"} } }) + diff --git a/mods/xpanes/license.txt b/mods/xpanes/license.txt new file mode 100644 index 00000000..dff72274 --- /dev/null +++ b/mods/xpanes/license.txt @@ -0,0 +1,64 @@ +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2014-2016 xyz +Copyright (C) 2014-2016 BlockMen +Copyright (C) 2016 Auke Kok +Copyright (C) 2014-2016 Various Minetest developers and contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT + + +Licenses of media (textures) +---------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2014-2016 xyz +Copyright (C) 2013-2016 Gambit +Copyright (C) 2016 paramat + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike — If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/mods/xpanes/textures/xpanes_bar.png b/mods/xpanes/textures/xpanes_bar.png old mode 100644 new mode 100755 index 5534a5cb..02932a3e Binary files a/mods/xpanes/textures/xpanes_bar.png and b/mods/xpanes/textures/xpanes_bar.png differ diff --git a/mods/xpanes/textures/xpanes_bar_top.png b/mods/xpanes/textures/xpanes_bar_top.png new file mode 100644 index 00000000..5cd3d572 Binary files /dev/null and b/mods/xpanes/textures/xpanes_bar_top.png differ diff --git a/mods/xpanes/textures/xpanes_grey.png b/mods/xpanes/textures/xpanes_grey.png old mode 100644 new mode 100755 diff --git a/mods/xpanes/textures/xpanes_pane_half.png b/mods/xpanes/textures/xpanes_pane_half.png old mode 100644 new mode 100755 diff --git a/mods/xpanes/textures/xpanes_space.png b/mods/xpanes/textures/xpanes_space.png old mode 100644 new mode 100755 diff --git a/mods/xpanes/textures/xpanes_white.png b/mods/xpanes/textures/xpanes_white.png old mode 100644 new mode 100755 diff --git a/settingtypes.txt b/settingtypes.txt new file mode 100644 index 00000000..2f91a7b6 --- /dev/null +++ b/settingtypes.txt @@ -0,0 +1,42 @@ +# This file contains settings of minetest_game that can be changed in +# minetest.conf + +# In creative mode players are able to dig all kind of blocks nearly +# instantly, and have access to unlimited resources. +# Some of the functionality is only available if this setting is present +# at startup. +creative_mode (Creative mode) bool false + +# Flammable nodes will be ignited by nearby igniters. Spreading fire may +# cause severe destruction. +# Spreading fire nodes will disappear when fire is disabled, but +# 'permanent_flame' nodes are unaffected. +enable_fire (Fire) bool true + +# If enabled, steel tools, torches and cobblestone will be given to new +# players. +give_initial_stuff (Give initial items) bool false + +# If enabled, players respawn at the bed they last lay on instead of normal +# spawn. +# This setting is only read at startup. +enable_bed_respawn (Respawn at bed) bool true + +# If enabled, the night can be skipped if more than half of the players are +# in beds. +enable_bed_night_skip (Skip night when sleeping) bool true + +# When TNT explodes, it destroys nearby nodes and damages nearby players. +# This setting is disabled by default on servers. +enable_tnt (TNT) bool true + +# The radius in which nodes will be destroyed by a TNT explosion. +tnt_radius (TNT radius) int 3 0 + +# The time in seconds after which the bones of a dead player can be looted +# by everyone. +# Setting this to 0 will disable sharing of bones completely. +share_bones_time (Bone share time) int 1200 0 + +# Replaces old stairs with new ones. Only required for older worlds. +enable_stairs_replace_abm (Replace old stairs) bool false